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

一、什麼是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.在瀏覽器中輸入網址

2.瀏覽器根據用戶輸入的網址來解析出相應的IP地址(DNS查找過程)

(1)瀏覽器緩存

如果在一定的時間內已經訪問過這個網址,那麼瀏覽器緩存DNS記錄一段時間(不同的瀏覽器保存緩存的時間也不一樣)

(2)系統緩存

如果在瀏覽器緩存中沒有查找到相應的域名,那麼就會在操作系統的緩存中進行查找(瀏覽器會做一個系統調用)

(3)路由器緩存

如果在系統緩存中也沒有查找到相應的域名,那麼就是在路由器的緩存中來進行查找

(4)ISP DNS緩存

如果在路由器緩存中還是沒有查找到相應的域名,那麼就需要到ISP(Internet   Service   Provider即網絡服務提供商)的DNS緩存中進行查找,這裏一般都可以查到對應的緩存記錄

3.瀏覽器與服務器建立一個TCP連接

4.瀏覽器給WEB服務器發送一個http請求

http請求的常見請求方法有GET、POST、HEAD

GET和POST的區別

GET和POST的區別

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

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

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

7.服務器處理請求

8.服務器發回一個HTML響應

9.釋放TCP連接

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

11.瀏覽器獲取嵌入在HTML中的其他對象

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章