「 圖解HTTP 」 讀書(shū)筆記 第一章

了解 Web 及網(wǎng)絡(luò)基礎(chǔ)

1. 使用 Http 協(xié)議訪問(wèn) Web

Web 瀏覽器根據(jù)地址欄中的 URL,從 Web 服務(wù)器端獲取文件資源(resource)等信息,從而顯示在頁(yè)面。

通過(guò)發(fā)送請(qǐng)求獲取服務(wù)器資源的 Web 瀏覽器等,都稱為客戶端 (client)。

客戶端.png

Web 是建立在 HTTP 協(xié)議上通信。

  • Web 使用 HTTP 協(xié)議作為規(guī)范,完成從客戶端到服務(wù)器端等一系列運(yùn)作流程。

  • HTTP(HyperText Transfer Protocol):超文本傳輸協(xié)議

2. 網(wǎng)絡(luò)基礎(chǔ) TCP/IP

2.1 TCP/IP 協(xié)議族

TCP/IP 是互聯(lián)網(wǎng)相關(guān)的各類協(xié)議族的總稱。

互聯(lián)網(wǎng)協(xié)議族.png

協(xié)議包含的內(nèi)容:

  • 電纜的規(guī)格

  • IP 地址的選定方法

  • 尋找異地用戶的方法

  • 雙方建立通信的步驟

  • Web 頁(yè)面顯示需要處理的內(nèi)容

  • ...等等

2.2 TCP/IP 的分層管理

TCP/IP 協(xié)議族按層次分層如下:

  1. 應(yīng)用層

    • 應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)的通信活動(dòng)

    • TCP/IP 協(xié)議族內(nèi)預(yù)存了各類通用的應(yīng)用服務(wù),如

      • FTP(File Transfer Protocol)文件傳輸協(xié)議

      • DNS (Domain Name System) 域名系統(tǒng)

    • HTTP 協(xié)議處于應(yīng)用層

  2. 傳輸層

    • 傳輸層對(duì)上層應(yīng)用層,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸

    • 傳輸層有兩個(gè)性質(zhì)不同的協(xié)議

      • TCP (Transmission Control Protocol) 傳輸控制協(xié)議

      • UDP (User Data Protocol) 用戶數(shù)據(jù)報(bào)協(xié)議

  3. 網(wǎng)絡(luò)層 (又名網(wǎng)絡(luò)互連層)

    • 網(wǎng)絡(luò)層用來(lái)處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包,數(shù)據(jù)包是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位

    • 該層規(guī)定了通過(guò)怎樣的路徑(所謂的傳輸路線)到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方

    • 與對(duì)方計(jì)算機(jī)之間通過(guò)多臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備進(jìn)行傳輸時(shí),網(wǎng)絡(luò)層所起的作用就是在眾多的選項(xiàng)內(nèi)選擇一條傳輸路線

  4. 鏈路層(又名數(shù)據(jù)鏈路層,網(wǎng)絡(luò)接口層)

    • 用來(lái)處理連接網(wǎng)絡(luò)的硬件部分,包括控制操作系統(tǒng) 、硬件的設(shè)備驅(qū)動(dòng) 、NIC (Network Interface Card,網(wǎng)絡(luò)適配器,即網(wǎng)卡),及光纖等物理可見(jiàn)部分(還包括連接器等一切傳輸媒介)

    • 硬件上的范疇均在鏈路層的作用范圍之內(nèi)

2.3 TCP/IP 通信傳輸流
通信傳輸01.png

TCP/IP 協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時(shí),會(huì)通過(guò)分層順序與對(duì)方通信。

發(fā)送端從應(yīng)用層往下走,接收端從鏈路層往上走。

