要了解從URL輸入到頁面展示全過程,我們首先要了解什么是URL,然后再去了解它發生了什么。
一、什么是URL
定義:URL(統一資源定位符)是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。
結構:基本URL包含模式(或稱協議)、服務器名稱(或IP地址)、路徑和文件名,如“協議://授權/路徑?查詢”。完整的、帶有授權部分的普通統一資源標志符語法看上去如下:協議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件后綴?參數=值#標志
例如,http://baike.baidu.com/link?url=0_rongdccKIYEuOZW52kTDziML63ok5Hs3POtrMk_YSIuz2SUGjdiLZXSFsbuvhku2LDdQieqLer6znxoP0lEa(這個網址則完整的表現出了URl的語法)
其中可以分為二個部分(有的分為三個部分)
第一部分:模式/協議(scheme):它告訴瀏覽器如何處理將要打開的文件。最常用的模式是超文本傳輸協議(Hypertext Transfer Protocol,縮寫為HTTP),這個協議可以用來訪問網絡。其它協議如下:
http——超文本傳輸協議資源,https——用安全套接字層傳送的超文本傳輸協議,ftp——文件傳輸協議,mailto——電子郵件地址,ldap——輕型目錄訪問協議搜索,file——當地電腦或網上分享的文件,news——Usenet新聞組,gopher——Gopher協議,telnet——Telnet協議(ps:我只知道http,ftp,https,file,其它的之前都沒見過)
第二部分:文件所在的服務器的名稱或IP地址,后面是到達這個文件的路徑和文件本身的名稱。服務器的名稱或IP地址后面有時還跟一個冒號和一個端口號。它也可以包含接觸服務器必須的用戶名稱和密碼。路徑部分包含等級結構的路徑定義,一般來說不同部分之間以斜線(/)分隔。詢問部分一般用來傳送對服務器上的數據庫進行動態詢問時所需要的參數。
有時候,URL以斜杠“/”結尾,而沒有給出文件名,在這種情況下,URL引用路徑中最后一個目錄中的默認文件(通常對應于主頁),這個文件常常被稱為 index.html 或 default.htm。
二、從URL輸入到頁面展示全過程
1、首先,在瀏覽器地址欄中輸入url
2、瀏覽器先查看瀏覽器緩存-系統緩存-路由器緩存,如果緩存中有,會直接在屏幕中顯示頁面內容。若沒有,則跳到第三步操作。
3、在發送http請求前,需要域名解析(DNS解析),解析獲取相應的IP地址。
4、瀏覽器向服務器發起tcp連接,與瀏覽器建立tcp三次握手。
5、握手成功后,瀏覽器向服務器發送http請求,請求數據包。
6、服務器處理收到的請求,將數據返回至瀏覽器
7、瀏覽器收到HTTP響應
8、讀取頁面內容,瀏覽器渲染,解析html源碼
9、生成Dom樹、解析css樣式、js交互
10、客戶端和服務器交互
11、ajax查詢
總結:本文章URL來源于百科,過程部分來源于博客