在瀏覽器中輸入一個url后會發生什么


輸入一個url后大約需要經過以下五個步驟:

一、域名解析

1、根據url路徑解析出里面的域名

    注:域名 = 主機名:結構名:網絡名:最高層域名

2、根據域名解析出對應的IP地址

  ① 查詢瀏覽器中的DNS緩存

  ② 若瀏覽器中沒有查詢到相應的DNS緩存,查詢本地客戶端的hosts文件中有無對應的ip地址

  ③ 若hosts文件中也沒有,則查找本地DNS服務器(運營商提供的DNS服務器)

  ④ 若本地DNS緩存中也沒有,則向根服務器查詢,進行遞歸查找【遞歸查找時從頂級域名開始(如.com),一步步縮小范圍,最終客戶端取得ip地址】

  查詢過程如下圖所示:

  

 

二、TCP連接的建立

TCP連接是安全的、面向連接的可靠傳輸,建立連接時經過三次握手:

  ① 客戶端 -----> 服務端:發送帶有SYN標志的連接報文

  ② 服務端 -----> 客戶端:返回帶有SYN標志的ACK應答報文

  ③ 客戶端 -----> 服務端:發送ACK應答報文

經過三次握手后,已經成功建立了TCP連接,可以發送數據了。

 

三、發送HTTP請求

連接建立完成后,開始發送HTTP請求,HTTP請求方法有很多種 ,常用的主要是兩種GET和POST方法

請求報文格式:

  請求方法  URL  HTTP版本號

  請求頭 Header

  【一個空行】

  請求體 Body

 

四、服務器進行操作並發送響應

服務器根據請求報文中url里的路徑查找響應資源並對其數據進行處理:

響應報文:

  HTTP版本號  狀態碼  狀態碼解釋

  響應頭 Header【鍵值對數據】

  【一個空行】

  響應體 Body

響應狀態碼:

  200:OK

  301:永久移動,重定向

  302:臨時轉發,轉發

  400:語法錯誤

  403:無權限

  404:找不到請求資源,url錯誤

  405:請求方法被禁止,請求方法類型不對

  500:服務器內部錯誤

五、瀏覽器解析渲染

 


免責聲明!

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



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