圖解HTTP-讀書筆記

前言:
最近這段時(shí)間慢慢的在補(bǔ)充基礎(chǔ)知識(shí)绒怨,其中最先開(kāi)始看的一本書就是【圖解HTTP】這本書非常適合新手入門,里面的內(nèi)容把廣泛上需要了解的HTTP相關(guān)知識(shí)點(diǎn)都講,又不會(huì)讓讀者記得泛泛或者小兒科,以下是我在閱讀的時(shí)候做的讀書筆記以加深印象已經(jīng)理解。

IMG_1188.JPG
第一章 了解Web及網(wǎng)絡(luò)基礎(chǔ)
  • Web使用一種名為HTTP(HyperText Transfer Protocol责蝠,超文本傳輸協(xié)議)的協(xié)議作為規(guī)范,完成客戶端到服務(wù)器端一系列運(yùn)作流程萎庭,也就是說(shuō)玛歌,Web是建立在HTTP協(xié)議上通信的。

  • 通城嬉互聯(lián)網(wǎng)是在 TCP/IP 協(xié)議族的基礎(chǔ)上運(yùn)作的支子,HTTP屬于這個(gè)族的一個(gè)子集。

  • TCP/IP 協(xié)議很重要的一個(gè)概念就是分層达舒。按層次分別為:
    應(yīng)用層 >>> 傳輸層 >>> 網(wǎng)絡(luò)層 >>> 鏈路層值朋。
    一個(gè)HTTP請(qǐng)求發(fā)出后叹侄,大致的流程即是這樣的:
    首先客戶端在應(yīng)用層發(fā)出一個(gè)想看某個(gè)Web頁(yè)面的HTTP請(qǐng)求 >>>
    為方便傳輸,傳輸層把從應(yīng)用層收到的數(shù)據(jù)(HTTP請(qǐng)求報(bào)文)分割成多個(gè)數(shù)據(jù)包并標(biāo)記序號(hào)后昨登,轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層 >>>
    在網(wǎng)絡(luò)層增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層趾代。
    至此,發(fā)往網(wǎng)絡(luò)的通信請(qǐng)求就準(zhǔn)備好了丰辣。

  • 發(fā)送端或者接收端撒强,層與層之間傳遞數(shù)據(jù)時(shí),每一層會(huì)被打上或消去該層所屬的首部信息笙什。

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

  • TCP 協(xié)議位于傳輸層琐凭,提供可靠的字節(jié)流服務(wù)芽隆。因?yàn)閭鬏攲訉?shù)據(jù)分割,TCP 協(xié)議采用三次握手(three-way handshaking)策略以確保數(shù)據(jù)準(zhǔn)確送達(dá):首先發(fā)送一個(gè)帶有 SYN 標(biāo)志的數(shù)據(jù)包給對(duì)方 >>>
    接收端收到后回傳一個(gè)帶有 SYN/ACK 標(biāo)志的送達(dá)確認(rèn)信息 >>>
    最后發(fā)送端再回傳一個(gè)帶有 ACK 標(biāo)志的數(shù)據(jù)包统屈。
    至此胚吁,“握手”結(jié)束。

  • IP 協(xié)議位于網(wǎng)絡(luò)層愁憔。作用是把各種數(shù)據(jù)包發(fā)送給對(duì)方腕扶。在此期間,會(huì)通過(guò)一個(gè) ARP 協(xié)議將 IP 地址解析為 MAC 地址吨掌。

第二章 簡(jiǎn)單的HTTP協(xié)議
  • HTTP 協(xié)議規(guī)定蕉毯,請(qǐng)求從客戶端發(fā)出,最后服務(wù)器端響應(yīng)請(qǐng)求并返回思犁。也就是說(shuō),一定是從客戶端開(kāi)始建立通信进肯,服務(wù)器端沒(méi)有接收到請(qǐng)求之前不會(huì)發(fā)送響應(yīng)激蹲。

  • 請(qǐng)求報(bào)文是由請(qǐng)求方法、請(qǐng)求URI江掩、協(xié)議版本学辱、請(qǐng)求首部字段(可選)和內(nèi)容實(shí)體構(gòu)成的。

