HTTP是一個(gè)客戶端(用戶)和服務(wù)端(網(wǎng)站)之間請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn),通常使用TCP協(xié)議。通過(guò)使用網(wǎng)頁(yè)瀏覽器、網(wǎng)絡(luò)爬蟲或者其它的工具,客戶端發(fā)起一個(gè)HTTP請(qǐng)求到服務(wù)器上指定端口(默認(rèn)端口為80)。我們稱這個(gè)客戶端為用戶代理程序(user agent)。應(yīng)答的服務(wù)器上存儲(chǔ)著一些資源,比如HTML文件和圖像。我們稱這個(gè)應(yīng)答服務(wù)器為源服務(wù)器(origin server)。在用戶代理和源服務(wù)器中間可能存在多個(gè)“中間層”,比如代理服務(wù)器、網(wǎng)關(guān)或者隧道(tunnel)。
用 curl 創(chuàng)造一個(gè)請(qǐng)求,并得到響應(yīng)
curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"
請(qǐng)求部分
我們平時(shí)使用到2個(gè)請(qǐng)求方法:
GET:意思向網(wǎng)站提交下載請(qǐng)求,只用于讀取網(wǎng)站的數(shù)據(jù)
POST:意思在網(wǎng)站登錄時(shí),向網(wǎng)站提交用戶名和密碼。其余和GET功能一樣
get請(qǐng)求的內(nèi)容:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxx
post請(qǐng)求的內(nèi)容:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxx
用 Chrome 發(fā)請(qǐng)求
打開 Network
地址欄輸入網(wǎng)址
在 Network 點(diǎn)擊,查看 request,點(diǎn)擊「view source」
點(diǎn)擊「view source」
點(diǎn)擊「view source」
點(diǎn)擊「view source」
終于點(diǎn)了?可以看到請(qǐng)求的前三部分了
如果有請(qǐng)求的第四部分,那么在 FormData 或 Payload 里面可以看到
響應(yīng)部分
格式包括:
1 協(xié)議/版本號(hào) 狀態(tài)碼 狀態(tài)解釋
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下載的內(nèi)容
用 Chrome 查看響應(yīng)
打開 Network
輸入網(wǎng)址
選中第一個(gè)響應(yīng)
查看 Response Headers,點(diǎn)擊「view source」
點(diǎn)擊「view source」
點(diǎn)擊「view source」
你會(huì)看到響應(yīng)的前兩部分
查看 Response 或者 Preview,你會(huì)看到響應(yīng)的第 4 部分