初識HTTP協議(4) HTTP協議版本

2021-10-17 03:18:19 字數 1899 閱讀 5426

http協議是基於tcp/ip通訊協議,工作在應用層,用來規定www伺服器與瀏覽器之間資訊傳遞規範的(hypertext transfer protocol) 超文字傳輸協議。web伺服器預設監聽80埠。

http工作原理,這個大佬寫的很詳細:

原型版本,功能簡陋,只有乙個命令get。get /index.html,伺服器只能回應html格式字串,不能回應別的格式。

新增post和head命令

每個tcp連線只能傳送乙個請求,傳送資料完畢,連線就關閉,如果還要請求其他資源,就必須再新建乙個連線。

頭資訊是 ascii 碼,後面資料可為任何格式。伺服器回應時會告訴客戶端,資料是什麼格式,即content-type欄位的作用。這些資料型別總稱為mime 多用途網際網路郵件擴充套件,每個值包括一級型別和二級型別,預定義的型別,也可自定義型別, 常見content-type值:text/xml image/jpeg audio/***。

新增put、patch、options、delete命令

引入了持久連線(persistent connection),即tcp連線預設不關閉,可以被多個請求復用,不用宣告connection: keep-alive。對於同乙個網域名稱,大多數瀏覽器允許同時建立6個持久連線引入了管道機制,即在同乙個tcp連線裡,客戶端可以同時傳送多個請求,進一步改進了http協議的效率。

不足:同乙個tcp連線裡,所有的資料通訊是按次序進行的;

伺服器只能順序處理回應,前面的回應慢,會有許多請求排隊,造成"隊頭堵塞"(head-of-line blocking)。

為避免上述問題,兩種方法:一是減少請求數,二是同時多開持久連線。

http/2.0是spdy的公升級版

快取處理

在http1.0中主要使用header裡的if-modified-since,expires來做為快取判斷的標準,http1.1則引入了更多的快取控制策略例如entity tag,if-unmodified-since, if-match, if-nonematch等更多可供選擇的存頭來控制快取策略

頻寬優化及網路連線的使用

http1.0中,存在一些浪費頻寬的現象,例如:客戶端只是需要某個物件的一部分,而伺服器卻將整個物件送過來了,並且不支援斷點續傳功能,http1.1則在請求頭引入了range頭域,它允許只請求資源的某個部分,即返回碼是206(partial content),方便了開發者自由的選擇以便於充分利用頻寬和連線

錯誤通知的管理

在http1.1中新增24個狀態響應碼,如409(conflict)表示請求的資源與資源當前狀態衝突;410(gone)表示伺服器上的某個資源被永久性的刪除

host 頭處理

在http1.0中認為每台伺服器都繫結乙個唯一的ip位址,因此,請求訊息中的url並沒有傳遞主機名(hostname)。但隨著虛擬主機技術的發展,在一台物理伺服器上可以存在多個虛擬主機(multi-homed web servers),並且它們共享乙個ip位址。http1.1的請求訊息和響應訊息都應支援host頭域,且請求訊息中如果沒有host頭域會報告乙個錯誤(400 bad request)

長連線

http 1.1支援長連線(persistentconnection)和請求的流水線(pipelining)處理,在乙個tcp連線上可以傳送多個http請求和響應,減少了建立和關閉連線的消耗和延遲,在http1.1中預設開啟connection: keep-alive,彌補了http1.0每次請求都要建立連線的缺點

HTTP協議4 HTTP 響應頭資訊

http請求頭提供了關於請求,響應或者其他的傳送實體的資訊。在本章節中我們將具體來介紹http響應頭資訊。應答頭說明 allo w 伺服器支援哪些請求方法 如get post等 content encoding content length 表示內容長度。只有當瀏覽器使用持久http連線時才需要這個...

JSP學習筆記(4) HTTP協議

jsp學習筆記 4 http協議 這篇寫關於http的內容 1.http協議 1 http 超文字傳輸協議,在網路上傳輸超文字的協議 2 以下是客戶端瀏覽器向伺服器傳送的http請求資料 ie瀏覽器 chrome瀏覽器 3 瀏覽器不同,但是傳送的鍵值,基本相同,只是值不同 ie瀏覽器和chrome瀏...

HTTP協議 初識HTTP

一 web網路基礎 客戶端 伺服器 首先作為傳送端的客戶端在應用層 http協議 發出乙個想看某個web頁面的http 請求。http報文傳送到傳輸層 tcp協議 為了傳輸方便,傳輸層把接收到的資料進行分割,並在各個報文上打上標記序號及埠號後 到網路層。網路層 ip協議 增加作為通訊目的位址的mac...