【圖解HTTP】讀書筆記

【圖解HTTP】讀書筆記

常見概念

  • HTTP:全稱是Hyper Text Transfer Protocol,超文本傳輸協(xié)議
  • 版本:HTTP/1.0房午、HTTP/1.1
  • 協(xié)議:某一種公用的規(guī)則
  • HTTP相關(guān)協(xié)議
    • DNS:用于將域名解析為IP矿辽,供IP層使用
    • TCP:提供可靠在字節(jié)流服務(wù),用于傳輸HTTP報(bào)文
    • IP:根據(jù)IP地址郭厌,選擇合適的路由袋倔,發(fā)送對應(yīng)的數(shù)據(jù)包
    • ARP:用于將IP解析為MAC地址,供數(shù)據(jù)鏈路層使用
  • URL與URI
    • URI:Uniform Resource Identifier折柠,統(tǒng)一資源標(biāo)識符奕污,也就是通過某種協(xié)議方案標(biāo)識的資源的定位符
      • Uniform:以統(tǒng)一的格式進(jìn)行標(biāo)識
      • Resource:可以用于標(biāo)識的資源
      • Identifier:標(biāo)識具體可以標(biāo)識的對象
      • 作用:用于標(biāo)識資源
    • URL:Uniform Resource Locator,統(tǒng)一資源定位符液走,是URI的一個(gè)子集碳默,用于標(biāo)識某一具體的資源
    • 需要注意的是,URI可以用于描述某一資源缘眶,但可能無法具體定位到某一個(gè)資源嘱根,而URL則是可以具體定位到該資源

簡單的HTTP協(xié)議

通信模式:基于請求和響應(yīng)模式,沒有請求則沒有響應(yīng)巷懈,通信過程中不保存狀態(tài)信息(無狀態(tài)協(xié)議)该抒,也就是不對請求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存

報(bào)文類型

  • 請求報(bào)文
    • 格式(請求行 請求頭部字段\r\n請求實(shí)體內(nèi)容)
  • 響應(yīng)報(bào)文
    • 格式(響應(yīng)行 響應(yīng)行頭部字段\r\n響應(yīng)實(shí)體內(nèi)容)

HTTP方法

  • GET:用于獲取資源
  • POST:用于傳輸主體的實(shí)體
  • PUT:用于傳輸文件(一般網(wǎng)站不開發(fā)該功能)
  • HEAD:與GET類似,但是不返回報(bào)文主體內(nèi)容顶燕,主要用于確認(rèn)URI有效性以及資源的更新日期
  • DELETE:用于刪除文件凑保,與PUT相反(一般不開放)
  • OPTIONS:用于查詢指定URI資源支持的方法
  • TRACE:跟蹤路徑(不怎么使用)
  • CONNECT:要求使用隧道協(xié)議連接代理,主要是SSL(Secure Sockets Layer涌攻,安全套接字)和TLS(Transport Layer Security欧引,傳輸層安全)將通信的內(nèi)容加密

長連接和短連接

  • 短連接:在HTTP初期版本中,每次完成一個(gè)HTTP傳輸恳谎,就需要建立一次TCP連接芝此,會(huì)造成很多不必要的開銷,使得網(wǎng)絡(luò)性能降低
  • 長連接:只要通信的一端沒有明確提出斷開連接因痛,則保持TCP連接(keep-alive)婚苹,建立一個(gè)TCP連接可以進(jìn)行多次的HTT通信,減少了TCP的建立以及斷開所造成的額外開銷鸵膏,減輕負(fù)擔(dān)

管線化

在長連接的基礎(chǔ)上膊升,使得請求管線化成為可能,在這之前谭企,每一次請求都需要等到前一次請求的響應(yīng)回來之后才能發(fā)出廓译,而采用管線化之后结胀,則可以不用等到響應(yīng)再發(fā)出新的請求

Cookie技術(shù)

在請求和響應(yīng)報(bào)文中,加入Cookie信息责循,用于保存狀態(tài)信息糟港,從而使得無狀態(tài)協(xié)議HTTP協(xié)議可以保存狀態(tài)

