一、http 請求
http請求其實就是客戶端發(fā)送至服務器的請求信息
(1)動詞 路徑 協(xié)議/版本
例如:GET /sample.jsp HTTP/1.1
常用動詞: GET(信息獲取) POST(提交數(shù)據(jù)) PUT(更新數(shù)據(jù)) PATCH(部分更新) DELETE(刪除)
(2)請求頭(Request Header)
標準格式:Key1: value1
請求頭包含許多有關的客戶端環(huán)境和請求正文的有用信息。例如阎肝,請求頭可以聲明瀏覽器所用的語言,請求正文的長度等业稼。常見例如:
Content-Length: 10
Content-Type: application/x-www-form-urlencoded(標注了第 4 部分的格式)
Host: www.baidu.com
User-Agent: curl/7.54.0
(3)一個回車(\n)
請求頭和請求正文之間是一個空行盗痒,這個行非常重要,它表示請求頭已經(jīng)結束低散,接下來的是請求正文俯邓。
(4)請求正文(可以為空)
請求正文中可以包含客戶提交的查詢字符串信息,如:username=jinqiao&password=1234
如何用Chrome開發(fā)者工具查看 HTTP 請求內(nèi)容
1熔号、在Chrome中按F12打開開發(fā)者工具(mac為option+command+i)稽鞭,然后選擇Network
2、地址欄輸入網(wǎng)址引镊、在 Network 點擊朦蕴,查看 request,點擊「view source」
3弟头、然后就能看到請求的前三部分了
4吩抓、如果有請求的第四部分,那么在 FormData 或 Payload 里面可以看到
二赴恨、http 響應
(1)協(xié)議/版本號 狀態(tài)碼 狀態(tài)解釋
如:HTTP/1.1 200 OK
狀態(tài)碼由3位數(shù)字組成疹娶,表示請求是否被理解或被滿足。常見狀態(tài)碼:
- 1xx: 信息—表示請求已接收伦连,繼續(xù)處理雨饺。
- 2xx: 成功—表示請求已經(jīng)被成功接收、理解惑淳、接受额港。
- 3xx: 重定向—要完成請求必須進行更進一步的操作。
- 4xx: 客戶端錯誤—請求有語法錯誤或請求無法實現(xiàn)歧焦。
- 5xx: 服務器端錯誤—服務器未能實現(xiàn)合法的請求移斩。
(2)響應頭(Response Header)
標準格式:Key1: value1,如:
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
(3)一個回車(\n)
和請求類似,響應頭和響應正文之間是一個空行叹哭。
(4)響應正文(可以很長很長很長)
響應正文對應瀏覽器要下載的內(nèi)容
如何用Chrome開發(fā)者工具查看 HTTP 響應內(nèi)容
1忍宋、打開 Network
2、輸入網(wǎng)址风罩,選中第一個響應,點擊 view source
3舵稠、看到響應的前兩部分
4超升、點擊 Response 或者 Preview,查看響應的第 4 部分
三哺徊、基本 curl 命令
例子:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"
-X/--request <command> : 指定什么命令
-d/--data <data>: HTTP POST方式傳送數(shù)據(jù)
-s/--silent: 靜默模式室琢。不輸出任何東西
-v/--verbose: 用于打印更多信息,包括發(fā)送的請求信息落追,調試腳本時特別有用
-H/--header <line>: 自定義頭信息傳遞給服務器