http請求過程 http一次請求和響應的全過程

2021-10-11 10:25:17 字數 1522 閱讀 3030

一、什麼是http協議

http協議是hyper text transfer protocol(超文字傳輸協議),是用於全球資訊網伺服器傳輸超文字到本地瀏覽器的傳輸協議,http協議是基於tcp/ip通訊協議來傳送資料。http協議工作於b/s架構的系統時,瀏覽器作為http的客戶端通過url向http服務端即web伺服器傳送訪問請求,web伺服器收到請求後再將相應的請求內容返回到客戶端。

二、http的主要特點

1.無狀態性

http是沒有狀態的,即協議對事務處理是沒有記憶的,同乙個客戶端第二次訪問位於同一伺服器上的頁面時,伺服器是不認識不記得這個客戶端的,它並不知道這個客戶端曾經訪問過它。這樣的好處是簡化了服務端的設計,能夠更加容易的支援大併發量的http請求。

2.靈活

http允許傳輸任意型別的資料物件

3.無連線

即限制每次連線只響應乙個請求,服務端回應了客戶端的請求並得到客戶端的回應後,斷開連線,採用這種方式可以節省傳輸時間。

三、請求和響應的過程

1.在瀏覽器中輸入**

(1)瀏覽器快取

如果在一定的時間內已經訪問過這個**,那麼瀏覽器快取dns記錄一段時間(不同的瀏覽器儲存快取的時間也不一樣)

(2)系統快取

如果在瀏覽器快取中沒有查詢到相應的網域名稱,那麼就會在作業系統的快取中進行查詢(瀏覽器會做乙個系統呼叫)

(3)路由器快取

如果在系統快取中也沒有查詢到相應的網域名稱,那麼就是在路由器的快取中來進行查詢

(4)isp dns快取

如果在路由器快取中還是沒有查詢到相應的網域名稱,那麼就需要到isp(internet service provider即網路服務提供商)的dns快取中進行查詢,這裡一般都可以查到對應的快取記錄

3.瀏覽器與伺服器建立乙個tcp連線

4.瀏覽器給web伺服器傳送乙個http請求

http請求的常見請求方法有get、post、head

get和post的區別

5.伺服器永久重定向響應

伺服器會給瀏覽器乙個301永久重定向響應,這樣的話樣瀏覽器就會訪問"" 而非"",服務端一定要重定向而不是直接把使用者想看的內容直接返回客戶端是為什麼呢?其中乙個原因是和搜尋引擎的排名有關,例如""和"",服務端會將它們看成是兩個網頁,這樣的話就降低了兩個網域名稱的搜尋排名,搜尋引擎明白301狀態碼的意思是什麼,就會把帶有www和不帶有www的兩個位址歸到同乙個**名下。另乙個原因是會造成快取友好性變差,如果乙個頁面有好幾個名字的話,在快取中會出現好幾次。

6.瀏覽器跟蹤重定向的位址,並向改位址傳送http請求

7.伺服器處理請求

8.伺服器發回乙個html響應

9.釋放tcp連線

10.客戶端將接到的html文字解析並顯示出來

11.瀏覽器獲取嵌入在html中的其他物件

在瀏覽器顯示html時,這個html文字中可能會包含一些其他位址的資源,這個時候瀏覽器就要再向這些位址傳送http請求來獲得相應的資源。

一次完整的 HTTP 請求過程

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

一次完整的HTTP請求過程

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

一次完整的 HTTP 請求過程

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