HTTP基礎(chǔ)(圖解HTTP)

使用HTTP協(xié)議訪問Web

我們?cè)谑褂镁W(wǎng)頁瀏覽器訪問網(wǎng)頁的時(shí)候,通過輸入U(xiǎn)RL地址蕴轨,當(dāng)成功請(qǐng)求到服務(wù)器時(shí)港谊,WEB瀏覽器就會(huì)顯示相應(yīng)的頁面。
其中發(fā)起請(qǐng)求的是客戶端
接收請(qǐng)求的是服務(wù)端
而他們進(jìn)行通訊的語言我們成為協(xié)議,web訪問采用的是HTTP(HyperText Transfer Protocol 超文本傳輸協(xié)議)

與HTTP密切相關(guān)的IP/TCP/DNS協(xié)議

IP(Internet Protocol 網(wǎng)際協(xié)議) 位于網(wǎng)絡(luò)層橙弱,它的作用是把各種數(shù)據(jù)包傳送給對(duì)方.(而IP協(xié)議又通過ARP協(xié)議來搜索目標(biāo)[ARP(Address Reslution Protocol) 地址解析協(xié)議歧寺,通過IP地址反向查詢對(duì)應(yīng)的MAC地址])。

負(fù)責(zé)域名解析的DNS

計(jì)算機(jī)可以被賦予IP地址棘脐,也可以被賦予域名或主機(jī)名,但是對(duì)于我們來說斜筐,記住長長的IP地址實(shí)在太難為我們了,與IP地址相比蛀缝,一個(gè)有意義的域名更符合我們的記憶習(xí)慣顷链。但是反過來,讓計(jì)算機(jī)去理解名稱也相對(duì)的變得困難屈梁。因此DNS(Domain Name System)協(xié)議孕育而生.

DNS協(xié)議提供的服務(wù)就是:對(duì)用戶而言:將IP地址轉(zhuǎn)換成域名嗤练、對(duì)計(jì)算機(jī)而言就是將域名轉(zhuǎn)碼成IP地址榛了。

URL與URI

URL是URI的子集,而且我們也更熟悉URL(Uniform Resource Locator 統(tǒng)一資源定位符)煞抬。URL正是使用WEB瀏覽器訪問網(wǎng)頁需要輸入的網(wǎng)頁地址霜大。

URI(Uniform Resource Identifier 統(tǒng)一資源標(biāo)識(shí)符),RFC2396分別對(duì)著三個(gè)單詞做了以下的定義:
Uniform: 規(guī)定統(tǒng)一的格式可方便處理多種不同類型的資源.而不用根據(jù)上下文環(huán)境來識(shí)別資源指定的訪問格式革答。另外加入新增的協(xié)議方案(如http:/ftp:等協(xié)議)也更加容易.

Resource:資源的定義是"可標(biāo)識(shí)的任何東西".除了文檔战坤、圖像或服務(wù)等能夠區(qū)別于其他類型的,全都可作為資源残拐。另外資源不僅可以是單一的途茫,也可以是集合。

Identifier: 標(biāo)識(shí)可以標(biāo)識(shí)的對(duì)象溪食。也稱為標(biāo)識(shí)符慈省。

綜上所述:URI就是由某個(gè)協(xié)議方案表示的資源的定位標(biāo)識(shí)符。協(xié)議方案是指訪問資源所使用的協(xié)議類型名稱.
采用HTTP協(xié)議時(shí)眠菇,協(xié)議方案就是HTTP.除此之外边败,還有ftp、telnet等捎废。標(biāo)準(zhǔn)的URI協(xié)議方案有30多種笑窜。
URI用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源,而URL表示資源的地點(diǎn)(互聯(lián)網(wǎng)所在的位置)登疗。RFC3986中列舉了幾種URI的使用方法:

1.ftp://ftp.is.co.za/rfc/hello.txt
2.http://www.***.com/hello.txt
3.tel:+1-816-555-1212
4.telnet://192.168.0.22:80/

HTTP協(xié)議用于服務(wù)端與客戶端的通訊

HTTP協(xié)議和TCP/IP協(xié)議族內(nèi)的其他眾多的協(xié)議相同排截,都是用于客戶端與服務(wù)端之間進(jìn)行通訊的。
訪問資源的一端叫做客戶端辐益,提供資源相應(yīng)的一端叫做服務(wù)端.當(dāng)然實(shí)際情況中断傲,客戶端及服務(wù)端的角色是有可能產(chǎn)生互換的.(即是客戶端也是服務(wù)端),這種情況在P2P中尤為明顯.

HTTP協(xié)議規(guī)定,請(qǐng)求是從客戶端發(fā)起智政,最后服務(wù)端響應(yīng)該請(qǐng)求并返回響應(yīng)數(shù)據(jù)认罩。換句話說,肯定是客戶端開始建立通訊续捂,服務(wù)端在沒有接收到請(qǐng)求數(shù)據(jù)的情況下是不可能發(fā)送響應(yīng)的垦垂。

請(qǐng)求數(shù)據(jù)

請(qǐng)求數(shù)據(jù):請(qǐng)求訪問某臺(tái)HTTP服務(wù)器上的index.html資源
1.GET 請(qǐng)求訪問服務(wù)器的類型,成為方法(method)
2.隨后的/index.html 指定了訪問的資源
3.HTTP/1.1 指明了客戶端使用的HTTP協(xié)議版本

響應(yīng)數(shù)據(jù).png

