這篇文章簡單講述了在你用計(jì)算機(jī)或手機(jī)訪問網(wǎng)頁時(shí)發(fā)生了什么。
這個(gè)理論在你短期內(nèi)不會(huì)有實(shí)質(zhì)性的幫助,但是不久之后你會(huì)真正從中受益。
客戶端和服務(wù)器
連接到互聯(lián)網(wǎng)的計(jì)算機(jī)被稱作客戶端和服務(wù)器。下面是一個(gè)簡單描述它們?nèi)绾谓换サ膱D表:
- 客戶端是典型的Web用戶入網(wǎng)設(shè)備(比如,你連接了Wi-Fi的電腦,或接入移動(dòng)網(wǎng)絡(luò)的手機(jī))和設(shè)備上可聯(lián)網(wǎng)的軟件(通常使用像 Firefox 和 Chrome的瀏覽器)。
- 服務(wù)器是存儲(chǔ)網(wǎng)頁,站點(diǎn)和應(yīng)用的計(jì)算機(jī)。當(dāng)一個(gè)客戶端設(shè)備想要獲取一個(gè)網(wǎng)頁時(shí),一份網(wǎng)頁的拷貝將從服務(wù)器上下載到客戶端機(jī)器上來在用戶瀏覽器上顯示。
其他部分
我們講的客戶端和服務(wù)器并不能完成全部工作。還有其他必要的部分,我們將在下面講述。
現(xiàn)在,讓我們假設(shè) Web 就是一條路。路的一端是客戶端,就像你的家。另一端則是服務(wù)器,就像你想去的商店。
除了客戶端和服務(wù)器,我們還需要了解:
- 接入互聯(lián)網(wǎng):允許你在互聯(lián)網(wǎng)上發(fā)送和接受數(shù)據(jù)?;旧虾湍慵业缴痰甑慕值啦畈欢?。
- TCP/IP:傳輸控制協(xié)議和因特網(wǎng)互連協(xié)議是定義數(shù)據(jù)如何傳輸?shù)耐ㄐ艆f(xié)議。這就像你下訂單,去商店和買東西所使用的交通工具。這里就像是一輛汽車或自行車(或是你能想到的其他可能)。
- DNS:域名系統(tǒng)服務(wù)器像是一本網(wǎng)站通訊錄。當(dāng)你在瀏覽器內(nèi)輸入一個(gè)網(wǎng)址時(shí),瀏覽器獲取網(wǎng)頁之前將會(huì)查看域名系統(tǒng)。瀏覽器需要找到存放你想要的網(wǎng)頁的服務(wù)器,才能發(fā)送 HTTP 請(qǐng)求到正確的地方。就像你要知道商店的地址才能到達(dá)那。
- HTTP:超文本傳輸協(xié)議是一個(gè)定義客戶端和服務(wù)器間交流的語言的協(xié)議( protocol )。就像你下訂單時(shí)所說的話一樣。
- 組成文件:一個(gè)網(wǎng)頁由許多文件組成,就像商店里不同的商品一樣。這些文件有兩種類型:
- 代碼:網(wǎng)頁大體由 HTML、CSS、JavaScript組成,不過你會(huì)在后面看到不同的技術(shù)。
- 資源:這是其他組成網(wǎng)頁的東西的集合,比如圖像、音樂、視頻、Word文檔、PDF文件。
到底發(fā)生了什么?
當(dāng)你在瀏覽器里輸入一個(gè)網(wǎng)址時(shí)(在我們的例子里就是走向商店的路上時(shí)):
- 瀏覽器在域名系統(tǒng)服務(wù)器上找出存放網(wǎng)頁的服務(wù)器的實(shí)際地址(找出商店的位置)。
- 瀏覽器發(fā)送 HTTP 請(qǐng)求信息到服務(wù)器來請(qǐng)拷貝一份網(wǎng)頁到客戶端(你走到商店并下訂單)。這條消息,包括其他所有在客戶端和服務(wù)器之間傳遞的數(shù)據(jù)都是通過互聯(lián)網(wǎng)使用 TCP/IP 協(xié)議傳輸?shù)摹?/li>
- 服務(wù)器同意客戶端的請(qǐng)求后,會(huì)返回一個(gè)"200 OK"信息,意味著"你可以查看這個(gè)網(wǎng)頁,給你~",然后開始將網(wǎng)頁的文件以數(shù)據(jù)包的形式傳輸?shù)綖g覽器(商店給你商品,你將商品帶回家)。
- 瀏覽器將數(shù)據(jù)包聚集成完整的網(wǎng)頁然后將網(wǎng)頁呈現(xiàn)給你(商品到了你的門口 —— 新東西,好棒?。?/li>
DNS解析
真正的網(wǎng)址看上去并不像你輸入的那樣美好、容易記憶。它們是一串?dāng)?shù)字,像63.245.217.105。
這叫做 IP 地址,它代表了一個(gè)互聯(lián)網(wǎng)上獨(dú)特的位置。然而,它并不容易記憶,不是嗎?那就是域名系統(tǒng)被發(fā)明的原因。它們是將你輸入瀏覽器的地址與實(shí)際 IP 地址相匹配的特殊的服務(wù)器(像 "mozilla.org")。
網(wǎng)頁可以通過 IP地址直接訪問。試試通過輸入63.245.217.105
來訪問 Mozilla網(wǎng)站。能準(zhǔn)確訪問的IP是:63.245.215.20。
數(shù)據(jù)包解析
前面我們用"包"來描述了數(shù)據(jù)從服務(wù)器到客戶端傳輸?shù)母袷?。這是什么意思?基本上,當(dāng)數(shù)據(jù)在Web上傳輸時(shí),是以成千上萬的小數(shù)據(jù)塊的形式傳輸?shù)?。大量不同的用戶都可以在同時(shí)下載同一個(gè)網(wǎng)頁。如果網(wǎng)頁以單個(gè)大的數(shù)據(jù)塊形式傳輸,一次就只有一個(gè)用戶下載,無疑會(huì)讓W(xué)eb非常沒有效率并且失去很多樂趣。
擴(kuò)展閱讀
感謝
街景照片 : Street composing, by Kevin D.
更多建議: