http通訊機制是在一次完整的http通訊過程中,web瀏覽器與web伺服器之間將完成下列7個步驟:
1. 建立tcp連線
在http工作開始之前,web瀏覽器首先要通過網路與web伺服器建立連線,該連線是通過tcp來完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議族,因此internet又被稱作是tcp/ip網路。http是比tcp更高層次的應用層協議,根據規則,只有低層協議建立之後才能進行更高層協議的連線,因此,首先要建立tcp連線,一般tcp連線的埠號是80。輸入**後通過dns找到相應的ip,dns是樹形的,會逐層向上查詢,直到找到根。會得到ip,如果有埠,就使用給出的埠,沒有埠 就是用預設埠,從而完成乙個socket連線
解釋一下返回**資訊
一次完整的http請求訊息包括:乙個請求行,若干訊息頭,以及實體內容,訊息頭和實體內容可以沒有,訊息頭和實體內容間有乙個空行
2user-agent:mozilla/2.0(macintosh;i;ppc) 請求終端:瀏覽器
3accept:text/html;*/* 用html解析
4cookie:name=value
5referer: 哪個介面提交
其中,第1行就是請求行:請求方式為get(除了get之外,還有post、put、delete方式),請求的檔案位於根目錄/mattmarg/下,當然也可以直接給出需要的頁面(如:/mattmarg/index.asp,也可以加上一些其它字段 如:/mattmarg/index.asp?id=1&uid=***。當我們通過get請求時,提交給伺服器的請求行長度不能超過1k,而如果利用post方式,則是把所提交的資訊以實體內容形式傳送給伺服器,所以如果伺服器沒有限制的話,原則上講可以傳輸無限大的內容),http/1.0 表示了http的版本為1.0。其餘幾行就是訊息頭了,訊息頭主要是用來向伺服器傳達某種資訊或指示。如告訴伺服器自己的終端(user-agent)是什麼(如果是瀏覽器則返回相應的瀏覽器型號),終端所可以解釋的型別(accept)是什麼,是從哪個頁面提交的請求(referer),以及瀏覽器所能解釋的語言(accept-language)等等。我們這裡拿accept-language來舉個例子,大家都知道google在中國大陸顯示的是簡體中文,而在其它的國家則顯示對應的語言,這個是怎麼做到的呢?其實就是瀏覽器向伺服器遞交的請求資訊中包含了accept-language,而我們的瀏覽器預設是zh-cn,然後伺服器在接受到該資訊時返回對應的頁面。
http響應訊息
http響應訊息的格式為:乙個狀態行、若干訊息頭和實體內容,其中訊息頭和實體內容可以沒有,訊息頭和實體內容間有乙個空行。
我們依舊先來看乙個例子:
其中,01行是狀態行,用於顯示伺服器響應的狀態,http/1.1顯示了對應的http協議版本,200為狀態數字,ok為狀態資訊用於解釋狀態數字(這裡ok對應200,表示請求正常);
02~09是訊息頭部分,10為空行,11為實體內容(也就是伺服器返回的網頁內容)
2. web瀏覽器向web伺服器傳送請求命令
一旦建立了tcp連線,web瀏覽器就會向web伺服器傳送請求命令。例如:get/sample/hello.jsp http/1.1。
3. web瀏覽器傳送請求頭資訊
瀏覽器傳送其請求命令之後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送了一空白行來通知伺服器,它已經結束了該頭資訊的傳送。
4. web伺服器應答
客戶機向伺服器發出請求後,伺服器會客戶機回送應答, http/1.1 200 ok ,應答的第一部分是協議的版本號和應答狀態碼。
5. web伺服器傳送應答頭資訊
正如客戶端會隨同請求傳送關於自身的資訊一樣,伺服器也會隨同應答向使用者傳送關於它自己的資料及被請求的文件。
6. web伺服器向瀏覽器傳送資料
web伺服器向瀏覽器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊的傳送到此為結束,接著,它就以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料。
7. web伺服器關閉tcp連線
一般情況下,一旦web伺服器向瀏覽器傳送了請求資料,它就要關閉tcp連線,然後如果瀏覽器或者伺服器在其頭資訊加入了這行**:connection:keep-alive
tcp連線在傳送後將仍然保持開啟狀態,於是,瀏覽器可以繼續通過相同的連線傳送請求。保持連線節省了為每個請求建立新連線所需的時間,還節約了網路頻寬。
一次完整的HTTP事務包含哪些過程
一次完整的請求 響應被稱為http事務,在http事務中有一系列的資訊交換,這些資訊交換是乙個不可分割的整體,也就是說,要麼所有的資訊全部交換完,要麼一次交換也不進行。畢竟事務的特性擱那擺著 http事務有以下四個部分組成 客戶端與伺服器建立連線。http是基於tcp協議,這裡的連線可以理解為tcp...
一次完整的HTTP請求
一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...
一次完整的HTTP請求
一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...