響應(yīng)數(shù)據(jù)一般是由協(xié)議版本牙瓢、狀態(tài)碼劫拗、狀態(tài)的原因短語、響應(yīng)首部字段矾克、以及實(shí)體內(nèi)容組成
HTTP協(xié)議是一種無狀態(tài)協(xié)議页慷,協(xié)議不會(huì)對(duì)請(qǐng)求數(shù)據(jù)及響應(yīng)數(shù)據(jù)進(jìn)行狀態(tài)保存以及持久化.

告知服務(wù)器意圖的HTTP方法

Get 獲取資源 (QUERY)

請(qǐng)求訪問已被URI識(shí)別的資源。指定的資源經(jīng)過服務(wù)器的解析處理返回響應(yīng)內(nèi)容.

Post 修改資源(MODIFY)

類似于數(shù)據(jù)庫操作中的修改操作

PUT(ADD)

類似于數(shù)據(jù)庫操作中的增加操作

HEAD 獲取報(bào)文首部

HEAD方法和GET方法一樣,不過HEAD方法僅獲取報(bào)文首部酒繁,而不返回報(bào)文的主體內(nèi)容滓彰。主要用于確認(rèn)URI的有效性及資源的更新日期等.

DELETE 刪除操作

類似于數(shù)據(jù)庫的DELETE刪除操作。

OPTIONS 詢問支持的方法

OPTIONS 方法用來查詢針對(duì)請(qǐng)求的URI指定的資源支持的方法

詢問支持的方法

TRACE 追蹤

TRACE 方法可以讓web服務(wù)器將之前的請(qǐng)求通訊環(huán) 告知給 客戶端.發(fā)送請(qǐng)求時(shí)欲逃,在Max-Forward 首部中填入數(shù)值,沒經(jīng)過一個(gè)服務(wù)器端就將數(shù)字減1饼暑,當(dāng)該數(shù)字剛好減到0時(shí)稳析,就停止傳輸,最后接收到該請(qǐng)求的服務(wù)器返回狀態(tài)嗎200作為響應(yīng)弓叛。
客戶端通過trace方法可以知道請(qǐng)求是如何被加工修改(篡改)的彰居,

trace請(qǐng)求

CONNECT 要求用隧道協(xié)議連接代理

CONNECT要求在與代理通訊服務(wù)器通訊時(shí)建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通訊撰筷。主要使用(SSL(Security Socket layer 安全套接層)和TLS(Transport layer Security 傳輸層安全))協(xié)議對(duì)通訊內(nèi)容進(jìn)行加密后經(jīng)過網(wǎng)絡(luò)隧道傳輸.

CONNECT 方法的格式如下:

CONNECT 代理服務(wù)器名:端口號(hào) http版本

CONNECT 請(qǐng)求

HTTP方法一覽

HTTP方法一覽

其中LINK及UNLINE 在HTTP/1.1版本上已不再支持陈惰。

建立持久連接節(jié)省通訊量

在HTTP初始版本中,沒建立一次HTTP通訊后就要斷開一次HTTP連接,

Paste_Image.png

以當(dāng)年的情形上看毕籽,因?yàn)閭鬏數(shù)膬?nèi)容基本上是內(nèi)容容量較小的文本抬闯,因此在當(dāng)時(shí)上看來并沒什么問題,但是隨著互聯(lián)網(wǎng)的發(fā)展关筒,一個(gè)頁面經(jīng)常包含大量的多媒體信息溶握,在每次請(qǐng)求信息時(shí),會(huì)造成無謂的請(qǐng)求連接與斷開蒸播,增加通訊的開銷.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睡榆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子袍榆,更是在濱河造成了極大的恐慌胀屿,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包雀,死亡現(xiàn)場離奇詭異宿崭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)才写,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門劳曹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人琅摩,你說我怎么就攤上這事铁孵。” “怎么了房资?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蜕劝,是天一觀的道長。 經(jīng)常有香客問我,道長岖沛,這世上最難降的妖魔是什么暑始? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮婴削,結(jié)果婚禮上廊镜,老公的妹妹穿的比我還像新娘。我一直安慰自己唉俗,他們只是感情好嗤朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虫溜,像睡著了一般雹姊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衡楞,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天吱雏,我揣著相機(jī)與錄音,去河邊找鬼瘾境。 笑死歧杏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迷守。 我是一名探鬼主播得滤,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盒犹!你這毒婦竟也來了懂更?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤急膀,失蹤者是張志新(化名)和其女友劉穎沮协,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卓嫂,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慷暂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晨雳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行瑞。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖餐禁,靈堂內(nèi)的尸體忽然破棺而出血久,到底是詐尸還是另有隱情,我是刑警寧澤帮非,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布氧吐,位于F島的核電站讹蘑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏筑舅。R本人自食惡果不足惜座慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翠拣。 院中可真熱鬧版仔,春花似錦、人聲如沸误墓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽优烧。三九已至蝉揍,卻和暖如春链峭,著一層夾襖步出監(jiān)牢的瞬間畦娄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工弊仪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熙卡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓励饵,卻偏偏與公主長得像驳癌,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子役听,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理颓鲜,服務(wù)發(fā)現(xiàn),斷路器典予,智...
    卡卡羅2017閱讀 134,638評(píng)論 18 139
  • 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
  • HTTP概述 超文本傳輸協(xié)議(HTTP瘤袖,HyperText Transfer Protocol) 是互聯(lián)網(wǎng)上應(yīng)用最...
    曹淵說創(chuàng)業(yè)閱讀 3,843評(píng)論 2 61
  • 一衣摩、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,337評(píng)論 6 152
  • 1.OkHttp源碼解析(一):OKHttp初階2 OkHttp源碼解析(二):OkHttp連接的"前戲"——HT...
    隔壁老李頭閱讀 20,826評(píng)論 24 176