我們平時打開網(wǎng)頁眨猎,都是通過輸入網(wǎng)址或者直接點(diǎn)收藏夾的鏈接澈圈,等待幾秒鐘牧牢,就會有頁面呈現(xiàn)。在這個過程中涡拘,發(fā)生的事情很有學(xué)習(xí)價值。接下來,我大概地說一下我學(xué)習(xí)的這個過程命黔。
在這之前,先了解一些必要的名詞战得。
URL
URL((Uniform Resoure Locator)——統(tǒng)一資源定位符充边,是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址常侦〗奖互聯(lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它聋亡。
基本URL包含模式(或稱協(xié)議)肘习、服務(wù)器名稱(或IP地址)、路徑和文件名坡倔,如“協(xié)議://授權(quán)/路徑?查詢”漂佩。完整的、帶有授權(quán)部分的普通統(tǒng)一資源標(biāo)志符語法看上去如下:協(xié)議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件后綴?參數(shù)=值#標(biāo)志
URL有四種傳輸協(xié)議
1.http——超文本傳輸協(xié)議
2.ftp——文件傳輸協(xié)議
3.file——主要用于訪問本地計(jì)算機(jī)中的文件
4.https——數(shù)據(jù)經(jīng)過加密的超文本傳輸協(xié)議
DNS
DNS(Domain Name System)是域名解析服務(wù)罪塔,DNS可以將域名映射到對應(yīng)的IP地址投蝉。
IP地址的記憶較為不方便,于是選用了域名征堪,可以更好的記憶瘩缆,從而通過域名訪問網(wǎng)站。
域名解析的流程
1.瀏覽器緩存 – 瀏覽器會緩存DNS記錄一段時間
2.系統(tǒng)緩存 - 從 Hosts 文件查找是否有該域名和對應(yīng) IP佃蚜。
3.路由器緩存 – 一般路由器也會緩存域名信息庸娱。
4.ISP DNS 緩存 – 比如到電信的 DNS 上查找緩存。
如果都沒有找到谐算,則向根域名服務(wù)器查找域名對應(yīng) IP熟尉,根域名服務(wù)器把請求轉(zhuǎn)發(fā)到下一級,直到找到 IP氯夷。
IP
IP是“網(wǎng)絡(luò)之間互連的協(xié)議”(Internet Protocol)的外語縮寫臣樱,網(wǎng)絡(luò)之間互連的協(xié)議也就是為計(jì)算機(jī)網(wǎng)絡(luò)相互連接進(jìn)行通信而設(shè)計(jì)的協(xié)議。
在因特網(wǎng)中腮考,它是能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則雇毫,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時應(yīng)當(dāng)遵守的規(guī)則。任何廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng)踩蔚,只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通棚放。
IP是在TCP/IP協(xié)議中網(wǎng)絡(luò)層的主要協(xié)議,任務(wù)是僅僅根據(jù)源主機(jī)和目的主機(jī)的地址傳送數(shù)據(jù)馅闽。為此目的飘蚯,IP定義了尋址方法和數(shù)據(jù)報的封裝結(jié)構(gòu)馍迄。
IP地址具有唯一性,是分配給網(wǎng)絡(luò)上使用網(wǎng)際協(xié)議(英語:Internet Protocol, IP)的設(shè)備的數(shù)字標(biāo)簽局骤。常見的IP地址分為IPv4與IPv6兩大類攀圈。IP地址相當(dāng)于一臺主機(jī)的門牌號。
IP地址總共有A,B,C,D,E 五類峦甩,其中最常用到的是A類B類和C類赘来,常以32二進(jìn)制組成常以XXX.XXX.XXX.XXX形式表現(xiàn),每組XXX代表小于或等于255的10進(jìn)制數(shù)凯傲。例如我的電腦的IP地址是27.151.164.140是一個A類IP地址犬辰。
公網(wǎng)IP:是由國際互聯(lián)網(wǎng)分配的唯一的IP地址,是個靜態(tài)IP地址冰单。
內(nèi)網(wǎng)IP:由路由器建立子網(wǎng)分配IP地址幌缝。
服務(wù)器
服務(wù)器是一臺安裝系統(tǒng)的機(jī)器,常見的系統(tǒng)如Linux诫欠、windows server 2012涵卵。
常見的web服務(wù)器有Apache、Nginx荒叼、IIS缘厢、Lighttpd等。
從URL輸入到頁面展現(xiàn)
1甩挫,在瀏覽器輸入URL
2贴硫,域名解析
DNS將域名映射到對應(yīng)的IP地址并訪問。
3伊者,服務(wù)器處理
web服務(wù)器接收用戶的Request 交給網(wǎng)站代碼英遭,或者接受請求反向代理到其他 web服務(wù)器。
4亦渗, 網(wǎng)站處理
MVC 模型(model)-視圖(view)-控制器(controller)
5挖诸,瀏覽器處理
HTML字符串被瀏覽器接受后被一句句讀取解析,
解析到link 標(biāo)簽后重新發(fā)送請求獲取css法精,
解析到 script標(biāo)簽后發(fā)送請求獲取 js多律,并執(zhí)行代碼,
解析到img 標(biāo)簽后發(fā)送請求獲取圖片資源搂蜓。
6狼荞,繪制網(wǎng)頁
js 會被執(zhí)行,瀏覽器根據(jù) HTML 和 CSS 計(jì)算得到渲染樹帮碰,繪制到屏幕上相味。