HTTP報(bào)文信息

  • HTTP報(bào)文
    • 使用HTTP協(xié)議進(jìn)行通信的信息稱為HTTP報(bào)文
    • 請求端發(fā)出的報(bào)文稱為請求報(bào)文
    • 響應(yīng)段發(fā)出的報(bào)文稱為響應(yīng)報(bào)文
    • 報(bào)文的基本格式(報(bào)文首部CRLF報(bào)文主體)
      【報(bào)文結(jié)構(gòu)圖】

HTTP狀態(tài)碼

  • 作用:用于告知客戶端服務(wù)端處理的結(jié)果
  • 格式:3位數(shù)字 + 狀態(tài)碼說明
  • 類別
    • 1XX:信息性狀態(tài)碼,表示請求正在處理
    • 2XX:成功狀態(tài)碼院仿,表示請求正常處理完畢
    • 3XX:重定向狀態(tài)碼秸抚,需要進(jìn)行附加操作以完成請求
    • 4XX:客戶端錯(cuò)誤狀態(tài)碼,服務(wù)器無法處理請求
    • 5XX:服務(wù)器錯(cuò)誤狀態(tài)碼歹垫,服務(wù)器處理請求錯(cuò)誤
  • 常用狀態(tài)碼
    • 2XX系列剥汤,表示成功
      • 200 OK,表示請求被正常處理
      • 204 No Content排惨, 表示請求被正常出來吭敢,但是返回的響應(yīng)報(bào)文中不包含實(shí)體的主體部分
      • 206 Partial Content,表示客戶端進(jìn)行范圍請求暮芭,而服務(wù)端成功執(zhí)行了這部分的請求鹿驼,響應(yīng)報(bào)文由Content-Range指定實(shí)體內(nèi)容
    • 3XX系列,重定向辕宏,表示瀏覽器需要執(zhí)行某些特殊的處理以正確處理請求
      • 301 Moved Permanently畜晰,永久性重定向,表示請求的資源已經(jīng)分配了新的URI瑞筐,以后應(yīng)該使用新的URI
      • 302 Found凄鼻,臨時(shí)性重定向,表示請求的資源已經(jīng)分配新的URI聚假,希望用戶本次能使用新的URI訪問
      • 303 See Other块蚌,表示請求的資源存在另外一個(gè)URI,應(yīng)使用GET方法定向獲取資源
      • 304 Not Modified膘格,請求的附帶條件的資源找到峭范,但是未滿足請求的條件(與重定向無關(guān))
      • 307 Temporary Redirect,臨時(shí)性重定向闯袒,與302類似
    • 4XX系列虎敦,客戶端錯(cuò)誤游岳,表明客戶端是發(fā)生錯(cuò)誤的原因所在
      • 400 Bad Request政敢,請求報(bào)文中存在語法錯(cuò)誤
      • 401 Unauthorized,表示請求需要認(rèn)證
      • 403 Forbidden胚迫,表示請求的資源被服務(wù)器拒絕
      • 404 Not Found喷户,無法找到請求的資源
    • 5XX系列,服務(wù)器錯(cuò)誤访锻,表示服務(wù)器本身發(fā)生錯(cuò)誤
      • 500 Internal Server Error褪尝,服務(wù)器執(zhí)行請求時(shí)發(fā)生了錯(cuò)誤或臨時(shí)性故障
      • 503 Service Unavailable闹获,服務(wù)器暫時(shí)處于超載狀態(tài)或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無法處理請求

HTTP首部

  • 作用:在客戶端與服務(wù)器通信過程中傳遞額外信息
  • 格式:首部字段名: 字段值1, 字段值2, ...
  • 類型
    • 通用首部字段(請求和響應(yīng)報(bào)文都會(huì)使用的字段)


      通用首部字段
    • 請求首部字段(補(bǔ)充了請求的附加信息)


      請求首部字段

      請求首部字段
    • 響應(yīng)首部字段(補(bǔ)充了響應(yīng)的附加信息)


      響應(yīng)首部字段

      響應(yīng)首部字段
    • 實(shí)體首部字段(補(bǔ)充與實(shí)體內(nèi)容有關(guān)的信息)


      實(shí)體首部字段

