《圖解HTTP》——簡單的HTTP協(xié)議

前言

目前简僧,前端必須要了解的知識(shí)中HTTP必不可少王凑,而自己也在學(xué)習(xí)當(dāng)中兰绣,我主要是通過閱讀《圖解HTTP》進(jìn)行學(xué)習(xí)世分,下面是自己的一些讀書筆記。這一章主要簡單介紹了HTTP協(xié)議缀辩。

HTTP是一種不保存狀態(tài)的協(xié)議

HTTP是一種不保存狀態(tài)的協(xié)議
HTTP是一種無狀態(tài)的協(xié)議臭埋。HTTP協(xié)議自身不對請求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存。也就是說HTTP這個(gè)級(jí)別臀玄,協(xié)議對于發(fā)送過的請求和響應(yīng)都不做持久化的處理瓢阴。

為什么要這么做?
這是為了更快的處理大量的事務(wù)健无,確保協(xié)議的可伸縮性荣恐。而特意把HTTP設(shè)計(jì)得這么簡單的。

那么我要保存狀態(tài)的話要怎么做累贤?
HTTP/1.1提出了相應(yīng)的解決方法叠穆,雖然HTTP1.1也是無狀態(tài)的協(xié)議,但是引入了Cookie技術(shù)臼膏。有了Cookie再使用HTTP通信痹束,就可以管理狀態(tài)了。后面我會(huì)總結(jié)到Cookie讶请。

HTTP方法

HTTP方法有哪些?它們又有哪些用途

  • GET方法屎媳。獲取資源夺溢。用來請求訪問一杯URI識(shí)別的資源。指定的資源經(jīng)過服務(wù)器解析后返回的響應(yīng)內(nèi)容烛谊。
  • POST方法风响。傳輸內(nèi)容實(shí)體。雖然GET方法也可以用來傳輸內(nèi)容實(shí)體丹禀,但是我們一般都不怎么做状勤。POST的主要目的并不是獲取響應(yīng)的主體內(nèi)容。


  • PUT方法双泪。傳輸文件持搜。就想FTP協(xié)議中的請求文件上傳一樣,要求在請求報(bào)文的實(shí)體中包含文件內(nèi)容焙矛,然后保存到請求的URI指定的位置葫盼。但是鑒于HTTP1.1的PUT方法自身不帶有驗(yàn)證機(jī)制,任何人都可以上傳文件村斟,存在安全問題贫导,因此一般的網(wǎng)站不選用這種方式抛猫。如果配合Web應(yīng)用程序的驗(yàn)證機(jī)制孩灯,或架構(gòu)設(shè)計(jì)采用REST標(biāo)準(zhǔn)的同類Web網(wǎng)站闺金,就可能會(huì)開放使用PUT方法。


  • HEAD方法峰档。獲取報(bào)文首部 败匹。HEAD方法和GET方法一樣,只是不返回報(bào)文的主體部分面哥。用于確認(rèn)URI的有效性以及資源更新的日期時(shí)間等哎壳。
  • DELETE方法。刪除文件尚卫。與PUT方法相反归榕,按照請求的URI刪除指定的資源。
  • OPTIONS方法用來查詢針對請求的URI指定的資源支持的方法吱涉。

  • TRACE刹泄。追蹤路徑。讓web服務(wù)器將之前的請求通信環(huán)回給客戶端的方法怎爵。發(fā)送請求的時(shí)候特石,在Max-Forwards首部字段中加入數(shù)值,每經(jīng)過一個(gè)服務(wù)器端該數(shù)字就減一鳖链,當(dāng)數(shù)值剛好減到0的時(shí)候姆蘸,就停止傳輸,最后收到請求的服務(wù)器返回的200OK的響應(yīng)芙委。

但是TRACE方法本來就不怎么常用逞敷,而且它容易引發(fā)XST(跨站追蹤),通常就更加不會(huì)用到了灌侣。

CONNECT方法推捐。要求隧道協(xié)議連接代理
CONNECT方法要求在與代理服務(wù)器通信的時(shí)候建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通信侧啼。主要使用SSL(secure sockets layer牛柒,安全套接層)和TLS(Transport Layer Security,傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)過網(wǎng)絡(luò)隧道傳輸痊乾。
CONNECT方法的格式如下:
CONNECT代理服務(wù)器名:端口號(hào) HTTP版本


