瞭解HTTP協議

目錄

一、什麼是HTTP協議

WEB與HTTP

HTTP發展歷史

二、TCP/IP協議

TCP/IP協議分層簡介

應用層——HTTP、FTP、SMTP

傳輸層——TCP/UDP

網絡層——IP協議、ARP協議、路由協議

數據鏈路層——網卡

三、HTTP數據包的封裝過程

四、HTTP數據傳輸過程

五、DNS域名解析


一、什麼是HTTP協議

HTTP(Hyper Text Transfer Protocol)<超文本傳輸協議>的縮寫,是用於從WEB服務器傳輸超文本到客戶端瀏覽器的傳輸協議。HTTP是一個應用層協議,由請求和響應構成,是一個標準的個客戶端和服務器模型。

WEB與HTTP

WEB是一種基於超文本(HTML)和HTTP的,全球性的,動態交互的,跨平臺的分佈式圖形信息系統

WEB瀏覽器的訪問操作圖示:

HTTP發展歷史

二、TCP/IP協議

TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際協議)是指能夠在多個不同網絡間實現信息傳輸的協議簇。TCP/IP協議不僅僅指的是TCP 和IP兩個協議,而是指一個由FTPSMTP、TCP、UDP、IP等協議構成的協議簇, 只是因爲在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱爲TCP/IP協議。——百度百科

HTTP協議是構建在TCP/IP協議之上,是TCP/IP協議的一個子集。

TCP/IP協議分層簡介

TCP/IP協議是由一個四層協議組成的系統,這四層分別爲:應用層,傳輸層,網絡層,數據鏈路層

應用層——HTTP、FTP、SMTP

應用層的主要工作就是定義數據格式並按照對應的格式解讀數據.

傳輸層——TCP/UDP

傳輸層的主要工作是定義端口,標識應用程序身份,實現端口到端口的通信,TCP協議可以保證數據傳輸的可靠性

TCP協議的三次握手

網絡層——IP協議、ARP協議、路由協議

網絡層的主要工作是定義網絡地址、區分網段、子網內MAC尋址、對於不同子網的數據包進行路由

數據鏈路層——網卡

鏈路層的主要工作就是對電信號進行分組並形成具有特定意義的數據幀,然後以廣播的形式通過物理介質發送給接收方。

三、HTTP數據包的封裝過程

四、HTTP數據傳輸過程

五、DNS域名解析

抓包工具:wireshark抓包

六、HTTP1.0/HTTP1.1的區別

HTTP1.0對於每個連接都只能傳送一個請求和響應,請求完服務器返回響應就會關閉,HTTP1.0沒有Host字段

HTTP1.1在同一個連接中可以傳送多個請求和響應,多個請求可以重疊和同時進行,HTTP1.1必須有Host字段

A、長連接(Persistent Connection)
HTTP1.1支持長連接和請求的流水線處理,在一個TCP連接上可以傳送多個HTTP請求和響應,減少了建立和關閉連接的消耗和延遲,在HTTP1.1中默認開啓長連接keep-alive,一定程度上彌補了HTTP1.0每次請求都要創建連接的缺點。HTTP1.0需要使用keep-alive參數來告知服務器端要建立一個長連接。
B、HOST域
在HTTP1.0中認爲每臺服務器都綁定一個唯一的IP地址,因此,請求消息中的URL並沒有傳遞主機名(hostname),HTTP1.0沒有host域。隨着虛擬主機技術的發展,在一臺物理服務器上可以存在多個虛擬主機(Multi-homed Web Servers),並且它們共享一個IP地址。HTTP1.1的請求消息和響應消息都支持host域,且請求消息中如果沒有host域會報告一個錯誤(400 Bad Request)。

C、緩存處理
在HTTP1.0中主要使用header裏的If-Modified-Since,Expires來做爲緩存判斷的標準,HTTP1.1則引入了更多的緩存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供選擇的緩存頭來控制緩存策略。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章