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