HTTP 請求與響應

zachcoco發表於2018-12-05

1. curl命令

curl,全稱CommandLine URL,顧名思義,curl命令是在命令列方式下利用URL的語法進行資料的傳輸或者檔案的傳輸。

程式碼示例:

$ curl -s -v -H "Jake: abc" -d "1234567" -- "https://www.baidu.com"
複製程式碼

解釋:

  1. -v:verbose,指定該選項後,可以跟蹤URL的連線資訊。
  2. -s:silent,靜音模式。不顯示進度或者錯誤資訊
  3. -H:header,自定義頭資訊傳遞給伺服器
  4. -d: data,帶請求引數的連線。比如下面的URL,user=xiaoruan&age=22就是所帶的引數。crul可以帶請求引數。http://127.0.0.1/index.html?user=xiaoruan&age=22
  5. -X:指定請求方式,最常見的是GET和POST。比如輸入使用者名稱密碼時就用POST。

2. HTTP 請求

用上述程式碼發起請求後,返回如下請求程式碼:

> POST / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.55.0
> Accept: */*
> Jake: abc
> Content-Length: 7
> Content-Type: application/x-www-form-urlencoded
> 
複製程式碼
  1. 請求最多包含四部分,最少包含三部分。(也就是說第四部分可以為空)
  2. 第一部分格式為:動詞 路徑 協議/版本
    • 動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等
    • 路徑包括「查詢引數」,但不包括「錨點」
    • 如果你沒有寫路徑,那麼路徑預設為 /
  3. 第二部分有很多行,格式均為:key: value
    • Content-Type 標註了第 4 部分的格式
  4. 第三部分永遠都是一個回車\n
  5. 第四部分是要上傳的資料

3. HTTP 響應

用上述程式碼發起請求後,返回如下響應程式碼:

< HTTP/1.1 302 Found
< Connection: Keep-Alive
< Content-Length: 17931
< Content-Type: text/html
< Date: Wed, 05 Dec 2018 09:07:48 GMT
< Etag: "54d97487-460b"
< Server: bfe/1.0.8.18
<
複製程式碼
  1. 第一部分格式為:協議/版本號 狀態碼 狀態解釋,狀態碼是伺服器對瀏覽器說的話

    • 1xx 不常用
    • 2xx 表示成功
    • 3xx 表示滾吧
    • 4xx 表示你丫錯了
    • 5xx 表示好吧,我錯了
  2. 第二部分有很多行,格式均為:key: value

    • Content-Type 標註了第 4 部分的格式
    • Content-Type 遵循 MIME 規範
  3. 第三部分是回車\n

  4. 第四部分是下載的資料

4. 用chrome檢視請求和響應

  1. 右鍵,點選檢查
  2. 點選Network
  3. 位址列輸入網址
  4. 選中第一個響應,彈出下圖右側內容
    HTTP 請求與響應

檢視響應

  1. 檢視第2部分Response Headers
  2. 點選view source!可以看到響應的前兩部分了。檢視 Response 或者 Preview,你會看到響應的第 4 部分

檢視請求

  1. 檢視第3部分Request Headers
  2. 點選view source!可以看到請求的前兩部分了。 如果請求有第四部分,那麼可以在 FormData 或 Payload 裡面可以看到

相關文章