GET /html/index.html HTTP/1.1
Host: ddrenched.com
name=ddrenched
  • 響應(yīng)報(bào)文是由協(xié)議版本环形、狀態(tài)碼策泣、狀態(tài)碼原因短語(yǔ)、響應(yīng)首部字段(可選)和主體構(gòu)成抬吟。
HTTP/1.1 200 OK
Date: Fri, 30 Jua 2017 10:59:19 GMT
<html>
...
  • HTTP 是不保存狀態(tài)的協(xié)議:不對(duì)請(qǐng)求和響應(yīng)的通信狀態(tài)進(jìn)行保存萨咕。
    每當(dāng)有新的請(qǐng)求發(fā)送時(shí),就會(huì)有對(duì)應(yīng)的新響應(yīng)產(chǎn)生火本。
    這是為了快速處理大量任務(wù)危队。

  • HTTP 方法

    • GET:獲取資源聪建。該方法用來(lái)請(qǐng)求訪問(wèn)已經(jīng) URI 識(shí)別的資源。
    • HEAD:獲取報(bào)文首部茫陆。和 GET 方法一樣金麸,只是不返回報(bào)文主 體。常用來(lái)確認(rèn) URI 的有效性和資源的更新時(shí)間等簿盅。
    • POST:傳輸實(shí)體資源挥下。該方法用來(lái)傳輸實(shí)體的主體。雖然 GET 方法也可以傳輸實(shí)體的主體桨醋,但一般用 POST 方法棚瘟。
    • PUT:用來(lái)傳輸文件。要求在請(qǐng)求報(bào)文的主體中包含內(nèi)容讨盒,然后保存到請(qǐng)求的 URI 指定的位置解取。
    • DELETE:用來(lái)刪除文件。與PUT方法相反返顺,DELETE 方法按照請(qǐng)求 URI 刪除指定資源禀苦。
    • OPTION:用來(lái)查詢請(qǐng)求的 URI 資源支持的方法。
  • CONNECT:要求與代理服務(wù)器通信時(shí)建立隧道遂鹊,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行 TCP 通信振乏。主要是為了使用 SSL(Secure Socket Layer,安全套接)和 TLS(Transport Layer Security秉扑,傳輸層安全)協(xié)議把信息內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸慧邮。

  • 持久連接:只要任意一方(客戶端和服務(wù)器端)沒(méi)有明確提出斷開(kāi)連接,則保持 TCP 連接狀態(tài)舟陆。
    在 HTTP1.1 中误澳,所有連接默認(rèn)都是持久的。

  • Cookie 技術(shù)通過(guò)在請(qǐng)求和響應(yīng)報(bào)文中寫入 Cookie 信息來(lái)控制客戶端狀態(tài)秦躯。
    Cookie 會(huì)根據(jù)服務(wù)器端發(fā)送的響應(yīng)報(bào)文內(nèi)的一個(gè)叫 Set-Cookie 的首部字段忆谓,通知客戶端保存 Cookie。當(dāng)下次客戶端發(fā)送請(qǐng)求到服務(wù)器端時(shí)踱承,客戶端會(huì)在報(bào)文中加入 Cookie 值再發(fā)送出去倡缠。

