http經常使用知識理解

http協議是HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最爲普遍的一種網絡傳輸協議,全部的WWW文件都必須遵照這個標準。html

HTTP是一個基於TCP/IP通訊協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等),它被設計用於Web瀏覽器和Web服務器之間的通訊,但它也能夠用於其餘目的。chrome

下面經過一些簡單的實例更加充分的加深理解和記憶shell

cURL是一個利用URL語法在命令行下工做的文件傳輸工具,1997年首次發行。它支持文件上傳和下載,因此是綜合傳輸工具,但按傳統,習慣稱cURL爲下載工具。cURL還包含了用於程序開發的libcurl。瀏覽器

cURL支持的通訊協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP三、SMTP和RTSP。其中有許多都是較爲經常使用的。bash

cURL常見用法

curl https://www.baidu.com/服務器

這是curl最簡單的使用方法,運行上面的命令能夠獲取 www.baidu.com/ 指向的頁面,一樣,若是這裏的 URL 指向的是一個文件或者一幅圖,均可以直接下載到本地。網絡

默認發送get請求

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

alt=curl

發送post請求

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

二者除了動詞不同以外,其餘沒差異curl

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

關於curl 中X d s v H的具體解釋能夠訪問 explainshell.com

請求的格式

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/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經常使用知識啦,內容比較多,須要屢次回顧才能加深理解和記憶。

相關文章
相關標籤/搜索