http請求與響應

定義

超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。

HTTP的作用就是指導瀏覽器和服務器如何進行溝通。那麼又是如何實現溝通的呢?

http請求與響應

如上圖所示:客戶端的瀏覽器發起請求--->服務器在其80端口接收到請求之後,然後根據客戶端的請求發出對應響應返回內容,將相關數據發送給客戶端---->瀏覽器負責下載響應內容;

tips:

80端口專門用來服務HTTP;

如下圖,URL構成如下:

http請求與響應

這裡解釋一下錨點:

http請求與響應

http請求與響應

HTTP請求

1.發送請求的格式: 第一部分: 動詞 路徑 協議/版本 第二部分: key1 : value1 第二部分:key2 : value2 第二部分:key3 : value3 第二部分:Content-Type : application / x-www-form-urlencoded (我要上傳的數據內容的類型和格式) 第二部分: Content-Length:10 (我要上傳的數據的長度) 第二部分:HOST:http://www.baidu.com //目標域名 第二部分:User-Agent : Curl/7.54.0 //你通過哪個軟件(工具發起請求的) 第三部分: 第四部分:要上傳的數據

  • 請求最多包含四部分,至少三部分,也就是第四部分 可以空著;第三部分永遠都是一個回車(/n)主要作用就是劃出三四部分的界限;動詞主要有GET(獲取),POST(上傳數據:主要是用戶名,密碼,頭像之類的數據),PUT(整體更新,就是將你上傳的所有數據全都替換掉),PATCH(局部更新,就是將你上傳的數據中的一部分更新掉),DELETE(刪除)等;這裡的路徑包括查詢參數,但是不包括錨點如果你不寫路徑,默認為/;(路徑必須以/開頭)第二部分的Content-Type標註了第四部分的格式 注:不按照協議來,會報錯的!

curl使用實例:

curl -s -v -- "https://www.baidu.com/s?wd=JavaScript"

http請求與響應

如果你不寫路徑,默認為/

http請求與響應

用chrome作一個實驗

http請求與響應

http請求與響應

http請求與響應

http請求與響應

可以看到http的請求;

http響應

響應示例:

http請求與響應

目前需要對content-length和content-type需要了解一下:

以向百度發送請求為例,我們請求的時候會帶上我們的數據,返回的時候百度服務器會返回百度相關的數據(包括響應的格式,這裡為文本,以及響應的長度);

響應的格式

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

狀態碼:需要記憶,是服務器對瀏覽器要說的話:

  • 1xx:不常用2xx:表示成功,200表示普通成功(如果是get,則返回200給你);204表示創建成功(如果你是post,服務器就可能返回一個204給你);3xx:表示你滾吧;(301:表示以前在這裡的那個人永久搬走了,我會在第二部分告訴你它搬到哪裡了;302:表示他臨時不在,可能過幾天就回了)4xx:表示你錯了(比如你輸入的網址有錯誤)5xx:表示我錯了==

用chrome做一個實驗

http請求與響應

http請求與響應

響應部分的第一部分和第二部分在Headers裡面;

第四部分在response裡面;

curl命令的使用

curl命令是一個利用URL規則在命令行下工作的文件傳輸工具。它支持文件的上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱curl為下載工具;

curl命令通常由動作,{關鍵詞},路徑,協議/版本組成。如下命令:

curl -X POST -d "1234567890" -H "xxx" -- "https://www.baidu.com"

http請求與響應

-X表示請求動作,默認是GET,如果不指定動作的話。-d是data表示將相應的數據發送給服務器,然後等待服務器的響應。-H表示設置HTTP頭部額外的內容。之後服務器會響應該請求。HTTP協議是無狀態的連接協議,服務器無法知道客戶是否擁有權限訪問該服務器。Token就是一種存儲在客戶端cookie或者Local Storage的一種身份驗證方法。當客戶端發送請求後,服務器端會去驗證客戶端身份,然後發送一個Token,客戶端每次請求都會要求攜帶一個合法的Token。

下面再舉個例子:

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

http請求與響應

原文地址:https://zhuanlan.zhihu.com/p/46716496


分享到:


相關文章: