HTTP的請求與響應

1、 HTTP的請求

請求的格式

  1. 動詞 路徑 協議/版本
  2. Key1: value1
    Key2: value2
    Key3: value3
    Content-Type: application/x-www-form-urlencoded
    Host: www.baidu.com
    User-Agent: curl/7.54.0
  3. 回車
  4. 要上傳的數據

  • 請求最多包含四部分,最少包含三部分。(也就是說第四部分能夠爲空)
  • 第三部分永遠都是一個回車(\n)
  • 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
  • 這裏的路徑包括「查詢參數」,但不包括「錨點」
  • 若是你沒有寫路徑,那麼路徑默認爲 /
  • 第 2 部分中的 Content-Type 標註了第 4 部分的格式
  • 第一部分叫請求行,第二部分叫首部行,第三部分叫空行,第四部分叫作實體主體

使用Chrome開發者工具查看 HTTP 請求內容

  1. 右鍵檢查,打開 Network
  2. 地址欄輸入網址
  3. 在 Network 點擊,查看 request,點擊「view source」
  4. 能夠看到請求的前三部分
  5. 若是有請求的第四部分,那麼在 FormData 或 Payload 裏面能夠看到

2、HTTP的響應

響應的格式

  1. 協議/版本號 狀態碼 狀態解釋
  2. Key1: value1
    Key2: value2
    Content-Length: 17931
    Content-Type: text/html
  3. 回車
  4. 要下載的內容

  • 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"
相關文章
相關標籤/搜索