HTTP 協議的三次握手
HTTP(Hypertext Transfer Protocol):超文本傳輸協議
TCP(Transmission Control Protocol):傳輸控制協議
1、HTTP協議和TCP/IP協議的區別?
答:TCP/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸。而HTTP是應用層協議,主要解決如何包裝數據。Web使用HTTP協議作應用層協議,以封裝HTTP文本信息,然後使用TCP/IP作傳輸層協議將它發送到網絡上。
HTTP協議的七層協議如下:
7 |
應用層 |
HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、DNS、RTSP、XMPP |
6 |
表示層 |
XDR、ASN.1、SMB、AFP、NCP |
5 |
會話層 |
ADSP、TLS、SSH、、RPC、RTCP、ASP、SCP |
4 |
傳輸層 |
TCP、UDP、RTP、SCTP、SPX、ATP、IL |
3 |
網絡層 |
IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP |
2 |
數據鏈路層 |
以太網、令牌環、HDLC、幀中繼、ISDN、ATM |
1 |
物理層 |
線路、無線電、光纖、信鴿 |
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的syn(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。
完成三次握手,客戶端與服務器端開始傳送數據。以買家和淘寶客服舉例說明,如下圖所示:
2、HTTP協議的關鍵字段解釋
打開谷歌瀏覽器,按鍵盤上的F12鍵進入控制檯(有的筆記本電腦按F12鍵的時候,可能沒反應,此時需要Fn鍵和F12鍵一起按下去就可以進入控制檯了)
在瀏覽器中打開百度網頁,在打開的控制檯中點擊“Network”—>“XHR”—>“Headers”
Request URL:請求的URL地址
Request Method:GET,這裏表示請求的類型是GET類型,常見的還有POST類型、PUT類型、DELETE類型。
Status Code:200OK,這裏的200OK是HTTP的響應狀態碼,200表示正常,沒有錯誤信息。
Cookie:Cookie 表示一個保存在客戶機中的簡單的文本文件, 這個文件與特定的Web文檔關聯在一起, 保存了該客戶機訪問這個Web文檔時的信息, 當客戶機再次訪問這個Web文檔時這些信息可供該文檔使用。
Host:這裏的Host指的是網站的網絡服務器。
Content-Type:內容類型,一般是指網頁中存在的Content-Type,用於定義網絡文件的類型和網頁的編碼,決定文件接收方將以什麼形式、什麼編碼讀取這個文件。
User-Agent:User Agent中文名爲用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。