http常用知識理解

Jc Bound發表於2019-02-14

http協議是HTTP協議(HyperText Transfer Protocol,超文字傳輸協議)是因特網上應用最為廣泛的一種網路傳輸協議,所有的WWW檔案都必須遵守這個標準。

HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案, 圖片檔案, 查詢結果等),它被設計用於Web瀏覽器和Web伺服器之間的通訊,但它也可以用於其他目的。

下面通過一些簡單的例項更加充分的加深理解和記憶

cURL是一個利用URL語法在命令列下工作的檔案傳輸工具,1997年首次發行。它支援檔案上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱cURL為下載工具。cURL還包含了用於程式開發的libcurl。

cURL支援的通訊協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。其中有許多都是較為常用的。

cURL常見用法

curl https://www.baidu.com/

這是curl最簡單的使用方法,執行上面的命令可以獲取 www.baidu.com/ 指向的頁面,同樣,如果這裡的 URL 指向的是一個檔案或者一幅圖,都可以直接下載到本地。

預設傳送get請求

curl -s -v -H "ceshi: xxx" -- "https://www.baidu.com" //其中 ceshi xxx 可寫可不寫

alt=curl

傳送post請求

curl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"

http常用知識理解

兩者除了動詞不一樣之外,其他沒差別

curl -X PSOT -d '123456789' -s -v -H "ceshi: xxx" -- "https://www.baidu.com"

http常用知識理解
關於curl 中X d s v H的具體解釋可以訪問explainshell.com

http常用知識理解

請求的格式

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.第三部分永遠都是一個回車(\n)

3.動詞有 GET POST PUT PATCH DELETE HEAD OPTIONS 等

4.這裡的路徑包括「查詢引數」,但不包括「錨點」

5.如果你沒有寫路徑,那麼路徑預設為 /

6.第 2 部分中的 Content-Type 標註了第 4 部分的格式

用chorme傳送請求

  1. 開啟審查元素 2.. 開啟 Network
  2. 位址列輸入網址
  3. 在 Network 點選,檢視 request,點選「view source」
  4. 點選「view source」//注意一定要點選!!!
  5. 可以看到請求的前三部分了

如果有請求的第四部分,那麼在 FormData 或 Payload 裡面可以看到

以百度網站為例:

http常用知識理解

響應

請求了之後,應該都能得到一個響應,除非斷網了,或者伺服器當機了。

以上面百度網站為例,請求之後得到的響應:

HTTP/1.1 200 OK
Bdpagetype: 1
Bdqid: 0xcde9887a0001eff5
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html
Cxy_all: 97150107_hao_pg+9b4dbc031eaceebc7ac0b0a5b7293715
Date: Fri, 15 Feb 2019 02:42:30 GMT
Expires: Fri, 15 Feb 2019 02:42:22 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Server: BWS/1.1
Set-Cookie: BDRCVFR[4Fo_HGJeHPY]=mk3SLVN4HKm; path=/; domain=.baidu.com
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=0; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked
複製程式碼
  1. GET 請求和 POST 請求對應的響應可以一樣,也可以不一樣
  2. 響應的第四部分可以很長很長很長

響應的格式

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

常用狀態碼:

響應碼 解釋
200 表示成功,可以正常響應
301 表示永久重定向,以後不要在訪問這個地址啦
302 表示暫時重定向,暫時不要訪問這個地址啦,隔段時間就可以訪問
403 表示你錯了,伺服器已經理解請求,但是拒絕執行它
404 表示你錯了,沒有找到檔案或目錄,但允許使用者的後續請求
500 表示伺服器內部遇到錯誤,無法處理請求
503 表示伺服器暫時出現了問題,隔段時間可以恢復

用chorme檢視響應

1.開啟 Network
2.輸入網址
3.選中第一個響應
4.檢視 Response Headers,點選「view source」//注意一定要點選!!!
5.你會看到響應的前兩部分
6.檢視 Response 或者 Preview,你會看到響應的第 4 部分

http常用知識理解

以上基本上就是http常用知識啦,內容比較多,需要多次回顧才能加深理解和記憶。

相關文章