網(wǎng)站從URL輸入到頁(yè)面展現(xiàn)的六個(gè)步驟:
URL是什么
統(tǒng)一資源定位符(Uniform Resource Locator,縮寫為URL),又叫做網(wǎng)頁(yè)地址,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)的資源的地址(Address)?;ヂ?lián)網(wǎng)上的每個(gè)文件都有一個(gè)唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。它最初是由蒂姆·伯納斯-李發(fā)明用來(lái)作為萬(wàn)維網(wǎng)的地址的?,F(xiàn)在它已經(jīng)被萬(wàn)維網(wǎng)聯(lián)盟編制為因特網(wǎng)標(biāo)準(zhǔn)RFC1738了。統(tǒng)一資源定位符的開(kāi)始,一般會(huì)標(biāo)志著一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)所使用的網(wǎng)絡(luò)協(xié)議。
URL的幾個(gè)部分
百度完整的URL地址:https://www.baidu.com/link?url=sofXEgyeLzeisB_YfK4BQmywO9kRUuUrCNxYWtf0fI-8sQ1ZtanCPsip2xchhicn&wd=&eqid=e87ea4c90011764d000000065d4fc73f
協(xié)議部分
在該URL中,協(xié)議部分為(https://),這代表該網(wǎng)頁(yè)使用的是https協(xié)議。在Internet中可以使用多種協(xié)議。
常見(jiàn)的協(xié)議有:
http:// (超文本傳輸協(xié)議,信息是明文傳輸)
https:// (網(wǎng)絡(luò)加密的超文本傳輸協(xié)議)
file:// (本地文件傳輸協(xié)議,file協(xié)議主要用于訪問(wèn)本地計(jì)算機(jī)中的文件)
ftp:// (文件傳輸協(xié)議)
mailto: (資源為電子郵件地址,通過(guò)SMTP訪問(wèn))
還有一種URL前面沒(méi)有加指定協(xié)議,它是指獲取該資源需要使用的協(xié)議與當(dāng)前的URL是保持一致的。
域名部分
用來(lái)確定服務(wù)器在互聯(lián)網(wǎng)上的位置,域名的目的是便于記憶和溝通的一組服務(wù)器的地址,是唯一不可重復(fù)的。
域名一般也分三個(gè)級(jí)別域名
一級(jí)域名(頂級(jí)域名):比如.com .cn
二級(jí)域名:http://baidu.com http://qq.com
三級(jí)域名:http://www.baidu.com http://www.qq.com
例子中
http://www.baidu.com是二級(jí)域名
.com 供商用的國(guó)際域名
.cn 供商用的中文域名
.net 用于網(wǎng)絡(luò)供應(yīng)服務(wù)商(系統(tǒng)類的經(jīng)常使用net域名)
.org 用于官方組織
.edu 用于教育院校
.gov 用于政府機(jī)構(gòu)
端口號(hào)
用來(lái)區(qū)分同一臺(tái)服務(wù)器上不同服務(wù)的標(biāo)識(shí)(基于web服務(wù)管理創(chuàng)建服務(wù)的時(shí)候可以指定),不同服務(wù)之間一般是不能使用相同的端口號(hào)的。
HTTP => 默認(rèn)端口號(hào)80
HTTPS => 默認(rèn)端口號(hào)443
FTP => 默認(rèn)端口號(hào)21
如果當(dāng)前網(wǎng)絡(luò)服務(wù),采用的是協(xié)議對(duì)應(yīng)的默認(rèn)端口管理,那么當(dāng)用戶輸入網(wǎng)址的時(shí)候可以不指定端口號(hào),瀏覽器會(huì)默認(rèn)幫用戶把默認(rèn)的端口傳遞給服務(wù)器。(開(kāi)發(fā)者在服務(wù)器上發(fā)布服務(wù)的時(shí)候需要指定端口) 一臺(tái)服務(wù)器上的端口號(hào)范圍:0~65535之間
webstorm預(yù)覽頁(yè)面:http://localhost:63342/QQMusicWebApp.html/ webstorm預(yù)覽頁(yè)面:webstorm把自己的電腦當(dāng)做服務(wù)器,在服務(wù)器上創(chuàng)建一個(gè)服務(wù),端口號(hào)是63342,自己電腦上的瀏覽器預(yù)覽自己電腦上的服務(wù),屬于本機(jī)服務(wù)請(qǐng)求,用localhost(127.0.0.1)本地域名即可。
服務(wù)器上安裝一款應(yīng)用都可能會(huì)作為一個(gè)服務(wù),占用一個(gè)端口號(hào)。
問(wèn)號(hào)傳參及哈希值
?xx=xxx這是問(wèn)號(hào)傳參,在HTTP事務(wù)中,問(wèn)號(hào)傳參是客戶端把信息傳遞給服務(wù)器的一種方式(也有可能是跳轉(zhuǎn)到某一個(gè)頁(yè)面,把參數(shù)值傳遞給頁(yè)面用來(lái)標(biāo)識(shí)的)。 #xxx這是哈希值,哈希值一般都是跟用戶端服務(wù)器交互沒(méi)啥關(guān)系,主要用于頁(yè)面中的錨點(diǎn)定位和HASH路由切換。
DNS是什么
域名系統(tǒng)(Domain Name System縮寫DNS,Domain Name被譯為域名)是因特網(wǎng)的一項(xiàng)核心服務(wù),它作為可以將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使人更方便的訪問(wèn)互聯(lián)網(wǎng),而不用去記住能夠被機(jī)器直接讀取的IP數(shù)串。DNS系統(tǒng)是為解析域名為 IP 地址而存在的。
IP 網(wǎng)絡(luò)協(xié)議(英語(yǔ):Internet Protocol)。
IP分為內(nèi)網(wǎng)和外網(wǎng)。
內(nèi)網(wǎng)(也稱局域網(wǎng)),是幾臺(tái)或者幾十臺(tái)電腦之間互相連接用于資源共享的網(wǎng)絡(luò),家庭、單位所使用的網(wǎng)絡(luò)一般都是內(nèi)網(wǎng)。內(nèi)網(wǎng)中的設(shè)備使用內(nèi)網(wǎng) IP,一般來(lái)說(shuō)這個(gè) IP 的格式都是 http://192.168.xxx.xxx。
外網(wǎng)(也稱廣域網(wǎng)),在單位、家庭之外有覆蓋范圍極大的網(wǎng)絡(luò),比如internet,這個(gè)大網(wǎng)絡(luò)延伸到了我們的單位、家庭(通過(guò)光纖、網(wǎng)線、電話線等)。我們把自己的局域網(wǎng)連接到internet上,那么我們的訪問(wèn)范圍就從局域網(wǎng)擴(kuò)展到了整個(gè)internet。這時(shí)候,就說(shuō)局域網(wǎng)是內(nèi)網(wǎng),internet是外網(wǎng)。
內(nèi)網(wǎng)和外網(wǎng)就像兩個(gè)隔絕的空間,無(wú)法互通,唯一的聯(lián)通點(diǎn)就是路由器(因?yàn)槁酚善骷扔型饩W(wǎng) IP 也有內(nèi)網(wǎng) IP),所以路由器有時(shí)候也被叫做網(wǎng)關(guān)。
每個(gè)處于互聯(lián)網(wǎng)的機(jī)器都有IP地址,比如192.168.0.1,127.0.0.1代表著本機(jī)的IP地址。
域名解析的流程
瀏覽器緩沖—瀏覽器會(huì)緩存DNS記錄一段時(shí)間系統(tǒng)緩存—從Hosts文件查找是否有該域名和對(duì)應(yīng)IP路由器緩沖—一般路由器也會(huì)緩存域名信息ISP DNS緩存—比如到電信的DNS上查找緩存如果都沒(méi)有找到,則向根域名服務(wù)器查找域名對(duì)應(yīng)IP,根域名服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)到下一級(jí),直到找到IP
服務(wù)器是一臺(tái)安裝系統(tǒng)的機(jī)器,系統(tǒng)里安裝的處理請(qǐng)求的應(yīng)用叫Web server
常見(jiàn)的web服務(wù)器有Apache、Nginx、IIS、Lighttpd
web服務(wù)器接收用戶的Request交給網(wǎng)站代碼,或者接收請(qǐng)求方向代理到其他web服務(wù)器
MVC模型(model)—視圖(view)—控制器(controller)
HTML字符串被瀏覽器接受后被一句句讀取解析解析到link標(biāo)簽后重新發(fā)送請(qǐng)求獲取CSS解析到script標(biāo)簽后發(fā)送請(qǐng)求獲取JS,并執(zhí)行代碼解析到img標(biāo)簽后發(fā)送請(qǐng)求獲取圖片資源
瀏覽器根據(jù)HTML和CSS計(jì)算得到渲染樹(shù),繪制到屏幕上,JS會(huì)被執(zhí)行。