瀏覽器輸入URL后,發生了什么?(打開一個網頁會使用哪些協議?)


  簡單說來分為6個過程

1.DNS解析

互聯網每一個服務器都是以ip地址作為界限的,並不是我們平時輸入的url地址,就比如www.ccc.com這一個網址,當輸入進瀏覽器之后就會由DNS解析將它轉化成一個ip地址,所以DNS實際上擔任的是一個翻譯者的角色。下面放一個大佬的圖,看了之后估計你就會更加深入的了解DNS域名解析的原理了。

 

從圖上可以看出域名解析其實是一個從右到左的過程也就是從-.到-com到-ccc.com到-www.ccc.com。第一個.表示的就是根域名服務器的域名解析。那了解了這個過程會給我們帶阿來什么樣的好處呢?首先我們看到一個DNS域名解析的過程還是相對比較復雜的,所以是不是我們可以添加一個DNS緩存呢?就像大多數的緩存一樣,在我們訪問過一個地址之后,緩存就會將對應的ip地址存下來。當然緩存的種類也按照整個步驟分為瀏覽器緩存,系統緩存,路由器緩存,IPS服務器緩存,根域名服務器緩存,頂級域名服務器緩存,主域名服務器緩存這幾種。事實上,現在每一個網址背后都會有很多台服務器,那么DNS是怎么進行篩選出一個最適合的ip地址呢?那就是DNS負載均衡過程,也就是DNS重定向,通過這個過程DNS幫助我們選擇最適合當前瀏覽器地址的對應ip地址。,比如大家熟悉的CDN就是使用的這個技術。

2.TCP連接

其實發送HTTP請求是和TCP連接綁定的,HTTP協議是使用TCP作為其傳輸層協議的,當TCP出現瓶頸時,HTTP也會受到影響。

3.發送HTTP請求

在講發送HTTP請求之前,必須要先聊https協議,在傳輸過程中,http報文是和TCP報文連在一起得,服務器在收到TCP報文之后,會解析出http報文,這樣傳輸是有一定得危險性得,因為http報文是明文得,所以如果泄露得話就會出現信息泄露,那么https協議就是在http報文和tcp報文連在一起之前進行加密,所以https協議的本質就是HTTP + SSL(or TLS)。在HTTP報文進入TCP報文之前,先使用SSL對HTTP報文進行加密。從網絡的層級結構看它位於HTTP協議與TCP協議之間。而https在進行數據傳輸之前,客戶端要與服務端進行一次握手,(TLS和SSL握手),確定加密得信息,因此雖然https相對於http之間安全性更高,但是消耗得時間相對也就更高,所以是否采用https協議要根據情況來定。

同樣咱們繼續聊http請求,因為我對前端了解不是很多,http請求又發生在客戶端,所以在這里我只根據自己得理解簡略得談一下。發送http請求的過程就是構建http請求報文並通過TCP協議中發送到服務器指定端口(HTTP協議80/8080, HTTPS協議443)TTP請求報文是由三部分組成: 請求行, 請求報頭和請求正文。

4.服務器處理請求並返回HTTP報文

這一段自然就是對照后端得http了。后端從接收到tcp報文開始,就會對tcp進行處理,這里也就是用到了socket,對http協議進行解析,封裝成HTTP Request對象,供上層使用。這一部分使用web服務器去執行的,比如tomcat。HTTP響應報文也是由三部分組成: 狀態碼, 響應報頭和響應報文。

狀態碼就是我們常見的比如404,500等具體分為如下

1開頭:指示信息——表示已經接受,繼續處理。

2開頭:成功——表示信息已經接收、理解、接受

3開頭:重定向——需要進一步的操作。

4開頭:客戶端錯誤——請求有語法或者其他錯誤。

5開頭:服務器錯誤——未能實現合法的請求。

響應報頭:比如server和connection

響應報文:文本信息,比如html文件等等。

5.瀏覽器解析和渲染頁面

6.連接結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM