一次完整的http請求過程

HTTP協議是無狀態協議,依賴瞬間或者近乎瞬間的請求處理。請求信息被立即發送,理想的情況是沒有延遲地進行處理;不過,延遲還是客觀存在的。HTTP 協議有一種內置機制,在消息的傳遞時間上有一定的靈活性:超時機制。一個超時就是客戶端等待請求消息返回信息的最長時間。

HTTP協議的請求和響應消息如果沒有發送並傳遞成功的話,不保存任何已傳遞的信息。比如,單擊“提交”按牛,如果表單沒有發出去,則瀏覽器將會顯示錯誤信息頁,並且返回空白表單。雖然沒有提交成功,但是HTTP不保存任何表單信息。

HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之後才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80。

一次完整的http請求過程


1) 建立連接:客戶端與服務器建立TCP連接
域名-->找到對應IP-->三次握手(syn,ack)後建立連接;
2) 發送請求:打開一個連接後,客戶端把請求信息發送到服務器的相應端口上,完成請求動作提交;
3) 發送響應:服務器在處理完客戶端請求之後,要向客戶端發送響應消息;
4) 關閉連接:客戶端和服務器端都可以關閉套接字來結束TCP/IP對話。
一般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然後如果瀏覽器或者服務器在其頭信息加入了這行代碼:
Connection:keep-alive
TCP連接在發送後將仍然保持打開狀態,於是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了爲每個請求建立新連接所需的時間,還節約了網絡帶寬。


參考文章:
http://www.nowamagic.net/librarys/veda/detail/1339
http://www.cnblogs.com/stg609/archive/2008/07/06/1236966.html
發佈了125 篇原創文章 · 獲贊 39 · 訪問量 63萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章