OSI網絡分層
對于網絡OSI層次結構,由上至下分別為:
- 應用層:對應應用程序的通信服務,HTTP,FTP,NFS,SMTP
- 表示層:定義數據格式及加密
- 會話層:定義了如何開始、控制和結束一個會話,包括對多個雙向消息的控制和管理如果表示層收到了所有的數據,則用數據代表表示層。示例:RPC,SQL等
- 傳輸層:包括是否選擇差錯恢復協議還是無差錯恢復協議TCP/UDP
- 網絡層: IP/ICMP
- 數據鏈路層:定義了在單個鏈路上如何傳輸數據ARP/HDLC/PPP/SLIP
- 物理層
OSI model-from wikipedia
應用層我們最熟悉的可能是HTTP,HTTP下層的協議經常使用的是TCP,其實只要能提供穩定的連接,什么協議對于HTTP都是可以的,這是網絡協議的分層意義
HTTP1.0與HTTP1.1區別(目前絕大部分server和瀏覽器都支持1.1,已經向2.0邁進):
- 對于請求的處理方式不同
HTTP 1.0規定瀏覽器與服務器只保持短暫的連接,瀏覽器的每次請求都需要與服務器建立一個TCP連接,服務器完成請求處理后立即斷開TCP連接,服務器不跟蹤每個客戶也不記錄過去的請求。每次瀏覽器獲得一個靜態網頁時,解析網頁時總是和服務器一次次的建立連接,釋放連接,獲取頁面中的每個url
也就是說http1發送請求和回復是一對一的,這樣就存在性能上的缺失,請求被分開,只有上一個請求結束下一個請求才發出,對于目前的多媒體時代的網頁而言,如果媒體文件在網頁上都是以鏈接方式出現,一個一個請求,那效率不低才怪
而http1.1以后,支持了持久性的會話連接,在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲。
也就是說,我發送請求不再需要等等上一個請求響應結束再發出(這不是理所當然的事么,所以才需要對1.0進行改進)。
- HTTP1.1開始支持斷點續傳
在HTTP1.1中,支持使用Range(請求頭中)、Content-Range(響應頭中)實現斷點續傳
雖然HTTP1.1對1.0改進了很多,但面對現在的需求來說還是不足,(比如仍然還是主要以一次一個請求為主)所以之后的版本對其有了更好的要求