在瀏覽器中輸入url
用戶輸入url,例如http://jirengu.com:8080/blog董栽。其中http為協(xié)議;jirengu.com為域名(網(wǎng)絡(luò)地址)瞭稼,及指出需要的資源在那臺(tái)計(jì)算機(jī)上;8080為端口號(hào)腻惠;/blog為請(qǐng)求的文件环肘。一般網(wǎng)絡(luò)地址可以為域名或IP地址,此處為域名集灌。使用域名是為了方便記憶悔雹,但是為了讓計(jì)算機(jī)理解這個(gè)地址還需要把它解析為IP地址。
tips:
- http:表示定位的資源在網(wǎng)絡(luò)上
- file:表示定位的資源在本地
- https:是在http的基礎(chǔ)上加密了欣喧,及時(shí)別人獲取到了你請(qǐng)求的數(shù)據(jù)也無(wú)法直接看腌零。
- //表示該url與當(dāng)前所在頁(yè)面的協(xié)議保持一致。
<p> </p>
DNS解析域名
客戶端先檢查本地是否有對(duì)應(yīng)的IP地址唆阿,若找到則返回響應(yīng)的IP地址益涧。若沒(méi)找到則請(qǐng)求上級(jí)DNS服務(wù)器,直至找到或到根節(jié)點(diǎn)
查詢的順序:
- 瀏覽器緩存:瀏覽器會(huì)緩存dns0記錄一段時(shí)間
- 系統(tǒng)緩存 :從hosts文件查找是否有改域名和對(duì)應(yīng)ip(通過(guò)修改hosts定位本機(jī)的作用)
- 路由器緩存
- isp dns 緩存
如果最后無(wú)法解析出ip地址驯鳖,則會(huì)出現(xiàn)著名的404錯(cuò)誤闲询。
tips:為什么要發(fā)明域名?
因?yàn)閕p地址很難記浅辙,而域名比較形象好記(同時(shí)要明確的是一個(gè)域名可以綁定多個(gè)ip扭弧,而多個(gè)域名也可以解析成同一個(gè)ip)
tips:局域網(wǎng)ip不是開(kāi)放的(可用于手機(jī)調(diào)試),公網(wǎng)ip所有人偶的可以訪問(wèn)摔握。127.0.0.1代表本機(jī)ip
tips:修改本地dns為8.8.8.8或者114.114.114.114寄狼,就相當(dāng)于把自己的電腦搬到了谷歌去了,用的是谷歌的IP地址進(jìn)行請(qǐng)求氨淌,出錯(cuò)的幾率很小泊愧。
<p> </p>
創(chuàng)建tcp鏈接
如果地址不包括端口號(hào),根據(jù)協(xié)議的默認(rèn)端口號(hào)確定一個(gè)盛正,http的默認(rèn)端口為80删咱。端口號(hào)就像銀行的窗口一樣,不同的窗口號(hào)辦理不同的業(yè)務(wù)豪筝。通過(guò)端口組織一個(gè)請(qǐng)求的數(shù)據(jù)包痰滋,里面包含請(qǐng)求的資源路徑,身份续崖,通過(guò)確定的IP和端口號(hào)創(chuàng)建TCP連接敲街。
<p> </p>
web serve請(qǐng)求
服務(wù)器端的web serve軟件在后臺(tái)進(jìn)行數(shù)據(jù)的請(qǐng)求,后臺(tái)找到數(shù)據(jù)后把數(shù)據(jù)以代碼的形式打包發(fā)給web serve严望,web serve在把數(shù)據(jù)給到瀏覽器多艇。
<p> </p>
瀏覽器響應(yīng)
瀏覽器接受到數(shù)據(jù)后,對(duì)里面的代碼進(jìn)行第二次鏈接請(qǐng)求像吻,第二次請(qǐng)求發(fā)回來(lái)的數(shù)據(jù)峻黍,瀏覽器再根據(jù)httml和css來(lái)進(jìn)行內(nèi)容的排版展現(xiàn)复隆。
tips:web服務(wù)器有apche、nginx姆涩、iis挽拂、lighttpd等。