《圖解HTTP》讀書筆記之初步認識和HTTP協(xié)議結(jié)構(gòu)

一墩虹,簡單初步的Web和網(wǎng)絡(luò)基礎(chǔ)介紹
當我們在網(wǎng)頁瀏覽器的地址欄中輸入URL時,或許會思考Web頁面是如何誠呈現(xiàn)的呢?Web頁面當然不能憑空顯示出來瘟判,而是通過發(fā)送請求從Web服務(wù)器端獲取文件資源并顯示出來蕉扮。另外整胃,Web是建立在HTTP協(xié)議上通信的。


1

為了更好的理解HTTP喳钟,我們有必要在此之前了解一下TCP/IP協(xié)議族屁使。TCP/IP協(xié)議族是把互聯(lián)網(wǎng)想關(guān)聯(lián)的協(xié)議集合起來后的總稱。而其中最重要的概念就是分層奔则,協(xié)議族按層次主要分為以下四類:應(yīng)用層蛮寂、傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層易茬。


2

關(guān)于TCP/IP相關(guān)信息在此不做詳述酬蹋,這里就暫用一張圖標來了解一下IP協(xié)議、TCP協(xié)議和DNS服務(wù)在使用HTTP協(xié)議的通信過程中各自發(fā)揮的作用抽莱。
3

URL正是使用Web瀏覽器等訪問Web頁面時需要輸入的網(wǎng)頁地址绊起。URI是Uniform Resource Identifier的縮寫银锻,是由某個協(xié)議方案表示的資源的定位標識符畅卓。表示指定的URI涵蓋全部必要信息的絕對URI绊袋、絕對URL以及相對URL。相對URL是指從瀏覽器中基本URI處指定的URL璃岳。而絕對URL的格式則是
4

二年缎,HTTP協(xié)議結(jié)構(gòu)
HTTP協(xié)議用于客戶端和服務(wù)器端之間的通信,并通過請求和響應(yīng)的交換而達成通信铃慷。請求由客戶端發(fā)出单芜,而服務(wù)器回復(fù)響應(yīng)。
請求報文的構(gòu)成如下犁柜,其中POST表示請求訪問服務(wù)器的類型洲鸠,稱之為方法。請求報文是由請求方法、請求URI扒腕、協(xié)議版本绢淀、可選的請求首部字段和內(nèi)容實體構(gòu)成的。


5

響應(yīng)報文的構(gòu)成如下瘾腰,響應(yīng)報文基本上由協(xié)議版本皆的、狀態(tài)碼(表示請求成功或失敗的數(shù)字代碼)、用以解釋狀態(tài)碼的原因短語蹋盆、可選的響應(yīng)首部字段以及實體主體構(gòu)成费薄。
6

另外,HTTP是不保存狀態(tài)的協(xié)議栖雾,即無狀態(tài)協(xié)議楞抡,自身不對請求和響應(yīng)之間的通信狀態(tài)進行保存。這樣的設(shè)計對快速處理大量事務(wù)析藕,確保協(xié)議的可伸縮性有一定的幫助召廷,但是無狀態(tài)也會導致業(yè)務(wù)處理變得有時棘手,例如跳轉(zhuǎn)到同一購物網(wǎng)站的其他頁面账胧,當然能夠繼續(xù)保持登錄狀態(tài)是對用戶更友好的柱恤。因此,在此引入了Cookie技術(shù)找爱。Cookie會根據(jù)從服務(wù)器端發(fā)送的響應(yīng)報文內(nèi)的一個叫做Set-Cookie的首部字段信息,通知客戶端保存Cookie泡孩。下圖很形象地描述了Cookie的作用车摄。
7

HTTP/1.1中可使用的方法有:
1,GET:獲取資源
GET方法用來請求訪問已被URI識別的資源仑鸥。指定的資源經(jīng)服務(wù)器端解析后返回響應(yīng)內(nèi)容吮播。如果請求的是文本,則保持原樣返回眼俊;如果是類似CGI(通用網(wǎng)關(guān)接口)那樣的程序意狠,則返回經(jīng)過執(zhí)行后的輸出結(jié)果。
8

2疮胖,POST:傳輸實體主體
POST方法用來傳輸實體的主體环戈。雖然用GET方法可以傳輸實體的主體,但一般不用GET方法進行傳輸澎灸,而是用POST方法院塞。但是POST的主要目的不是獲取響應(yīng)的主體內(nèi)容。
9

