1. HTTP請(qǐng)求
請(qǐng)求的結(jié)構(gòu)包含下面四部分:
- 動(dòng)詞 路徑 協(xié)議/版本 //注:這里常用動(dòng)詞有GET、POST里烦、PUT凿蒜、PATCH、DELETE胁黑、HEAD废封、OPTIONS 等
- Key: value //注:這部分可以包含多個(gè)Key和對(duì)應(yīng)的value
- 回車 //注這部分只能是回車
- 要上傳的數(shù)據(jù)
示例:
用git bash發(fā)出一個(gè)請(qǐng)求curl -s -v -H "lan: first request" -- "https://www.baidu.com/s?wd=hello#5"
:
請(qǐng)求如下:
說明:
1)請(qǐng)求最多包含四部分,最少包含三部分丧蘸,第四部分上傳的數(shù)據(jù)可以沒有漂洋;
2)第三部分只能是一個(gè)回車(\n);
3)這里的路徑包括「查詢參數(shù)」力喷,但不包括「錨點(diǎn)」刽漂;
4)如果你沒有寫路徑,那么路徑默認(rèn)為 /弟孟;
2. HTTP響應(yīng)
請(qǐng)求的結(jié)構(gòu)最多包含下面四部分:
- 協(xié)議/版本號(hào) 狀態(tài)碼 狀態(tài)解釋 //注:這里常用狀態(tài)碼有2××(成功)贝咙、3××(重定向)、4××(客戶端錯(cuò)誤)拂募、5××(服務(wù)器錯(cuò)誤)等
- Key: value //注:這部分可以包含多個(gè)Key和對(duì)應(yīng)的value
- 回車 //注這部分只能是回車
- 要下載的數(shù)據(jù)
示例:
用git bash發(fā)出一個(gè)請(qǐng)求curl -s -v -H "lan: first request" -- "https://www.baidu.com/s?wd=hello#5"
:
響應(yīng)如下:
說明:第三部分永遠(yuǎn)都是一個(gè)回車(\n)庭猩;
3. 用Chrome開發(fā)者工具查看 HTTP 請(qǐng)求與響應(yīng)內(nèi)容
1 打開Chrome瀏覽器,右鍵陈症,點(diǎn)擊檢查蔼水,進(jìn)入開發(fā)者工具,并點(diǎn)擊Network爬凑;
2 輸入訪問的網(wǎng)址徙缴,如
https://www.baidu.com/s?wd=hello
,刷新頁(yè)面嘁信,可以看到瀏覽器發(fā)出很多請(qǐng)求于样;3 點(diǎn)擊一個(gè)請(qǐng)求Name進(jìn)入,并點(diǎn)擊Request Headers目錄的view source潘靖,就可以看到具體的請(qǐng)求內(nèi)容,如果有請(qǐng)求的第四部分穿剖,那么在 FormData 可以看到;
4 同理卦溢,點(diǎn)擊一個(gè)Response Headers目錄的view source糊余,就可以看到服務(wù)器對(duì)該請(qǐng)求的響應(yīng)內(nèi)容秀又,點(diǎn)擊Response欄可以查看響應(yīng)的第4部分;
4. http命令curl
1 curl命令含義:從服務(wù)器傳輸數(shù)據(jù)或向服務(wù)器傳輸數(shù)據(jù)贬芥,支持大多數(shù)協(xié)議吐辙,包括HTTP,F(xiàn)TP和POP3等蘸劈。
2 curl主要用法:
- -s/--silent:靜音模式
- -S/--show-error:顯示錯(cuò)誤
- -x/--proxy <host[:port]> :在給定的端口上使用HTTP代理
- -X/--request <command>:指定什么命令
- -v:顯示請(qǐng)求詳細(xì)信息
- -V/--version:顯示版本信息
- -H/--header <line>:自定義頭信息傳遞給服務(wù)器
- -d/--data <data>:HTTP POST方式傳送數(shù)據(jù)
更多用法詳見Linux curl命令詳解