Java學(xué)習(xí)筆記:HTTP協(xié)議

HTTP是什么

一闺鲸、HTTP是什么

  1. HTTP全稱為Hyper Text Transfer Protocol眷蚓,被譯為超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的—種網(wǎng)絡(luò)協(xié)議。
  2. HTTP協(xié)議是在Web上進(jìn)行數(shù)據(jù)交換的基礎(chǔ)鲤看,是一種“客戶端-服務(wù)器端”協(xié)議。也就是說耍群,請(qǐng)求通常是由像劉覽器這樣的接受方發(fā)起的义桂。一個(gè)完整的Web文檔通常是由不同的子文檔拼接而成的,像是文本蹈垢、布局描述慷吊、圖片、視頻曹抬、腳本等等溉瓶。
  3. 設(shè)計(jì)HTTP最初的目的是為了提供一種發(fā)布和接收HTML頁面的方法。

二、HTTP協(xié)議歷史與標(biāo)準(zhǔn)

  1. HTTP/O.9: 1991年制定嚷闭,有嚴(yán)重設(shè)計(jì)缺陷攒岛,只支持GET方法,不支持MIIME類型胞锰,很快被
    HTTP/1.0取代灾锯。
  2. HTTP/1.0: 1996年制定,支持多種請(qǐng)求方法嗅榕,支持多媒仲對(duì)象顺饮,得到廣泛應(yīng)用。
  3. HTTP/10+:支持持久連接凌那、虛擬主機(jī)兼雄、代理連接等新特性,成為非官方的事實(shí)標(biāo)準(zhǔn)帽蝶。
  4. HTTP/11: 1999年制定赦肋,校正HTTP中的設(shè)計(jì)缺陷,性能優(yōu)化励稳,刪除一些不好的特性佃乘。
  5. HTTP-NG(或HTTP/20):關(guān)注HTTP協(xié)議的性能優(yōu)化以及更強(qiáng)大的服務(wù)邏輯遠(yuǎn)程執(zhí)行框架,研究工作仍在進(jìn)行中驹尼。

三趣避、HTTP請(qǐng)求與響應(yīng)消息

? 客戶端和服務(wù)端通過交換各自的消息(與數(shù)據(jù)流正好相反)進(jìn)行交互。

  1. 由像瀏覽器這樣的客戶端發(fā)出的消息叫做****請(qǐng)求( requests )

  2. 被服務(wù)端回應(yīng)的消息叫做****響應(yīng)(responses )

di90v6.jpg

四新翎、HTTP基本原理

  1. HTTP被設(shè)計(jì)于上20世紀(jì)90年代初期程帕,是一種可擴(kuò)展的協(xié)議。

  2. HTTP是應(yīng)用層的協(xié)議地啰,通過TCP愁拭,或者是TLS-加密的TCP連接來發(fā)送,理論上任何可靠的傳輸協(xié)議都可以使用亏吝。

  3. 因?yàn)槠淞己玫臄U(kuò)展性敛苇,時(shí)至今日,它不僅被用來傳輸超文本文檔顺呕,還用來傳輸圖片枫攀、視頻或者向服務(wù)器發(fā)送如HTML表單這樣的信息。

  4. HTTP還可以根據(jù)網(wǎng)頁需求株茶,僅獲取部分Web文檔內(nèi)容更新網(wǎng)頁来涨。

    dPYuzq.jpg

五、HTTP的基本特性

  1. HTTP是簡單的
    雖然下一代HTTP/2協(xié)議將HTTP消息封裝到了幀中启盛,HTTP大體上還是被設(shè)計(jì)得簡單易讀蹦掐。
    HTTP報(bào)文能夠被人讀懂技羔,還允許簡單測試,降低了門檻卧抗。
  2. HTTP是可擴(kuò)展的
    在HTTP/1.O中出現(xiàn)的HTTP headers讓協(xié)議擴(kuò)展變得非常容易藤滥。
  3. HTTP是無狀態(tài),有會(huì)話的
    在同一個(gè)連接中社裆,兩個(gè)執(zhí)行成功的請(qǐng)求之間是沒有關(guān)系的拙绊。這就帶來了一個(gè)問題,用戶沒有辦法在
    同一個(gè)網(wǎng)站中進(jìn)行連續(xù)的交互泳秀。
  4. HTTP和連接
    一個(gè)連接是由傳輸層來控制的标沪,這從根本上不屬于HTTP的范圍。

