1、 HTTP的請求
請求的格式
- 動詞 路徑 協議/版本
- Key1: value1
Key2: value2
Key3: value3
Content-Type: application/x-www-form-urlencoded
Host: www.baidu.com
User-Agent: curl/7.54.0
- 回車
- 要上傳的數據
- 請求最多包含四部分,最少包含三部分。(也就是說第四部分能夠爲空)
- 第三部分永遠都是一個回車(\n)
- 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
- 這裏的路徑包括「查詢參數」,但不包括「錨點」
- 若是你沒有寫路徑,那麼路徑默認爲 /
- 第 2 部分中的 Content-Type 標註了第 4 部分的格式
- 第一部分叫請求行,第二部分叫首部行,第三部分叫空行,第四部分叫作實體主體
使用Chrome開發者工具查看 HTTP 請求內容
- 右鍵檢查,打開 Network
- 地址欄輸入網址
- 在 Network 點擊,查看 request,點擊「view source」
- 能夠看到請求的前三部分
- 若是有請求的第四部分,那麼在 FormData 或 Payload 裏面能夠看到
2、HTTP的響應
響應的格式
- 協議/版本號 狀態碼 狀態解釋
- Key1: value1
Key2: value2
Content-Length: 17931
Content-Type: text/html
- 回車
- 要下載的內容
- GET 請求和 POST 請求對應的響應能夠同樣,也能夠不同
- 響應的第四部分能夠很長很長很長
- 狀態碼要背,是服務器對瀏覽器說的話
1xx 不經常使用
2xx 表示成功
3xx 表示不存在
4xx 表示請求錯誤
5xx 表示服務器錯誤
- 狀態解釋沒什麼用
- 第 2 部分中的 Content-Type 標註了第 4 部分的格式
- 第 2 部分中的 Content-Type 遵循 MIME 規範
- 第一部分叫狀態行,第二部分叫首部行,第三部分叫空行,第四部分叫實體體
使用Chrome開發者工具查看 HTTP 響應內容
- 右鍵檢查,打開 Network
- 輸入網址
- 選中第一個響應
- 查看 Response Headers,點擊「view source」
- 你會看到響應的前兩部分
- 查看 Response 或者 Preview,你會看到響應的第 4 部分
3、使用 curl 命令查看請求響應
curl命令是一個功能強大的網絡工具,它可以經過http、ftp等方式下載文件,也可以上傳文件,但按傳統,習慣稱url爲下載工具。相似的工具還有wget。html
語法
# curl [option] [url]
參數
curl的參數不少,這裏只是常見的幾種瀏覽器
-v/--verbose 小寫的v參數,用於打印更多信息,包括髮送的請求信息,這在調試腳本是特別有用。
-m/--max-time <seconds> 指定處理的最大時長
-H/--header <header> 指定請求頭參數
-s/--slient 減小輸出的信息,好比進度
--connect-timeout <seconds> 指定嘗試鏈接的最大時長
-x/--proxy <proxyhost[:port]> 指定代理服務器地址和端口,端口默認爲1080
-T/--upload-file <file> 指定上傳文件路徑
-o/--output <file> 指定輸出文件名稱
-d/--data/--data-ascii <data> 指定POST的內容
--retry <num> 指定重試次數
-e/--referer <URL> 指定引用地址
-I/--head 僅返回頭部信息,使用HEAD請求
實例
試一下返回結果吧服務器
curl -X POST -d "1234567890" -s -v -H "xxx: xxx" -- "https://www.baidu.com"