關鍵詞:HTTP
HTTP協議是無狀態協議,依賴瞬間或者近乎瞬間的請求處理。請求信息被立即發送,理想的情況是沒有延遲地進行處理;不過,延遲還是客觀存在的。HTTP 協議有一種內置機制,在消息的傳遞時間上有一定的靈活性:超時機制。一個超時就是客戶端等待請求消息返回信息的最長時間。
HTTP協議的請求和響應消息如果沒有發送并傳遞成功的話,不保存任何已傳遞的信息。比如,單擊“提交”按牛,如果表單沒有發出去,則瀏覽器將會顯示錯誤信息頁,并且返回空白表單。雖然沒有提交成功,但是HTTP不保存任何表單信息。
HTTP是比TCP更高層次的應用層協議,根據規則,只有低層協議建立之后才能,才能進行更層協議的連接,因此,首先要建立TCP連接,一般TCP連接的端口號是80。
Paste_Image.png
過程:
1.建立連接:客戶端與服務器建立TCP連接
域名-->找到對應IP-->三次握手(syn,ack)后建立連接;
2.發送請求:打開一個連接后,客戶端把請求信息發送到服務器的相應端口上,完成請求動作提交;
3.發送響應:服務器在處理完客戶端請求之后,要向客戶端發送響應消息;
4.關閉連接:客戶端和服務器端都可以關閉套接字來結束TCP/IP對話。
一般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,然后如果瀏覽器或者服務器在其頭信息加入了這行代碼:
Connection:keep-alive
TCP連接在發送后將仍然保持打開狀態,于是,瀏覽器可以繼續通過相同的連接發送請求。保持連接節省了為每個請求建立新連接所需的時間,還節約了網絡帶寬。
Paste_Image.png