第4章 返回結(jié)果的 HTTP 狀態(tài)碼
  • 狀態(tài)碼的職責(zé)是描述客戶端發(fā)出請(qǐng)求的返回結(jié)果,狀態(tài)碼以三位數(shù)字和原因短語(yǔ)組成茎活。
    數(shù)字中的第一位指定了響應(yīng)類別:

  • 1XX:Informationao(信息性狀態(tài)碼)接受的請(qǐng)求正在處理

  • 2XX:Success(成功狀態(tài)碼)請(qǐng)求正常處理完畢

  • 3XX:Redirection(重定向狀態(tài)碼)需要附加操作以完成請(qǐng)求

  • 4XX:Client Error(客戶端錯(cuò)誤狀態(tài)碼)服務(wù)器無(wú)法處理請(qǐng)求

  • 5XX:Server Error (服務(wù)器錯(cuò)誤狀態(tài)碼)服務(wù)器處理請(qǐng)求錯(cuò)誤

  • 2XX 成功

    • 200 OK:客戶端發(fā)來(lái)的請(qǐng)求被服務(wù)器正常處理了昙沦。
    • 204 No Content:服務(wù)器正常處理,但返回的響應(yīng)報(bào)文實(shí)體中沒(méi)有主體载荔。
  • 3XX 重定向

    • 301 Moved Permanently:永久性重定向盾饮。表示請(qǐng)求的的資源已被分配了新的 URI,以后應(yīng)使用資源現(xiàn)在所指的 URI。
      如果已經(jīng)把資源對(duì)應(yīng)的 URI 保存為書簽丐谋,這時(shí)應(yīng)該按照 Location 首部字段提示的 URI 重新保存芍碧。
    • 302 Found:臨時(shí)性重定向。表示請(qǐng)求的資源已被分配了新的 URI号俐,希望用戶(本次)使用新的 URI 訪問(wèn)泌豆。
      和301狀態(tài)碼相似,但302只是臨時(shí)的吏饿,比如 URI 被保存成書簽踪危,但不會(huì)像301那樣去更新書簽。
    • 303 See Other:表示由于對(duì)應(yīng)的資源存在著另一個(gè) URI猪落,應(yīng)使用 GET 方法定向獲取請(qǐng)求資源贞远。
    • 304 Not Modified:表示客戶端發(fā)送附帶請(qǐng)求時(shí)(If-Match,If-None-Match笨忌,If-Modified-Since蓝仲,If-Unmodified-Since,If-Range官疲,中任一首部)袱结,服務(wù)器端允許請(qǐng)求訪問(wèn)資源,但因發(fā)生了未滿足條件的情況途凫,直接返回304垢夹。
      304狀態(tài)碼返回時(shí),不包含任何響應(yīng)主體部分维费。
      304雖然被劃分在3XX中造壮,其實(shí)和重定向沒(méi)什么關(guān)系逊移。
    • 307 Temporary Redirect:臨時(shí)重定向。與302有著相同含義赊琳。
  • 4XX 客戶端錯(cuò)誤

    • 400 Bad Request:表示請(qǐng)求報(bào)文中語(yǔ)法錯(cuò)誤皂贩。當(dāng)錯(cuò)誤發(fā)生時(shí)谅猾,需要求改請(qǐng)求內(nèi)容后再次發(fā)送請(qǐng)求盯滚。
    • 401 Unanthorized:表示發(fā)送的請(qǐng)求需要通過(guò) HTTP 認(rèn)證混卵。
    • 403 Forbidden:表示對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了。
      未獲得系統(tǒng)訪問(wèn)權(quán)限恶阴,訪問(wèn)權(quán)限出現(xiàn)問(wèn)題等情況都可能發(fā)生403。
    • 404 Not Found:表示服務(wù)器上無(wú)法找到請(qǐng)求的資源豹障。
  • 5XX 服務(wù)器錯(cuò)誤

    • 500 Internal Server Error:表示服務(wù)器執(zhí)行請(qǐng)求時(shí)發(fā)生錯(cuò)誤冯事。
    • 503 Service Unavailable:表示服務(wù)器暫時(shí)超載無(wú)法處理。
第5章 與 HTTP 協(xié)作的 Web 服務(wù)器
  • HTTP/1.1 協(xié)議允許一臺(tái)服務(wù)器搭建多個(gè) Web 站點(diǎn)血公。

  • Web 托管服務(wù)可以用一臺(tái)服務(wù)器為多個(gè)域名運(yùn)行昵仅,這是使用了 Virtual Host(虛擬主機(jī))的功能。

  • 客戶端使用 HTTP 協(xié)議訪問(wèn)服務(wù)器時(shí),會(huì)經(jīng)常采用域名的方式摔笤。在互聯(lián)網(wǎng)上够滑,域名通過(guò) DNS 服務(wù)映射到 IP 地址÷朗溃可見(jiàn)彰触,當(dāng)請(qǐng)求發(fā)送至服務(wù)器時(shí),已經(jīng)是 IP 地址形式的訪問(wèn)了命辖。

  • 由于用作寄存的服務(wù)器的 IP 地址是相同的况毅,多個(gè)虛擬主機(jī)寄存的不同 Web 站點(diǎn)如何區(qū)分呢? 必須在 Host 首部?jī)?nèi)指定主機(jī)名或域名的 URI尔艇。

  • 代理尔许。代理服務(wù)器的基本行為就是接受客戶端的請(qǐng)求后轉(zhuǎn)發(fā)給其它服務(wù)器。代理不改變 URI终娃,直接發(fā)送給前方持有資源的目標(biāo)服務(wù)器(稱為源服務(wù)器)味廊。從源服務(wù)器返回的響應(yīng)經(jīng)過(guò)代理服務(wù)器后再傳給客戶端。

  • 在 HTTP 通信中棠耕,可以級(jí)聯(lián)多臺(tái)代理服務(wù)器余佛。請(qǐng)求和響應(yīng)的轉(zhuǎn)發(fā)會(huì)經(jīng)由數(shù)臺(tái)類似鎖鏈一樣鏈接起來(lái)的代理服務(wù)器。每次轉(zhuǎn)發(fā)昧辽,需要附加 Via 首部字段以標(biāo)示經(jīng)過(guò)的主機(jī)信息衙熔。

  • 網(wǎng)關(guān)工作機(jī)制和代理十分相似,網(wǎng)關(guān)能使通信線路上的服務(wù)器提供非 HTTP 協(xié)議服務(wù)搅荞。

  • 隧道的目的是確焙炻龋客戶端與服務(wù)器進(jìn)行安全的通信 。
    隧道可以按要求建立一條與服務(wù)器的通信線路咕痛,屆時(shí)使用加密手段進(jìn)行通信痢甘。

