什么是HTTP協(xié)議
超文本傳輸協(xié)議Hyper Text Transfer ProtocolHTTP是一個(gè)簡(jiǎn)單的請(qǐng)求-響應(yīng)協(xié)議它通常運(yùn)行在TCP之上。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請(qǐng)求和響應(yīng)消息的頭以ASCII形式給出而消息內(nèi)容則具有一個(gè)類似MIME的格式。
HTTP的工作原理
HTTP是基于客戶/服務(wù)器模式且面向連接的。典型的HTTP事務(wù)處理有如下的過程
1客戶與服務(wù)器建立連接
2客戶向服務(wù)器提出請(qǐng)求
3服務(wù)器接受請(qǐng)求并根據(jù)請(qǐng)求返回相應(yīng)的文件作為應(yīng)答
4客戶與服務(wù)器關(guān)閉連接。
HTTP協(xié)議的運(yùn)作方式
在WWW中“客戶”與“服務(wù)器”是一個(gè)相對(duì)的概念只存在于一個(gè)特定的連接期間即在某個(gè)連接中的客戶在另一個(gè)連接中可能作為服務(wù)器。基于HTTP的客戶/服務(wù)器模式的信息交換過程它分四個(gè)過程建立連接、發(fā)送請(qǐng)求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。
HTTP協(xié)議的報(bào)文格式
HTTP報(bào)文由從客戶機(jī)到服務(wù)器的請(qǐng)求和從服務(wù)器到客戶機(jī)的響應(yīng)構(gòu)成。請(qǐng)求報(bào)文格式如下
請(qǐng)求行 - 通用信息頭 - 請(qǐng)求頭 - 實(shí)體頭 - 報(bào)文主體
請(qǐng)求行以方法字段開始后面分別是URL字段和HTTP協(xié)議版本字段并以CRLF結(jié)尾。SP是分隔符。除了在最后的CRLF序列中CF和LF是必需的之外其他都可以不要。有關(guān)通用信息頭請(qǐng)求頭和實(shí)體頭方面的具體內(nèi)容可以參照相關(guān)文件。
應(yīng)答報(bào)文格式如下
狀態(tài)行 - 通用信息頭 - 響應(yīng)頭 - 實(shí)體頭 - 報(bào)文主體
狀態(tài)碼元由3位數(shù)字組成表示請(qǐng)求是否被理解或被滿足。原因分析是對(duì)原文的狀態(tài)碼作簡(jiǎn)短的描述狀態(tài)碼用來支持自動(dòng)操作而原因分析用來供用戶使用??蛻魴C(jī)無(wú)需用來檢查或顯示語(yǔ)法。有關(guān)通用信息頭響應(yīng)頭和實(shí)體頭方面的具體內(nèi)容可以參照相關(guān)文件。
HTTP 請(qǐng)求/響應(yīng)的步驟
客戶端連接到 Web 服務(wù)器
一個(gè) HTTP 客戶端。通常是瀏覽器,與 Web 服務(wù)器的 HTTP 端(默認(rèn)為 80)建立一個(gè) TCP 套接字連接。如:http://www.baidu.com;
發(fā)送 HTTP 請(qǐng)求
通過 TCP 套接字,客戶端向 Web 服務(wù)器發(fā)送一個(gè)文本的請(qǐng)求報(bào)文,一個(gè)請(qǐng)求報(bào)文包括請(qǐng)求行、請(qǐng)求頭部、空行和請(qǐng)求數(shù)據(jù) 4 部分組成。
服務(wù)器接受請(qǐng)求并返回 HTTP 響應(yīng)
Web 服務(wù)器解析請(qǐng)求,定位請(qǐng)求資源。服務(wù)器將資源副本寫到 TCP 套接字,由客戶端讀取。一個(gè)響應(yīng)由狀態(tài)行、響應(yīng)頭部、空行和響應(yīng)數(shù)據(jù) 4 部分組成。
釋放 TCP 連接
如果 connect 模式為 close,則服務(wù)器阻斷關(guān)閉 TCP 連接,客戶端被動(dòng)關(guān)閉連接,釋放 TCP 連接;如果 connection 模式為 keepalive,則該連接會(huì)保持一段時(shí)間,在改時(shí)間內(nèi)可以繼續(xù)接收請(qǐng)求。
客戶端瀏覽器解析 HTML 內(nèi)容。
客戶端瀏覽器首先解析狀態(tài)行,查看表明請(qǐng)求是否成功的狀態(tài)代碼,然后解析每一個(gè)響應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的 HTML 文檔和文檔的字符集。客戶端瀏覽器讀取響應(yīng)數(shù)據(jù) HTML,根據(jù) HTML 語(yǔ)法堆砌進(jìn)行格式化,并在瀏覽器窗口中顯示。
審核編輯:黃飛
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
8866瀏覽量
84959 -
HTTP
+關(guān)注
關(guān)注
0文章
496瀏覽量
30897 -
TCP
+關(guān)注
關(guān)注
8文章
1337瀏覽量
78865
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論