六嗜傅、HTTP能控制什么

以下是可以被HTTP控制的常見特性:

  1. 緩存
  2. 開放同原限制
  3. 認(rèn)證
    基本的認(rèn)證功能可以直接通過HTTP提供金句,或用HTTP Cookies來設(shè)置指定的會(huì)話。
  4. 代理和隧道
    通常情況下吕嘀,服務(wù)器和/或客戶端是處于內(nèi)網(wǎng)的违寞,對(duì)外網(wǎng)隱藏真實(shí)IP地址。因此HTTP請(qǐng)求就要通
    過代理越過這個(gè)網(wǎng)絡(luò)屏障偶房。
  5. 會(huì)話

七坞靶、HTTP流(固定方向流動(dòng)數(shù)據(jù))

  1. 打開一個(gè)TCP連接:TCP連接被用來發(fā)送一條或多條請(qǐng)求,以及接受回應(yīng)消息蝴悉。

  2. 發(fā)送一個(gè)HTTP報(bào)文:HTTP報(bào)文(在HTTP/2之前)是語義可讀的。

    GET/HTTP/1.1
    Host: dexeloper.mozilla.org.
    Accept-Language: fr
    
    
  3. 讀取服務(wù)端返回的報(bào)文信息:

    HTTP/1.1 200 OK
    Last-Modified: Tue,o1 Dec 2009 20:18:22 GMT
    Content-Length: 29769
    Content-Type: text/html
    
    
  4. 關(guān)閉連接或者為后續(xù)請(qǐng)求重用連接瘾敢。

八拍冠、概述

  1. 請(qǐng)求通過一個(gè)實(shí)體被發(fā)出,實(shí)體也就是用戶代理簇抵。大多數(shù)情況下庆杜,這個(gè)用戶代理都是指瀏覽器

  2. 每一個(gè)發(fā)送到服務(wù)器的請(qǐng)求碟摆,都會(huì)被服務(wù)器處理并返回一個(gè)消息晃财,也就是響應(yīng)。

  3. 在這個(gè)請(qǐng)求與回應(yīng)之間典蜕,還有許許多多的被稱為Proxies的實(shí)體断盛,他們的作用與表現(xiàn)各不相同。