最后皮壁,我們要知道,方法的作用在于符喝,可以指定請求的資源按照期望產(chǎn)生某種行為闪彼。而且方法的名稱分大小寫之分,記得使用大寫。

方法一覽圖

持久連接節(jié)省流量

在一開始的HTTP協(xié)議中畏腕,每進(jìn)行一次HTTP 通信就斷開一次TCP連接缴川。


在請求一個(gè)很多資源的HTML頁面的時(shí)候,每次連接都會(huì)造成無所謂的TCP連接的建立和斷開描馅,增加了通信量的開銷把夸。

什么是持久連接
持久連接也被稱為HTTP keep alive或者HTTP connection reuse。它的特點(diǎn)是铭污,只要任意一端沒有明確提出斷開連接恋日,則保持TCP連接狀態(tài)。

這樣做的好處:

  • 減少了TCP連接重復(fù)建立和斷開的時(shí)間開銷
  • 減輕了服務(wù)端的負(fù)載

在HTTP/1.1中嘹狞,所有的連接默認(rèn)都是持久連接岂膳,但是HTTP/1.0內(nèi)比沒有標(biāo)準(zhǔn)化。雖然有一部分服務(wù)端通過一些非標(biāo)準(zhǔn)的手段實(shí)現(xiàn)了持久連接磅网,但服務(wù)端不一定能夠支持持久連接谈截。

什么是管線化
之前需要發(fā)送請求之后必須等待并且接收到回應(yīng)之后,才能發(fā)送下一個(gè)請求涧偷。管線化技術(shù)出現(xiàn)之后簸喂,就不用等待就可以發(fā)送下一個(gè)請求了。

管線化的好處

  • 能夠做到同時(shí)并行發(fā)送多個(gè)請求燎潮,而不需要一個(gè)接著一個(gè)地等待響應(yīng)喻鳄。


Cookie技術(shù)

Cookie的工作原理:Cookie會(huì)根據(jù)從服務(wù)端發(fā)送的響應(yīng)報(bào)文中的一個(gè)稱set-Cookie的首部字段中,通知客戶端保存Cookie确封。當(dāng)客戶端下次再往服務(wù)端發(fā)送請求的時(shí)候除呵,客戶端會(huì)自動(dòng)在請求報(bào)文中加入Cookie值發(fā)送出去。

服務(wù)端接收到Cookie后爪喘,會(huì)去檢查究竟是從哪一個(gè)客戶端發(fā)送過來的(主要是通過對比服務(wù)端的記錄)竿奏,最后得到之前的狀態(tài)信息。

  • 第一次請求的時(shí)候(也就是還沒有Cookie)


  • 第二次請求的時(shí)候


上面兩次請求的請求和響應(yīng)報(bào)文如下所示:


具體的還可以看session和session_id的理解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腥放,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绿语,更是在濱河造成了極大的恐慌秃症,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吕粹,死亡現(xiàn)場離奇詭異种柑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)匹耕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門聚请,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事驶赏≌ū埃” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵煤傍,是天一觀的道長盖文。 經(jīng)常有香客問我,道長蚯姆,這世上最難降的妖魔是什么五续? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮龄恋,結(jié)果婚禮上疙驾,老公的妹妹穿的比我還像新娘。我一直安慰自己郭毕,他們只是感情好它碎,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铣卡,像睡著了一般链韭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煮落,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天敞峭,我揣著相機(jī)與錄音,去河邊找鬼蝉仇。 笑死旋讹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轿衔。 我是一名探鬼主播沉迹,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼害驹!你這毒婦竟也來了鞭呕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤宛官,失蹤者是張志新(化名)和其女友劉穎葫松,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體底洗,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腋么,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了亥揖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珊擂。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摧扇,到底是詐尸還是另有隱情圣贸,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布扳剿,位于F島的核電站旁趟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏庇绽。R本人自食惡果不足惜锡搜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞧掺。 院中可真熱鬧耕餐,春花似錦、人聲如沸辟狈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哼转。三九已至明未,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壹蔓,已是汗流浹背趟妥。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留佣蓉,地道東北人披摄。 一個(gè)月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像勇凭,于是被迫代替她去往敵國和親疚膊。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

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