2018-05-04 http入門

一、HTTP 請求

1. http請求操作/curl命令
  • curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"//GET獲取操作
    請求內容:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx

  • curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"//POST上傳操作

請求內容:

POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx

  • curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com"//POST上傳帶數據
    請求內容
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: */*
Frank: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded

1234567890
2. 綜上所得,請求一共包含以下部分
  • 1 動詞 路徑 協議/版本
    2 Key1: value1
    2 Key2: value2
    2 Key3: value3
    2 Content-Type: application/x-www-form-urlencoded
    2 Host: www.baidu.com
    2 User-Agent: curl/7.54.0
    3
    4 要上傳的數據
其中,

(1)請求最多包含四部分,最少包含三部分,即第四部分數據可以爲空。
(2)第三部分永遠都是一個回車,用來分隔第二、第四部分。
(3)第一部分的動詞包括GET(獲取)/POST(上傳,新增)/PUT(整體更新)/PATCH(局部更新)/DELETE(刪除)/HEAD(獲取資源的元數據)/OPTIONS(獲取信息,關於資源的哪些屬性是客戶端可以改變的)等。
(4)如果沒有寫路徑,則默認爲根目錄(即 /)
(5)第二部分中的的 Content-Type 標註了第 4 部分的格式
(6)第一部分的路徑,包含查詢參數,但不包括錨點

3. 使用Chrome瀏覽器查看http請求

打開 Network
地址欄輸入網址
在 Network 點擊,查看 request,點擊「view source」
如果有請求的第四部分,那麼在 FormData 或 Payload 裏面可以看到
百度首頁請求

二、HTTP 響應

1.http響應出現在請求結束後

curl -s -v -H "Frank: xxx" -- "https://www.baidu.com"//GET獲取操作
獲得的響應代碼爲:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

<!DOCTYPE html>
………………以下爲網頁html代碼,略…………

2. http響應包含以下部分

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

第 2 部分中的 Content-Type 標註了第 4 部分的格式
第 2 部分中的 Content-Type 遵循 MIME 規範
第一部分的狀態解釋沒什麼用

3. 關於響應的狀態碼

  • 1xx 消息
  • 2xx 表示成功
    200 表示普通成功(如GET獲取時)
    204 表示創建成功(如POST提交時)
  • 3xx 表示重定向
    301 表示所訪問的資源永久被移除
    302 表示所訪問的資源臨時被移除,以後還會回來
    304 表示資源未被修改,即客戶端仍然具有以前下載的副本,不需要重新傳輸資源
  • 4xx 表示客戶端錯誤
    404 請求所希望得到的資源未被在服務器上發現,但允許用戶的後續請求
  • 5xx 表示服務器錯誤
    502 上游服務器接收到無效的響應

4. 使用Chrome瀏覽器查看http響應

打開 Network
輸入網址
選中第一個響應
查看 Response Headers,點擊「view source」
你會看到響應的前兩部分
查看 Response 或者 Preview,你會看到響應的第 4 部分
百度首頁響應代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章