第6章 HTTP 首部

---未完

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市茉贡,隨后出現(xiàn)的幾起案子塞栅,更是在濱河造成了極大的恐慌,老刑警劉巖腔丧,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件放椰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡愉粤,警方通過(guò)查閱死者的電腦和手機(jī)砾医,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)衣厘,“玉大人如蚜,你說(shuō)我怎么就攤上這事压恒。” “怎么了错邦?”我有些...
    開(kāi)封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵探赫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我撬呢,道長(zhǎng)伦吠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任倾芝,我火速辦了婚禮讨勤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晨另。我一直安慰自己潭千,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布借尿。 她就那樣靜靜地躺著刨晴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪路翻。 梳的紋絲不亂的頭發(fā)上狈癞,一...
    開(kāi)封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音茂契,去河邊找鬼蝶桶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掉冶,可吹牛的內(nèi)容都是我干的真竖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厌小,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恢共!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起璧亚,我...
    開(kāi)封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讨韭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后癣蟋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體透硝,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年疯搅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了濒生。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秉撇,死狀恐怖甜攀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琐馆,我是刑警寧澤规阀,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站瘦麸,受9級(jí)特大地震影響谁撼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滋饲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一厉碟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屠缭,春花似錦箍鼓、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至奄喂,卻和暖如春铐殃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跨新。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工富腊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人域帐。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓赘被,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親俯树。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帘腹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 本文是《圖解HTTP》讀書筆記的第一篇,主要包括此書的前五章內(nèi)容许饿,簡(jiǎn)要記錄一下阳欲。大概分為以下幾部分: TCP/IP...
    lijiankun24閱讀 1,300評(píng)論 0 2
  • 4天讀完 一、了解web及網(wǎng)絡(luò)基礎(chǔ) 1.1 三項(xiàng)www構(gòu)建技術(shù): HTML:超文本標(biāo)記語(yǔ)言 HTTP:文本傳輸協(xié)議...
    15d843cd48a8閱讀 780評(píng)論 1 4
  • 前面兩篇文章中關(guān)于 HTTP 相關(guān)知識(shí)基本上介紹的差不多了陋率,這篇文章是對(duì) HTTP 協(xié)議的補(bǔ)充球化,主要介紹以下三點(diǎn)內(nèi)...
    lijiankun24閱讀 1,305評(píng)論 2 3
  • 本文是《圖解HTTP》讀書筆記的第二篇,主要包括此書的第六章內(nèi)容瓦糟,因?yàn)榈诹碌膬?nèi)容較多筒愚,而且比較重要,所以單獨(dú)寫為...
    lijiankun24閱讀 1,357評(píng)論 0 6
  • 昨天在路上遇到一件事情菩浙。一位快遞小哥與一位大胖子杠上了巢掺,兩人騎著電瓶車相互絆了一下句伶,本來(lái)也沒(méi)多大點(diǎn)事,但那胖子不知...
    簡(jiǎn)椋閱讀 505評(píng)論 1 2