圖解http(一)

從今天開(kāi)始閱讀圖解http這本書(shū)肥隆,下載地址:我的百度云

http的發(fā)展史

這個(gè)我就不說(shuō)了,總之起因就是因?yàn)橐粋€(gè)家伙想知識(shí)共享就搞出來(lái)這個(gè)東西。http協(xié)議的更新還是很慢的慷蠕,不像IE都到多少了掸冤。目前http協(xié)議正在準(zhǔn)備出2.0厘托,聽(tīng)說(shuō)老快了,市面上主流的還是1.1稿湿。

相關(guān)協(xié)議

與http關(guān)系比較大的幾個(gè)協(xié)議就是:tcp铅匹、ip、dns
下面一張圖形象說(shuō)明了http與這幾個(gè)協(xié)議的關(guān)系饺藤。


http請(qǐng)求過(guò)程

URI和URL

URI包含著URL

Uniform Resource Identifier
統(tǒng)一格式 資源 標(biāo)識(shí)
http/ftp ---- ----

標(biāo)準(zhǔn)格式
http://[user:pass@]www.example.jp:80/dir/index.html?uid=1#ch1
協(xié)議 登陸信息 服務(wù)器地址 端口 文件路徑 查詢字符串 片段標(biāo)識(shí)符

第二章

請(qǐng)求和響應(yīng)報(bào)文的組成

請(qǐng)求報(bào)文
響應(yīng)報(bào)文

服務(wù)器請(qǐng)求

除了對(duì)服務(wù)器資源的請(qǐng)求包斑,還可以對(duì)服務(wù)器本身進(jìn)行請(qǐng)求。比如:
OPTIONS * HTTP/1.1
這是對(duì)服務(wù)器支持http方法種類的查詢策精。

請(qǐng)求方法

  • GET(SELECT)
    用于請(qǐng)求資源舰始,一般用于頁(yè)面請(qǐng)求,數(shù)據(jù)請(qǐng)求等咽袜。根據(jù)RESTful架構(gòu)理解來(lái)看丸卷,這些都屬于服務(wù)器的資源。參照理解RESTful架構(gòu)
  • POST(CREATE)
    在服務(wù)器新建一個(gè)資源询刹。通過(guò)提交服務(wù)器一些數(shù)據(jù)谜嫉,服務(wù)器根據(jù)這些數(shù)據(jù)進(jìn)行處理和資源的創(chuàng)建。
  • PUT(UPDATE)
    在服務(wù)器更新資源(客戶端提供改變后的完整資源)凹联。
  • PATCH(UPDATE)
    在服務(wù)器更新資源(客戶端提供改變的屬性)沐兰。
  • DELETE(DELETE)
    從服務(wù)器刪除資源。
  • HEAD
    獲取資源的元數(shù)據(jù)蔽挠。和GET方法一樣住闯,不過(guò)不返回報(bào)文主體。用于確認(rèn)URI的有效性和資源更新的時(shí)間澳淑。
  • OPTIONS
    用來(lái)查詢針對(duì)請(qǐng)求URI資源的支持方法比原。
  • TRACE
    trace和網(wǎng)絡(luò)路徑查詢差不多,它是在Max-forwards首部字段中填入最大跳數(shù)杠巡,然后每一跳減一量窘,減為0停止,響應(yīng)體為每一跳的信息氢拥。這個(gè)不常用蚌铜,而且還容易引發(fā)XST(跨站追蹤)锨侯。
  • CONNECT
    要求用隧道協(xié)議連接代理
請(qǐng)求方法

PUT、PATCH冬殃、DELETE在一般網(wǎng)站上都不會(huì)用到囚痴,RESTful架構(gòu)的網(wǎng)站可能會(huì)開(kāi)放。主要是因?yàn)镠TTP/1.1的這些方法都不帶驗(yàn)證機(jī)制审葬。

持久連接和管線化

最初的http是每次http請(qǐng)求響應(yīng)完成都會(huì)斷開(kāi)tcp連接渡讼,這樣如果一個(gè)頁(yè)面有很多圖片就會(huì)有很多次tcp三次握手四次揮手,很耗時(shí)間耳璧。
http1.1提出keep-alive,只要沒(méi)有一端提出明確的斷開(kāi)連接展箱,就一直保持tcp連接通道旨枯,節(jié)省了多次tcp連接的時(shí)間。
管線化則提出http請(qǐng)求的同時(shí)發(fā)送混驰,像是異步一樣攀隔,不等待前面http響應(yīng)的回饋,異步等待回饋栖榨。

Cookie