用 HTTP 舉例:

  • 發(fā)送端

    1. 客戶端在應(yīng)用層(HTTP 協(xié)議),發(fā)出一個(gè)想看某 Web 頁(yè)面的 HTTP 請(qǐng)求。

    2. 傳輸層(TCP 協(xié)議)把從應(yīng)用層接受的數(shù)據(jù)(HTTP 請(qǐng)求報(bào)文)進(jìn)行分割,并在各個(gè)保文上打上標(biāo)記序號(hào)及端口號(hào)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層。

    3. 在網(wǎng)絡(luò)層(IP 協(xié)議),增加作為通信目的地的 MAC 地址轉(zhuǎn)發(fā)給鏈路層。

  • 接收端

    1. 接收端的服務(wù)器在鏈路層接收到數(shù)據(jù), 按序往上層發(fā)送,一直到應(yīng)用層。

    2. 數(shù)據(jù)傳輸?shù)綉?yīng)用層,服務(wù)器才真正接受到客戶端發(fā)送來(lái)的 HTTP 請(qǐng)求

    通信傳輸02.png

發(fā)送端在層與層傳輸數(shù)據(jù)時(shí),每經(jīng)過(guò)一層必定會(huì)打上該層的首部信息。

接收端在層與層傳輸數(shù)據(jù)時(shí),每經(jīng)過(guò)一層會(huì)把對(duì)應(yīng)的首部信息消去。

把數(shù)據(jù)信息包裝起來(lái)的做法稱為封裝(encapsulate)。

3. 與 HTTP 關(guān)系密切的協(xié)議:IP 、TCP 和 DNS

3.1 負(fù)責(zé)傳輸?shù)?IP 協(xié)議

按層次分,IP(Internet Protocol) 名詞
網(wǎng)際協(xié)定位于網(wǎng)絡(luò)層。

IP 協(xié)議的作用就是把各種數(shù)據(jù)包傳輸給對(duì)方。

確保數(shù)據(jù)傳輸?shù)綄?duì)方那里,IP地址 和 MAC(Meida Access Control Address)地址尤為重要。

  • IP地址 指明了節(jié)點(diǎn)被分配的地址

  • MAC地址 是指網(wǎng)卡所屬的固定地址

IP地址 可以和 MAC地址進(jìn)行配對(duì),IP地址可變換,MAC地址基本不會(huì)更改。

使用 ARP 協(xié)議憑借 MAC 地址進(jìn)行通信

  • IP 間的通信依賴 MAC 地址

  • ARP 是一種用以解析地址的協(xié)議,根據(jù)通信方的IP地址就可以反查出對(duì)方的 MAC地址

  • 在到達(dá)通信目標(biāo)前的中轉(zhuǎn)過(guò)程中,那些計(jì)算機(jī)和路由器等網(wǎng)絡(luò)設(shè)備只能獲悉很粗略的傳輸路線。這種機(jī)制成為路由選擇(routing)

IP協(xié)議傳輸.png
3.2 確??煽啃缘?TCP 協(xié)議

按層次分,TCP 位于傳輸層,提供可靠的字節(jié)流服務(wù)。

TCP 協(xié)議為了更容易傳送大數(shù)據(jù)才把數(shù)據(jù)分割,TCP 協(xié)議能夠確認(rèn)數(shù)據(jù)最終是否到達(dá)對(duì)方。

確保數(shù)據(jù)能到達(dá)目標(biāo)

為了準(zhǔn)確無(wú)誤的將數(shù)據(jù)送到目標(biāo)處,TCP 協(xié)議采用三次握手策略,握手過(guò)程中使用了 TCP 的標(biāo)志(flag)

  • SYN (synchronize)

  • ACK (acknowledgement)

握手過(guò)程:

  1. 發(fā)送端首先發(fā)送一個(gè)帶有 SYN 標(biāo)志的數(shù)據(jù)包給對(duì)方。

  2. 接收端收到后,回傳一個(gè)帶有 SYN/ACK 標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息。

  3. 發(fā)送端再回傳一個(gè)帶 ACK 標(biāo)志的數(shù)據(jù)包,代表握手結(jié)束。

三次握手.png

握手過(guò)程中某個(gè)階段莫名中斷,TCP 協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包

除了三次握手外,TCP 協(xié)議還有其它手段來(lái)保證通信的可靠性

4. 負(fù)責(zé)域名解析的 DNS 服務(wù)

