第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 HTTP 入門教程 HTTP 入門教程 HTTP 協(xié)議及其請求過程

HTTP 協(xié)議及其請求過程

TCP/IP 的網(wǎng)絡(luò)模型有 7 層,Http 協(xié)議是位于最上層的應(yīng)用層。應(yīng)用層協(xié)議的意思是它是服務(wù)于我們能體驗到的一些電腦軟件,QQ/郵箱/瀏覽器這些。應(yīng)用層下面還有好幾層,他們主要保障的是網(wǎng)絡(luò)傳輸中的一些安全性(會話加密),可靠性(字節(jié)冗余校驗),字符轉(zhuǎn)字節(jié),字節(jié)轉(zhuǎn)高低電平實現(xiàn)信號的傳輸?shù)取?/p>

1. 調(diào)試工具

Http 協(xié)議及其請求過程是用于瀏覽器與后臺服務(wù)的數(shù)據(jù)交互的,選擇一個瀏覽器,筆者下面用 chrome 進行演示。

  1. 打開瀏覽器;
  2. 快捷鍵按下 F12;
  3. 地址欄輸入 http://idcbgp.cn/;
  4. 觀察底部 network 欄目的網(wǎng)絡(luò)請求信息。

瀏覽器調(diào)試

2. 協(xié)議內(nèi)容

Http 規(guī)定了會話是由客戶端發(fā)起,服務(wù)端響應(yīng)。發(fā)起和響應(yīng)的消息格式如下:

2.1 請求的消息格式

  • 請求頭部信息
get http://idcbgp.cn/ HTTP/1.1
host:117.121.101.134:443
關(guān)鍵字 說明
get 請求的方法
https://www.baidu.com 請求的資源定位,URL
HTTP/1.1 告訴后臺服務(wù)器具體請求的協(xié)議版本號
host 遠端服務(wù)器的地址
... 頭部字段還有很多,這邊只是列舉了必要的,詳細的見后面具體章節(jié)
  • 請求體內(nèi)容
keyword:http
name:mooc

請求體對應(yīng)的是具體的業(yè)務(wù)數(shù)據(jù),表單提交的字段,查詢接口的參數(shù)等。

2.2 解釋

可能部分同學(xué)會有疑問,上面的兩段請求內(nèi)容跟瀏覽器的截圖不一樣,原因是我上面的是 Http 協(xié)議標準的定義,瀏覽器畢竟面向的是用戶,對請求的信息有做了解析,更人性化地展示了請求的內(nèi)容。下面的內(nèi)容是某個后臺服務(wù)接收到瀏覽器請求的具體報文信息,借助 TCPflow 這個工具在 Linux 服務(wù)器上面監(jiān)聽的。或者簡單的 curl -v http://www.baidu.com/ 也可以看到協(xié)議內(nèi)容。
tcpflow

2.3 響應(yīng)的消息格式

  • 響應(yīng)頭部信息
HTTP/1.1 200 OK
Date:Sun, 23 Feb 2020 07:31:24 GMT
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 129
Content-Type: application/json; charset=UTF-8
...

返回了請求的狀態(tài),200狀態(tài)碼對應(yīng)的就是成功,還有一些鏈接狀態(tài),內(nèi)容的編碼,長度,媒體類型等。

  • 響應(yīng)的正文
{result: 0, data: ["Vue", "Python", "Java", "flutter", "springboot", "docker", "React", "小程序"],…}
data: ["Vue", "Python", "Java", "flutter", "springboot", "docker", "React", "小程序"]
msg: "成功"
result: 0

返回了消息的具體信息,這個消息有可能是一串 html 文本,也可能是 json 串,圖片,附件都有可能,一般是跟 content-type 對應(yīng)。

3. 小結(jié)

在上面的請求內(nèi)容中,規(guī)定了第一個是 method 后面是 url 接著是 protocal/version ,這樣的約束就是 http 的協(xié)議,服務(wù)器收到請求就根據(jù)這個規(guī)則拆開解析。應(yīng)用這樣的模式,web 的客戶端和服務(wù)端互相知道了請求的方法,地址,字符編碼,參數(shù),響應(yīng)值等。