http是無(wú)狀態(tài)協(xié)議昆汹,它的狀態(tài)通過(guò)cookie來(lái)保持。
響應(yīng)在header中添加set-cookie告訴客戶端下次請(qǐng)求加上cookie
請(qǐng)求在header中添加客戶端所有的cookie

cookie傳輸

狀態(tài)碼

服務(wù)器向用戶返回的狀態(tài)碼和提示信息婴栽,常見(jiàn)的有以下一些(方括號(hào)中是該狀態(tài)碼對(duì)應(yīng)的HTTP動(dòng)詞)满粗。

200 OK - [GET]:服務(wù)器成功返回用戶請(qǐng)求的數(shù)據(jù),該操作是冪等的(Idempotent)愚争。
201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功映皆。
202 Accepted - [*]:表示一個(gè)請(qǐng)求已經(jīng)進(jìn)入后臺(tái)排隊(duì)(異步任務(wù))
204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請(qǐng)求有錯(cuò)誤轰枝,服務(wù)器沒(méi)有進(jìn)行新建或修改數(shù)據(jù)的操作捅彻,該操作是冪等的。
401 Unauthorized - [*]:表示用戶沒(méi)有權(quán)限(令牌鞍陨、用戶名步淹、密碼錯(cuò)誤)。
403 Forbidden - [*] 表示用戶得到授權(quán)(與401錯(cuò)誤相對(duì))诚撵,但是訪問(wèn)是被禁止  的缭裆。
404 NOT FOUND - [*]:用戶發(fā)出的請(qǐng)求針對(duì)的是不存在的記錄,服務(wù)器沒(méi)有進(jìn)行操作砾脑,該操作是冪等的幼驶。
406 Not Acceptable - [GET]:用戶請(qǐng)求的格式不可得(比如用戶請(qǐng)求JSON格式,但是只有XML格式)韧衣。
410 Gone -[GET]:用戶請(qǐng)求的資源被永久刪除盅藻,且不會(huì)再得到的购桑。
422 Unprocesable entity - [POST/PUT/PATCH] 當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),發(fā)生一個(gè)驗(yàn)證錯(cuò)誤氏淑。
500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯(cuò)誤勃蜘,用戶將無(wú)法判斷發(fā)出的請(qǐng)求是否成功。

狀態(tài)碼的完全列表參見(jiàn)這里假残。

傳送門(mén)
RESTful API 設(shè)計(jì)指南
理解RESTful架構(gòu)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缭贡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辉懒,更是在濱河造成了極大的恐慌阳惹,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眶俩,死亡現(xiàn)場(chǎng)離奇詭異莹汤,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)颠印,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)纲岭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人线罕,你說(shuō)我怎么就攤上這事止潮。” “怎么了钞楼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵喇闸,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我询件,道長(zhǎng)仅偎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任雳殊,我火速辦了婚禮橘沥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夯秃。我一直安慰自己座咆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布仓洼。 她就那樣靜靜地躺著介陶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪色建。 梳的紋絲不亂的頭發(fā)上哺呜,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音箕戳,去河邊找鬼某残。 笑死国撵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的玻墅。 我是一名探鬼主播介牙,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澳厢!你這毒婦竟也來(lái)了环础?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剩拢,失蹤者是張志新(化名)和其女友劉穎线得,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體徐伐,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡框都,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了呵晨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熬尺,死狀恐怖摸屠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粱哼,我是刑警寧澤季二,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站揭措,受9級(jí)特大地震影響胯舷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绊含,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一桑嘶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躬充,春花似錦逃顶、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至伴找,卻和暖如春盈蛮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背技矮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工抖誉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留殊轴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓寸五,卻偏偏與公主長(zhǎng)得像梳凛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梳杏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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

  • 本篇文章篇幅比較長(zhǎng)韧拒,先來(lái)個(gè)思維導(dǎo)圖預(yù)覽一下。 一十性、概述 1.計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)分層 2.TCP/IP 通信傳輸流 ...
    滌生_Woo閱讀 54,977評(píng)論 24 557
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族叛溢,HTTP屬于它內(nèi)部的一個(gè)子集。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,440評(píng)論 0 20
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理劲适,服務(wù)發(fā)現(xiàn)楷掉,斷路器,智...
    卡卡羅2017閱讀 134,637評(píng)論 18 139
  • 一霞势、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,337評(píng)論 6 152
  • 最近都在使用maven來(lái)開(kāi)發(fā)系統(tǒng)烹植,關(guān)于maven以前了解的不多,現(xiàn)在統(tǒng)一整理成一個(gè)使用手冊(cè)愕贡。 1.setting....
    1angxi閱讀 1,749評(píng)論 0 1