一、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 部分