在HTTP/1.0中默認(rèn)使用短連接。也就是說(shuō),客戶(hù)端和服務(wù)器每進(jìn)行一次HTTP操作仇冯,就建立一次連接,任務(wù)結(jié)束就中斷連接族操。當(dāng)客戶(hù)端瀏覽器訪問(wèn)的某個(gè)HTML或其他類(lèi)型的Web頁(yè)中包含有其他的Web資源(如JavaScript文件苛坚、圖像文件、CSS文件等)色难,每遇到這樣一個(gè)Web資源泼舱,瀏覽器就會(huì)重新建立一個(gè)HTTP會(huì)話。
而從HTTP/1.1起枷莉,默認(rèn)使用長(zhǎng)連接娇昙,用以保持連接特性。使用長(zhǎng)連接的HTTP協(xié)議笤妙,會(huì)在響應(yīng)頭加入這行代碼:
Connection:keep-alive
在使用長(zhǎng)連接的情況下冒掌,當(dāng)一個(gè)網(wǎng)頁(yè)打開(kāi)完成后,客戶(hù)端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉蹲盘,客戶(hù)端再次訪問(wèn)這個(gè)服務(wù)器時(shí)股毫,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。Keep-Alive不會(huì)永久保持連接召衔,它有一個(gè)保持時(shí)間铃诬,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間。實(shí)現(xiàn)長(zhǎng)連接需要客戶(hù)端和服務(wù)端都支持長(zhǎng)連接苍凛。
HTTP協(xié)議的長(zhǎng)連接和短連接趣席,實(shí)質(zhì)上是TCP協(xié)議的長(zhǎng)連接和短連接。
短連接
連接->傳輸數(shù)據(jù)->關(guān)閉連接
HTTP是無(wú)狀態(tài)的醇蝴,瀏覽器和服務(wù)器每進(jìn)行一次HTTP操作吩坝,就建立一次連接,但任務(wù)結(jié)束就中斷連接哑蔫。
也可以這樣說(shuō):短連接是指SOCKET連接后發(fā)送后接收完數(shù)據(jù)后馬上斷開(kāi)連接钉寝。
長(zhǎng)連接
連接->傳輸數(shù)據(jù)->保持連接 -> 傳輸數(shù)據(jù)-> 弧呐。。嵌纲。 ->關(guān)閉連接俘枫。
長(zhǎng)連接指建立SOCKET連接后不管是否使用都保持連接,但安全性較差逮走。