diClid.png
  1. user-agent就是任何能夠?yàn)橛脩舭l(fā)起行為的工具愉舔。這個(gè)角色通常都是由劉覽器來扮演钢猛。一些例外情況,比如是工程師使用的程序轩缤,以及Web開發(fā)人員調(diào)試應(yīng)用程序命迈。
  2. 瀏覽器總是作為發(fā)起一個(gè)請(qǐng)求的實(shí)體(近幾年已經(jīng)出現(xiàn)一些機(jī)制能夠模擬由服務(wù)器發(fā)起的請(qǐng)求消息贩绕,例如Nodejs )。
  3. 瀏覽器首先發(fā)送一個(gè)請(qǐng)求來獲取頁面的HTML文檔壶愤,再解析文檔中的資源信息發(fā)送其他請(qǐng)求淑倾,獲取可執(zhí)行腳本或CSS樣式來進(jìn)行頁面布局渲染,以及一些其它頁面資源(如圖片和視頻等)征椒。然后娇哆,劉覽
    器將這些資原整合到一起,展現(xiàn)出一個(gè)完整的文檔陕靠,也就是網(wǎng)頁迂尝。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-0NWggABq-1597411288425)(https://s1.ax1x.com/2020/08/14/dPN7zn.jpg)]

十、Web服務(wù)器

在HTTP協(xié)議通信過程的另一端剪芥,是由Web服務(wù)器來服務(wù)并提供客戶端所請(qǐng)求的文檔垄开。服務(wù)器只是虛擬意義上代表一個(gè)機(jī)器:它可以是共享負(fù)載(負(fù)載均衡)的一組服務(wù)器組成的計(jì)算機(jī)集群,也可以是一種復(fù)雜的軟件税肪,通過向其他計(jì)算機(jī)(如緩存溉躲,數(shù)據(jù)庫服務(wù)器,電子商務(wù)服務(wù)器等)發(fā)起請(qǐng)求來獲取部分或全部資源益兄。
Web服務(wù)不一定是一臺(tái)機(jī)器锻梳,但一個(gè)機(jī)器上可以裝載的眾多Web服務(wù)。

十一净捅、代理(Proxies)

在劉覽器和服務(wù)器之間疑枯,有許多計(jì)算機(jī)和其他設(shè)備轉(zhuǎn)發(fā)了HTTP消息。

由于Web棧層次結(jié)構(gòu)的原因蛔六,它們大多都出現(xiàn)在傳輸層荆永、網(wǎng)絡(luò)層和物理層上,對(duì)于HTTP應(yīng)用層而言就是透明的国章,雖然它們可能會(huì)對(duì)應(yīng)用層性能有重要影響具钥。還有一部分是表現(xiàn)在應(yīng)用層上的,被稱為代理(Proxies)液兽。

代理(Proxies)既可以表現(xiàn)得透明骂删,又可以不透明(“改變請(qǐng)求”會(huì)通過它們)。

代理主要有如下幾種作用:

  • 緩存(可以是公開的也可以是私有的四啰,像瀏覽器的緩存)
  • 過濾(像反病毒掃描宁玫,家長控制)心
  • 負(fù)載均衡(讓多個(gè)服務(wù)器服務(wù)不同的請(qǐng)求)
  • 認(rèn)證(對(duì)不同資原進(jìn)行權(quán)限管理)
    以不透明(“改變請(qǐng)求”會(huì)通過它們)。

代理主要有如下幾種作用:

  • 緩存(可以是公開的也可以是私有的柑晒,像瀏覽器的緩存)
  • 過濾(像反病毒掃描撬统,家長控制)心
  • 負(fù)載均衡(讓多個(gè)服務(wù)器服務(wù)不同的請(qǐng)求)
  • 認(rèn)證(對(duì)不同資原進(jìn)行權(quán)限管理)
  • 日志記錄(允許存儲(chǔ)歷史信息)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市敦迄,隨后出現(xiàn)的幾起案子恋追,更是在濱河造成了極大的恐慌凭迹,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苦囱,死亡現(xiàn)場離奇詭異嗅绸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)撕彤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門鱼鸠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人羹铅,你說我怎么就攤上這事蚀狰。” “怎么了职员?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵麻蹋,是天一觀的道長。 經(jīng)常有香客問我焊切,道長扮授,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任专肪,我火速辦了婚禮刹勃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嚎尤。我一直安慰自己荔仁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布芽死。 她就那樣靜靜地躺著乏梁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪收奔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天滓玖,我揣著相機(jī)與錄音坪哄,去河邊找鬼。 笑死势篡,一個(gè)胖子當(dāng)著我的面吹牛翩肌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播禁悠,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼念祭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碍侦?” 一聲冷哼從身側(cè)響起粱坤,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤隶糕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后站玄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體枚驻,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年株旷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了再登。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晾剖,死狀恐怖锉矢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情齿尽,我是刑警寧澤沽损,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站雕什,受9級(jí)特大地震影響缠俺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贷岸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一壹士、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧偿警,春花似錦躏救、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至七嫌,卻和暖如春少办,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诵原。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工英妓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绍赛。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓蔓纠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吗蚌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腿倚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354