一次完整的http請求全程

2022-08-05 12:21:19 字數 1873 閱讀 4773

一、解析url:

瀏覽器首先會對輸入的url進行檢查,如果不合法,會把輸入的文字傳給預設的搜尋引擎--如google、baidu;通過了url的驗證,那麼可以解析得到協議(http以及https)、網域名稱、資源等資訊;

二、dns查詢:

瀏覽器會先檢查網域名稱資訊是否在快取中;

再檢查網域名稱是否在本地hosts檔案中;

如果還不在,那麼瀏覽器就會向dns伺服器傳送乙個查詢的請求,獲得目標伺服器的ip位址;

三、tcp封包及傳輸:

瀏覽器獲得了目標伺服器的ip、埠,瀏覽器會呼叫庫函式socket,生成乙個tcp流套接字,也就是tcp封包;

tcp封包完成之後,就可以傳輸資料了,在完成「你楸啥」--「瞅你咋地」---「來過來嘮嘮」tcp三次握手,瀏覽器和伺服器就建立了連線,後面就可以請求伺服器資源了。

四、伺服器接受請求並響應:

http有很多請求方法,比如:get/post/put/delete等等,我們瀏覽器輸入url這種,是get方法;

伺服器接受get請求,伺服器根據請求資訊,獲得相應的資源內容。

五、瀏覽器解析並渲染:

瀏覽器從伺服器拿到了想要的資源,如html頁面,首先對html文件進行解析,生成dom節點樹,然後載入頁面的外部資源,如css、js、img等;最後遍歷dom樹,並計算每個節點的樣式,最終完成渲染,變成我們的頁面;

附帶:get以及post的區別:

http是什麼?http是基於tcp/ip的關於資料如何在全球資訊網中如何通訊的協議。

http的底層是tcp/ip。所以get和post的底層也是tcp/ip,也就是說,get/post都是tcp鏈結。get和post能做的事情是一樣一樣的。你要給get加上request body,給post帶上url引數,技術上是完全行的通

在我大全球資訊網世界中,tcp就像汽車,我們用tcp來運輸資料,它很可靠,從來不會發生丟件少件的現象。但是如果路上跑的全是看起來一模一樣的汽車,那這個世界看起來是一團混亂,送急件的汽車可能被前面滿載貨物的汽車攔堵在路上,整個交通系統一定會癱瘓。為了避免這種情況發生,交通規則http誕生了。http給汽車運輸設定了好幾個服務類別,有get, post, put, delete等等,http規定,當執行get請求的時候,要給汽車貼上get的標籤(設定method為get),而且要求把傳送的資料放在車頂上(url中)以方便記錄。如果是post請求,就要在車上貼上post的標籤,並把貨物放在車廂裡。當然,你也可以在get的時候往車廂內偷偷藏點貨物,但是這是很不光彩;也可以在post的時候在車頂上也放一些資料,讓人覺得傻乎乎的。http只是個行為準則,而tcp才是get和post怎麼實現的基本。

首先:get比post更不安全,因為引數直接暴露在url上,所以不能用來傳遞敏感資訊,get引數通過url傳遞,post放在request body中,get產生乙個tcp資料報;post產生兩個tcp資料報,對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料),而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料);然後:get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被

有關 get 請求的其他一些注釋:

查詢字串(名稱/值對)是在 post 請求的 http 訊息主體中傳送的

有關 post 請求的其他一些注釋:

一次完整的HTTP請求

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

一次完整的HTTP請求

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

一次完整的http請求

一些基本概念 1.tcp ip 把與網際網路相關聯的協議集合起來的總稱 2.http是tcp ip的乙個子集 3.tcp ip分為四層 一次完整的http請求流程 1.客戶端通過dns服務得到目標ip 2.http協議 生成針對目標web伺服器的http請求 3.tcp協議 將http請求報文分割成...