Before Coding [6]-網(wǎng)絡交互流程

客戶端和服務器

連接到互聯(lián)網(wǎng)的計算機被稱作客戶端和服務器。下面是一個簡單描述它們?nèi)绾谓换サ膱D表:

  • 客戶端是典型的Web用戶入網(wǎng)設備(比如,你連接了Wi-Fi的電腦,或接入移動網(wǎng)絡的手機)和設備上可聯(lián)網(wǎng)的軟件(通常使用像 Firefox 和 Chrome的瀏覽器)。
  • 服務器是存儲網(wǎng)頁,站點和應用的計算機。當一個客戶端設備想要獲取一個網(wǎng)頁時,一份網(wǎng)頁的拷貝將從服務器上下載到客戶端機器上來在用戶瀏覽器上顯示。

一些概念

我們講的客戶端和服務器并不能完成全部工作。還有其他必要的部分,我們將在下面講述。

現(xiàn)在,讓我們假設 Web 就是一條路。路的一端是客戶端,就像你的家。另一端則是服務器,就像你想去的商店。

感謝:街景照片-Street composing,by Kevin D。

除了客戶端和服務器,我們還需要了解:

  • 接入互聯(lián)網(wǎng):允許你在互聯(lián)網(wǎng)上發(fā)送和接受數(shù)據(jù)?;旧虾湍慵业缴痰甑慕值啦畈欢唷?/li>
  • TCP/IP:傳輸控制協(xié)議和網(wǎng)絡之間互連的協(xié)議是定義數(shù)據(jù)如何傳輸?shù)耐ㄐ艆f(xié)議。這就像你下訂單,去商店和買東西所使用的交通工具。在這,它們就是開車,騎車,或是走路。
  • DNS:域名系統(tǒng)就像寫滿網(wǎng)站的書。當你在瀏覽器內(nèi)輸入一個地址時,瀏覽器獲取網(wǎng)頁之前將會查看域名系統(tǒng)。瀏覽器需要找到存放你想要的網(wǎng)頁的服務器,才能發(fā)送 HTTP 請求到正確的地方。就像你要知道商店的地址才能到達那。
  • HTTP:超文本傳輸協(xié)議是一個定義客戶端和服務器間交流的語言的協(xié)議。就像你下訂單時所說的話一樣。
  • 組成文件:一個網(wǎng)頁由許多文件組成,就像商店里不同的商品一樣。這些文件有兩種類型:
    • 代碼:網(wǎng)頁大體由 HTML、CSS、JavaScript 組成,不過你會在后面看到不同的技術。
    • 資源:這是其他組成網(wǎng)頁的東西的集合,比如圖像、音樂、視頻、Word 文檔、PDF 文件。

瀏覽器網(wǎng)絡交互流程

當你在瀏覽器里輸入一個網(wǎng)址時(在我們的例子里就是走向商店的路上時):

  1. 瀏覽器在域名系統(tǒng)服務器上找出存放網(wǎng)頁的服務器的實際地址(找出商店的位置)。
  2. 瀏覽器發(fā)送 HTTP 請求信息到服務器來請拷貝一份網(wǎng)頁到客戶端(你走到商店并下訂單)。這條消息,包括其他所有在客戶端和服務器之間傳遞的數(shù)據(jù)都是通過互聯(lián)網(wǎng)使用 TCP/IP 協(xié)議傳輸?shù)摹?/li>
  3. 服務器同意客戶端的請求后,會返回一個“200 OK”信息,意味著“你可以查看這個網(wǎng)頁,給你~”,然后開始將網(wǎng)頁的文件以數(shù)據(jù)包的形式傳輸?shù)綖g覽器(商店給你商品,你將商品帶回家)。
  4. 瀏覽器將數(shù)據(jù)包聚集成完整的網(wǎng)頁然后將網(wǎng)頁呈現(xiàn)給你(商品到了你的門口 —— 新東西,好棒!)。

DNS

真正的網(wǎng)址看上去并不像你輸入的那樣美好、容易記憶。它們是一串數(shù)字,像 63.245.217.105。

這叫做 IP 地址,它代表了一個互聯(lián)網(wǎng)上獨特的位置。然而,它并不容易記憶,不是嗎?那就是域名系統(tǒng)被發(fā)明的原因。它們是將你輸入瀏覽器的地址與實際 IP 地址相匹配的特殊的服務器(像 “mozilla.org”)。

網(wǎng)頁可以通過 IP 地址直接訪問。試試通過輸入 63.245.217.105 來訪問 Mozilla 網(wǎng)站。能準確訪問的IP是:63.245.215.20。

前面我們用“包”來描述了數(shù)據(jù)從服務器到客戶端傳輸?shù)母袷?。這是什么意思?基本上,當數(shù)據(jù)在Web上傳輸時,是以成千上萬的小數(shù)據(jù)塊的形式傳輸?shù)?。大量不同的用戶都可以在同時下載同一個網(wǎng)頁。如果網(wǎng)頁以單個大的數(shù)據(jù)塊形式傳輸,一次就只有一個用戶下載,無疑會讓Web非常沒有效率并且失去很多樂趣。

原文:《網(wǎng)絡交互流程》(From 《Before Coding》

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 1.OkHttp源碼解析(一):OKHttp初階2 OkHttp源碼解析(二):OkHttp連接的"前戲"——HT...
    隔壁老李頭閱讀 21,587評論 24 176
  • 1. 基礎知識 1.1 3種常見的計算機體系結構劃分 OSI分層(7層):物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話...
    Mr希靈閱讀 20,101評論 6 120
  • 大學前不知人生意義是何物。從只知道玩,關心吃的小屁孩一步步長大變成貪玩,不好好學習,為了看電視、偷懶與家長、老師們...
    小啰啰閱讀 346評論 0 0
  • 【顏語心詩】徒弟問我,要有成就依靠什么?我說只有兩樣東西:一是資源二是平臺環(huán)境。資源包括了健康的身體,充分的時間,...
    顏丙翔閱讀 178評論 0 0

友情鏈接更多精彩內(nèi)容