確保安全的HTTPS

HTTP缺點(diǎn)(未加密協(xié)議)

  • 使用明文通信河哑,內(nèi)容可能會(huì)被竊聽
  • 不驗(yàn)證通信方的身份避诽,有可能會(huì)遭遇偽裝
  • 無法驗(yàn)證報(bào)文的完整性,有可能內(nèi)容遭修改

加密策略

  • 通信加密璃谨,通過和SSL或TLS組合使用沙庐,建立安全的通信通道,加密HTTP通信內(nèi)容
  • 內(nèi)容加密佳吞,將參與通信的內(nèi)容本身加密

HTTPS = HTTP + 加密 + 認(rèn)證 + 完整性保護(hù)拱雏,需要注意的是,HTTPS本身并非新的協(xié)議底扳,只是在HTTP上加了SSL


HTTP與HTTPS
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铸抑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子衷模,更是在濱河造成了極大的恐慌鹊汛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阱冶,死亡現(xiàn)場離奇詭異柒昏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)熙揍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門职祷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人届囚,你說我怎么就攤上這事有梆。” “怎么了意系?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵泥耀,是天一觀的道長。 經(jīng)常有香客問我蛔添,道長痰催,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任迎瞧,我火速辦了婚禮脓恕,結(jié)果婚禮上刽肠,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好枢贿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布埠胖。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪韩脑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天粹污,我揣著相機(jī)與錄音段多,去河邊找鬼。 笑死壮吩,一個(gè)胖子當(dāng)著我的面吹牛衩匣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粥航,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼琅捏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了递雀?” 一聲冷哼從身側(cè)響起柄延,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缀程,沒想到半個(gè)月后搜吧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杨凑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年滤奈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撩满。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蜒程,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伺帘,到底是詐尸還是另有隱情昭躺,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布伪嫁,位于F島的核電站领炫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏张咳。R本人自食惡果不足惜帝洪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脚猾。 院中可真熱鬧葱峡,春花似錦、人聲如沸婚陪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泌参。三九已至脆淹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沽一,已是汗流浹背盖溺。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铣缠,地道東北人烘嘱。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像蝗蛙,于是被迫代替她去往敵國和親蝇庭。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

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

  • 本文是《圖解HTTP》讀書筆記的第二篇捡硅,主要包括此書的第六章內(nèi)容哮内,因?yàn)榈诹碌膬?nèi)容較多,而且比較重要壮韭,所以單獨(dú)寫為...
    lijiankun24閱讀 1,358評論 0 6
  • 本文是《圖解HTTP》讀書筆記的第一篇北发,主要包括此書的前五章內(nèi)容,簡要記錄一下喷屋。大概分為以下幾部分: TCP/IP...
    lijiankun24閱讀 1,300評論 0 2
  • 4天讀完 一琳拨、了解web及網(wǎng)絡(luò)基礎(chǔ) 1.1 三項(xiàng)www構(gòu)建技術(shù): HTML:超文本標(biāo)記語言 HTTP:文本傳輸協(xié)議...
    15d843cd48a8閱讀 780評論 1 4
  • 前面兩篇文章中關(guān)于 HTTP 相關(guān)知識基本上介紹的差不多了,這篇文章是對 HTTP 協(xié)議的補(bǔ)充屯曹,主要介紹以下三點(diǎn)內(nèi)...
    lijiankun24閱讀 1,306評論 2 3
  • 早上上班狱庇,阿三說他要去個(gè)廁所,轉(zhuǎn)身剛出去又回來了恶耽,說僵井,他媽的,只是一個(gè)屁驳棱!他說“屁”的時(shí)候我還以為他說的是“pp”...
    曾經(jīng)小飛閱讀 168評論 0 0