1,域名解析,找到IP地址;
2,建立tcp連接(三次握手);
3,http響應與請求;
http請求報文四個部分:請求行,請求頭部,空行,請求數據
a.請求行包含:請求方法,資源位置,以及協議版本,例如:GET /index.html HTTP/1.1;
b.請求頭部:多個鍵值對組成
例如:
Accept:xxx (接受的數據類型) Accept-Charset:xxx (接受的編碼格式) Accept-Language:xxx (接受的語言)
User-Agent:xxx (瀏覽器類型) Cookie:xxx=yyy (所使用的 Cookie) Connection:close/keep-alive (連接狀態:關閉/保持連接)
c. 空行:區分請求頭部和請求數據的,它代表着不再有頭部的 Key-Value 鍵值對,接下來是請求數據了。
d.請求數據:請求主體一般是用於 POST 方法提交數據,例如最常見的表單提交,就是在請求主體寫入 Content-Type= multipart/form-data
`
http響應報文:狀態行,響應頭,空行,響應數據
a.狀態行中包含着協議版本,狀態碼以及文本描述,狀態碼和文本描述就代表了服務器所返回的響應結果是怎樣的,這裏給出大致的描述:
2XX:成功 3XX:重定向 4XX:客戶端錯誤 5XX:服務器錯誤
b.與請求頭部類似,也是 Key-Value 鍵值對的組成
c. 空行:用來分隔響應頭部和響應正文。
d.響應數據:響應正文中,如果之前請求的是數據,就返回數據,如果請求的是網頁,就返回 HTML 代碼。
4,tcp關閉(四次揮手)。