3性昭,PUT:傳輸文件
PUT用來傳輸文件拦止。它要求在請求報文的主體中包含文件內(nèi)容,然后保存到請求URI指定的位置。但是要注意的是PUT方法自身不帶驗證機制汹族,任何人都可以上傳文件萧求,這里存在著安全性問題。若配合Web應(yīng)用程序的驗證機制顶瞒,或架構(gòu)設(shè)計采用REST(表征狀態(tài)轉(zhuǎn)移)標準的同類Web網(wǎng)站夸政,就可能會開放使用PUT方法。


10

4搁拙,HEAD:獲取報文首部
HEAD方法與GET方法一樣秒梳,只是不返回報文主體部分,用于確認URI的有效性及資源更新的日期時間等箕速。
11

5酪碘,DELETE:刪除文件
DELETE方法用來刪除文件,是與PUT相反的方法盐茎。它按請求URI刪除指定的資源兴垦。但是HTTP/1.1的DELETE方法本身和PUT方法一樣不帶驗證機制,所以一般Web也不使用字柠。當配合Web應(yīng)用程序的驗證機制探越,或遵守REST標準還是有可能會開放使用的。
12

6窑业,OPTIONS:詢問支持的方法
OPTIONS方法用來查詢針對請求URI指定的資源支持的方法钦幔。
13

7,TRACE:追蹤路徑
TRACE方法讓Web服務(wù)器端將之前的請求通信環(huán)回給客戶端的方法常柄。
發(fā)送請求時鲤氢,在Max-Forwards首部字段中填入數(shù)值,每經(jīng)過一個服務(wù)器就將該數(shù)字減1西潘,當數(shù)值剛好減為0時就停止繼續(xù)傳輸卷玉,最后接收的請求的服務(wù)器則返回狀態(tài)碼200 OK的響應(yīng)。
客戶端可以通過TRACE方法查詢發(fā)送出去的請求是怎樣唄加工修改/篡改的喷市。
14

8相种,CONNECT:要求用隧道協(xié)議連接代理
CONNECT方法要求在與代理服務(wù)器通信時建立隧道,實現(xiàn)用隧道協(xié)議進行TCP通信品姓,這其中主要使用SSL和TLS協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸寝并。
15

持續(xù)連接
最后說下持續(xù)連接。由于HTTP協(xié)議的初始版本中腹备,每次進行一次通信都要斷開一次TCP連接食茎。但是由于傳輸信息量的增大,每次請求都造成的無謂TCP連接建立和斷開馏谨,增加了通信量的開銷别渔。因此,提出了持續(xù)連接HTTP keep-alive方法,它的特點是只要任意一端沒有明確提出斷開連接哎媚,則保持TCP連接狀態(tài)喇伯。這樣減輕了服務(wù)器的負載。在HTTP/1.1中拨与,所有連接都是默認是持續(xù)連接稻据。持續(xù)連接多數(shù)請求以管線化方式發(fā)送成為可能。這樣就能做到同時并行發(fā)送多個請求买喧,而不需要一個接一個地等待響應(yīng)了捻悯。管線化技術(shù)比持續(xù)連續(xù)還要快,請求數(shù)越多淤毛,時間差越明顯今缚。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市低淡,隨后出現(xiàn)的幾起案子姓言,更是在濱河造成了極大的恐慌,老刑警劉巖蔗蹋,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件何荚,死亡現(xiàn)場離奇詭異,居然都是意外死亡猪杭,警方通過查閱死者的電腦和手機餐塘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來皂吮,“玉大人戒傻,你說我怎么就攤上這事′探希” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵冈止,是天一觀的道長狂票。 經(jīng)常有香客問我,道長熙暴,這世上最難降的妖魔是什么闺属? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮周霉,結(jié)果婚禮上掂器,老公的妹妹穿的比我還像新娘。我一直安慰自己俱箱,他們只是感情好国瓮,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般乃摹。 火紅的嫁衣襯著肌膚如雪禁漓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天孵睬,我揣著相機與錄音播歼,去河邊找鬼。 笑死掰读,一個胖子當著我的面吹牛秘狞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蹈集,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烁试,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雾狈?” 一聲冷哼從身側(cè)響起廓潜,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎善榛,沒想到半個月后辩蛋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡移盆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年悼院,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咒循。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡据途,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叙甸,到底是詐尸還是另有隱情颖医,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布裆蒸,位于F島的核電站熔萧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏僚祷。R本人自食惡果不足惜佛致,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辙谜。 院中可真熱鬧俺榆,春花似錦、人聲如沸装哆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爹殊,卻和暖如春蜕乡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梗夸。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工层玲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人反症。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓辛块,卻偏偏與公主長得像,于是被迫代替她去往敵國和親铅碍。 傳聞我的和親對象是個殘疾皇子润绵,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

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