OSI網(wǎng)絡(luò)分層
對(duì)于網(wǎng)絡(luò)OSI層次結(jié)構(gòu),由上至下分別為:
- 應(yīng)用層:對(duì)應(yīng)應(yīng)用程序的通信服務(wù)硅卢,HTTP,FTP,NFS,SMTP
- 表示層:定義數(shù)據(jù)格式及加密
- 會(huì)話層:定義了如何開(kāi)始、控制和結(jié)束一個(gè)會(huì)話恃疯,包括對(duì)多個(gè)雙向消息的控制和管理如果表示層收到了所有的數(shù)據(jù),則用數(shù)據(jù)代表表示層。示例:RPC虎谢,SQL等
- 傳輸層:包括是否選擇差錯(cuò)恢復(fù)協(xié)議還是無(wú)差錯(cuò)恢復(fù)協(xié)議TCP/UDP
- 網(wǎng)絡(luò)層: IP/ICMP
- 數(shù)據(jù)鏈路層:定義了在單個(gè)鏈路上如何傳輸數(shù)據(jù)ARP/HDLC/PPP/SLIP
- 物理層
應(yīng)用層我們最熟悉的可能是HTTP,HTTP下層的協(xié)議經(jīng)常使用的是TCP,其實(shí)只要能提供穩(wěn)定的連接,什么協(xié)議對(duì)于HTTP都是可以的,這是網(wǎng)絡(luò)協(xié)議的分層意義
HTTP1.0與HTTP1.1區(qū)別(目前絕大部分server和瀏覽器都支持1.1曹质,已經(jīng)向2.0邁進(jìn)):
- 對(duì)于請(qǐng)求的處理方式不同
HTTP 1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接婴噩,瀏覽器的每次請(qǐng)求都需要與服務(wù)器建立一個(gè)TCP連接,服務(wù)器完成請(qǐng)求處理后立即斷開(kāi)TCP連接羽德,服務(wù)器不跟蹤每個(gè)客戶也不記錄過(guò)去的請(qǐng)求几莽。每次瀏覽器獲得一個(gè)靜態(tài)網(wǎng)頁(yè)時(shí),解析網(wǎng)頁(yè)時(shí)總是和服務(wù)器一次次的建立連接,釋放連接,獲取頁(yè)面中的每個(gè)url
也就是說(shuō)http1發(fā)送請(qǐng)求和回復(fù)是一對(duì)一的,這樣就存在性能上的缺失宅静,請(qǐng)求被分開(kāi)章蚣,只有上一個(gè)請(qǐng)求結(jié)束下一個(gè)請(qǐng)求才發(fā)出,對(duì)于目前的多媒體時(shí)代的網(wǎng)頁(yè)而言姨夹,如果媒體文件在網(wǎng)頁(yè)上都是以鏈接方式出現(xiàn)纤垂,一個(gè)一個(gè)請(qǐng)求,那效率不低才怪
而http1.1以后,支持了持久性的會(huì)話連接,在一個(gè)TCP連接上可以傳送多個(gè)HTTP請(qǐng)求和響應(yīng)磷账,減少了建立和關(guān)閉連接的消耗和延遲峭沦。
也就是說(shuō),我發(fā)送請(qǐng)求不再需要等等上一個(gè)請(qǐng)求響應(yīng)結(jié)束再發(fā)出(這不是理所當(dāng)然的事么够颠,所以才需要對(duì)1.0進(jìn)行改進(jìn))熙侍。
- HTTP1.1開(kāi)始支持?jǐn)帱c(diǎn)續(xù)傳
在HTTP1.1中,支持使用Range(請(qǐng)求頭中)履磨、Content-Range(響應(yīng)頭中)實(shí)現(xiàn)斷點(diǎn)續(xù)傳
雖然HTTP1.1對(duì)1.0改進(jìn)了很多蛉抓,但面對(duì)現(xiàn)在的需求來(lái)說(shuō)還是不足,(比如仍然還是主要以一次一個(gè)請(qǐng)求為主)所以之后的版本對(duì)其有了更好的要求