前戲
直接按順序講滩援,中間帶些概念解釋。盡量講的簡短些吧塔嬉,畢竟懶233玩徊。。
正文
1. 輸入網(wǎng)址
網(wǎng)址谨究,也就是URL(統(tǒng)一資源定位符)恩袱,用來定位用戶想要訪問的網(wǎng)頁。它的標準格式是這樣的:
協(xié)議類型:[//服務(wù)器地址[:端口號]][/資源層級UNIX文件路徑]文件名[?查詢][#片段ID]
然而一般情況只需要輸入域名就可以了胶哲,比如直接輸入www.baidu.com就可以直接跳轉(zhuǎn)到百度畔塔。因為瀏覽器會自動補全協(xié)議類型(http)、端口號(80)和路徑(/)。
2. 解析域名
單獨只靠域名是無法找到對應(yīng)的服務(wù)器的澈吨,為了找到服務(wù)器把敢,需要先得到服務(wù)器的IP地址。這里就需要使用DNS(域名系統(tǒng))將域名解析為對應(yīng)的IP地址谅辣。而DNS實際上就是一個存儲域名與IP相互映射的數(shù)據(jù)庫修赞。
3. 瀏覽器發(fā)送請求
拿到IP地址之后瀏覽器便可以向服務(wù)器發(fā)送請求。而請求的格式需要遵守一種約定桑阶,也就是HTTP(超文本傳輸協(xié)議)榔组,HTTP是客戶端和服務(wù)器請求和應(yīng)答的標準,也是必須遵守的規(guī)定联逻。這個標準規(guī)定了請求大概是這樣的:
看下第一行就可以了。其中GET表示請求方式检痰,中間的“ / ”表示請求的路徑包归,后面的HTTP/1.1就是HTTP協(xié)議版本。這樣瀏覽器就把請求交給了服務(wù)器并且等它回應(yīng)铅歼。
4. 服務(wù)器響應(yīng)請求
服務(wù)器拿到請求之后會根據(jù)請求的路徑返回不同的文件內(nèi)容公壤。例如訪問某服務(wù)器的/index.html路徑時,服務(wù)器內(nèi)部就會響應(yīng)請求并將這個路徑對應(yīng)的文件內(nèi)容傳輸回客戶端椎椰。這里涉及到TCP(傳輸控制協(xié)議)厦幅,只需要了解HTTP傳輸是基于TCP即可。
根據(jù)HTTP協(xié)議慨飘,服務(wù)器相應(yīng)返回的結(jié)果大概是這樣的:
同樣只需要看下第一行就好了确憨。中間的200是HTTP狀態(tài)碼,200就表示成功瓤的,后面的OK跟狀態(tài)碼一起的休弃,用來解釋狀態(tài)碼。
(服務(wù)器端需要指定Content-Type的值以確定返回文件類型)
5. 瀏覽器解析文件內(nèi)容
瀏覽器接收到文件后就開始逐行解析文件的內(nèi)容圈膏。如果文件中又包含另外的請求塔猾,如在html文件中遇到link標簽,則需要根據(jù)指定路徑再次發(fā)送請求稽坤,也就是重復(fù)第3到4步丈甸。直到所有文件全部解析請求完畢。
6. 將請求結(jié)果呈現(xiàn)到頁面
當所有請求與接收全部完成之后尿褪,一個完整的頁面就被呈現(xiàn)到了用戶的面前睦擂。
結(jié)語
沒有結(jié)語,鏈接都在正文里了茫多。祈匙。