DNS(Domain Name System) 服務(wù)和 HTTP 協(xié)議一樣位于應(yīng)用層的協(xié)議,提供域名到 IP地址之間的解析服務(wù)。

計(jì)算機(jī)既可以被賦予 IP地址,也可以被賦予主機(jī)名和域名。如 www.hackr.jp

DNS 協(xié)議提供通過(guò)域名查找 IP地址,或逆向從 IP地址 反查域名的服務(wù)。

DNS.png

5. 各種協(xié)議與 HTTP 協(xié)議的關(guān)系

協(xié)議關(guān)系.png

6. URI 和 URL

6.1 統(tǒng)一資源標(biāo)識(shí)符

Uniform Resource Identifier 統(tǒng)一資源標(biāo)識(shí)符

  • Uniform

    規(guī)定統(tǒng)一的格式可方便處理多種不同類型的資源,而不用根據(jù)上下文環(huán)境來(lái)識(shí)別資源指定的訪問(wèn)方式。

  • Resource

    可標(biāo)識(shí)的任何東西,除了文檔文件,圖像或服務(wù)等能夠區(qū)別其它類型的,全都可以作為資源。 資源不僅可以是單一的,也可以是多數(shù)的集合體。

  • Indentifier

    標(biāo)識(shí)可標(biāo)識(shí)的對(duì)象,也稱為標(biāo)識(shí)符。

URI 就是由某個(gè)協(xié)議方案表示的資源的定位標(biāo)識(shí)符,協(xié)議方案是指訪問(wèn)資源所使用的協(xié)議類型名稱。

采用 HTTP協(xié)議時(shí),協(xié)議方案就是 http,初次之外,還有 ftp、matilo、telnet、file 等。

URI 用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源,URL 表示資源的地點(diǎn)(互聯(lián)網(wǎng)上所處的位置),URL 是 URI 的子集。

RFC3896: 統(tǒng)一資源標(biāo)識(shí)符通用語(yǔ)法如下所示:

ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=GB?objectClass?one
mailto:John.Doe@example.com
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
6.2 URI 格式

絕對(duì) URI 格式:

絕對(duì) URI 格式.png
  1. 協(xié)議方案名

    使用 http: 或 https: 等協(xié)議方案名獲取訪問(wèn)資源時(shí)要指定協(xié)議類型,不區(qū)分字母大小寫,最后附一個(gè)(:)。

  2. 登錄信息(認(rèn)證)

    指定用戶名密碼作為從服務(wù)器端獲取資源時(shí)必要的登錄信息(身份認(rèn)證),可選項(xiàng)。

  3. 服務(wù)器地址

    使用絕對(duì) URI 必須指定待訪問(wèn)的服務(wù)器地址,如:

    a. 類似 hackr.jp 這種 DNS 可解析的名稱

    b. 或是 192.168.1.1 這類的 IPv4 地址名

    c. 還可以是 [0:0:0:0:0:0:0:1] 這樣用方括號(hào)括起來(lái)的 IPv6 地址名

  4. 服務(wù)器端口號(hào)

    指定服務(wù)器連接的網(wǎng)絡(luò)端口號(hào),若用戶省略則使用默認(rèn)端口號(hào),可選項(xiàng)。

  5. 帶層次的文件路徑

    指定服務(wù)器上的文件路徑來(lái)定位特指的資源。

  6. 查詢字符串

    針對(duì)已指定的文件路徑內(nèi)的資源,可以使用查詢字符串傳入任意參數(shù),可選項(xiàng)。

  7. 片段標(biāo)識(shí)符

    使用片段標(biāo)識(shí)符通常可標(biāo)記出已獲取資源中的子資源,可選項(xiàng)。

7.2 URL

Uniform Resource Locator 統(tǒng)一資源定位符

URL 就是 Web 瀏覽器訪問(wèn) Web 頁(yè)面需要輸入的網(wǎng)址。如 http://hackr.jp/

URL.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,716評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,746評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,991評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,706評(píng)論 6 413
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 56,036評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,203評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,725評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,451評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,677評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,857評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,266評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,606評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,407評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,643評(píng)論 2 380