一次完整的http請求過程

2021-10-08 21:25:38 字數 1252 閱讀 6554

http目前協議版本是1.1,http是一種無狀態的協議,無狀態是指web瀏覽器與web伺服器之間,不需要建立持久的鏈結,這意味著當乙個客戶端向伺服器端發出請求,然後web伺服器返回響應(response),鏈結就被關閉了,在伺服器端不保留鏈結的有關資訊。

1.建立tcp鏈結

在http工作前,首先瀏覽器與伺服器建立鏈結,該鏈結是通過tcp完成的,該協議與ip協議共同構建internet,即著名的tcp/ip協議方案。一般tcp連線埠號是80。

(1).瀏覽器自身搜dns快取

(2).搜尋作業系統的dns快取

(3).讀取本地host檔案

瀏覽器發起乙個dns系統呼叫,瀏覽器獲得網域名稱對應的ip位址後,發起乙個http三次握手

tcp/ip鏈結建立起來後,伺服器端接受到請求,根據路徑引數,經過後端的處理後,把處理後的結果返回給瀏覽器,瀏覽器拿到html頁面**,解析和渲染頁面,裡面的js、css資源都需要經過上面的步驟。

2.web瀏覽器向伺服器傳送請求命令

例如:grt/sample/hello.jsp http/1.1

3.web瀏覽器傳送請求頭資訊

瀏覽器傳送請求命令後,還要以頭資訊的形式向web伺服器傳送一些別的資訊,之後瀏覽器傳送一空白行通知伺服器,它已經結束了該頭資訊的傳送。

4.web伺服器應答

應答的第一部分是協議的版本號和應答狀態碼

如:http/1.1  200ok

5.伺服器傳送應答頭資訊(關於伺服器自己的資料)

6.伺服器向瀏覽器傳送資料

伺服器傳送頭資訊後,它會傳送乙個空白行來表示頭資訊傳送到此為止,接著以content-type應答頭資訊所描述的格式傳送使用者所請求的實際資料。

7.關閉tcp連線

如果瀏覽器或伺服器在其頭資訊加入了這行**,connection:keep-alive,tcp連線在傳送後仍然保持開啟狀態

1.請求方法url  協議/版本                  get/sample.jsp  http/1.1

2.請求頭(包含客戶端環境、瀏覽器所用語言、正文長度等)

3.請求正文(包含客戶提交的查詢字串資訊)  username=qwe&password=123

1.協議狀態版本      http/1.1  200ok

2.響應頭(伺服器型別、日期時間、內容型別、長度等)     server:apache tomcat/5.0.12   content-type:text/html

3.響應正文

響應頭和正文之間也必須用空行分割

一次完整的 HTTP 請求過程

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

一次完整的HTTP請求過程

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...

一次完整的 HTTP 請求過程

一次完整的http請求過程從tcp三次握手建立連線成功後開始,客戶端按照指定的格式開始向服務端傳送http請求,服務端接收請求後,解析http請求,處理完業務邏輯,最後返回乙個http的響應給客戶端,http的響應內容同樣有標準的格式。無論是什麼客戶端或者是什麼服務端,大家只要按照http的協議標準...