HTTP介紹

一.簡(jiǎn)介

  • HTTP協(xié)議蟋字,中文名:超文本傳輸協(xié)議(HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議, 所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn).

  • HTTP最開始是專門用來傳輸HTML稿蹲。

  • HMTL中文名:超文本標(biāo)記語言。隨著互聯(lián)網(wǎng)時(shí)代的發(fā)展鹊奖,HTTP可以用來傳輸任何數(shù)據(jù)類型苛聘。

  • HTTP 是一種請(qǐng)求/響應(yīng)式的協(xié)議。一個(gè)客戶端與服務(wù)器建立連接后忠聚,發(fā)送一個(gè)請(qǐng)求給服務(wù)器设哗;服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息咒林。

  • 發(fā)展歷程
      HTTP 的第一版本 HTTP/0.9是一種簡(jiǎn)單的用于網(wǎng)絡(luò)間原始數(shù)據(jù)傳輸?shù)膮f(xié)議熬拒;
      HTTP/1.0由 RFC 1945 定義 ,在原 HTTP/0.9 的基礎(chǔ)上澎粟,有了進(jìn)一步的改進(jìn)遣鼓,允許消息以類 MIME 信息格式存 在,包括請(qǐng)求/響應(yīng)范式中的已傳輸數(shù)據(jù)和修飾符等方面的信息怯晕;
      HTTP/1.1(RFC2616) 的要求更加嚴(yán)格以確保服務(wù)的可靠性吧凉,增強(qiáng)了在HTTP/1.0 沒有充分考慮到分層代理服務(wù)器狰贯、高速緩沖存儲(chǔ)器、持久連接需求或虛擬主機(jī)等方面的效能;
      安全增強(qiáng)版的 HTTP (即S-HTTP或HTTPS)嗦玖,則是HTTP協(xié)議與安全套接口層(SSL)的結(jié)合器瘪,使HTTP的協(xié)議數(shù)據(jù)在傳輸過程中更加安全欣除。

思考杠娱?
? 客戶端該傳什么格式的數(shù)據(jù)給服務(wù)器?服務(wù)器才能看懂
? 服務(wù)器該返回什么格式的數(shù)據(jù)給客戶端?客戶端才能看懂
兩邊要怎樣傳輸數(shù)據(jù)才能有效溝通磨淌?

二.HTTP協(xié)議的作用

  • 規(guī)定客戶端和服務(wù)器之間的數(shù)據(jù)傳輸格式
  • 讓客戶端和服務(wù)器能有效地進(jìn)行數(shù)據(jù)溝通
Snip20160501_7.png

三.HTTP協(xié)議的特點(diǎn)

  • 簡(jiǎn)單方便快速
    因?yàn)镠TTP協(xié)議比較簡(jiǎn)單,所以HTTP服務(wù)器的程序規(guī)模相對(duì)比較小,從而使得通信的速度非常快。

  • 靈活
    Http協(xié)議允許客戶端和服務(wù)器端傳輸任意類型任意格式的數(shù)據(jù)對(duì)象免胃。

  • HTTP 0.9和1.0使用非持續(xù)連接
    非持續(xù)連接的含義是每次建立的連接只處理一個(gè)客戶端請(qǐng)求扼雏。 當(dāng)服務(wù)器處理完客戶端的請(qǐng)求之后碟绑,并且收到客戶的反饋應(yīng)答后诵冒,服務(wù)器端立即斷開連接。采用這種通信方式可以大大的節(jié)省傳輸時(shí)間悄雅。

  • HTTP 1.1使用持續(xù)連接
    不必為每個(gè)web對(duì)象創(chuàng)建一個(gè)新的連接,一個(gè)連接可以傳送多個(gè)對(duì)象

  • 面向無狀態(tài)
    Http是無狀態(tài)的協(xié)議矫俺。所謂的無狀態(tài)是指協(xié)議對(duì)于請(qǐng)求的處理沒有記憶功能。無狀態(tài)意味著如果要再次處理先前的信息神帅,則這些先前的信息必須要重傳沐兰,這就導(dǎo)致了數(shù)據(jù)量傳輸?shù)脑黾印?/code>

非持續(xù)連接和持續(xù)連接的區(qū)別?
非持續(xù)連接是指啟動(dòng)一次TCP連接服務(wù)器就向客戶端傳送一個(gè)對(duì)象杠巡。 持續(xù)連接是指服務(wù)器可在相同的TCP連接上向客戶端發(fā)送多個(gè)對(duì)象叁怪。HTTP/1.0的默認(rèn)設(shè)置是非持續(xù)連接难捌,而HTTP/1.1的默認(rèn)設(shè)置是持續(xù)連接愚争。

舉個(gè)例子
在使用HTTP/1.0的情況下从隆,如果打開一個(gè)包含一個(gè)HTML文件和10個(gè)內(nèi)聯(lián)圖象對(duì)象的網(wǎng)頁時(shí),HTTP就要建立11次TCP連接才能把文件從服務(wù)器傳送到客戶端。而使用HTTP/1.1的情況下,如果打開同樣的文件時(shí)炉擅,HTTP建立一次TCP連接就可把文件從服務(wù)器傳送到客戶端纲岭。

四止潮、HTTP的基本通信過程

1唆樊、建立請(qǐng)求

HTTP協(xié)議規(guī)定:一個(gè)完整的
由客戶端發(fā)給服務(wù)器的HTTP請(qǐng)求 需要包含以下內(nèi)容:

1)仓洼、請(qǐng)求行:指定 請(qǐng)求方法介牙、請(qǐng)求資源路徑 以及 HTTP協(xié)議版本饶唤。
# / 表示訪問根目錄
GET / HTTP/1.1

2)、請(qǐng)求頭:對(duì)客戶端的環(huán)境描述贯钩、客戶端請(qǐng)求的主機(jī)地址等信息募狂。

  * 請(qǐng)求頭中 至少包含以下信息
  # 客戶端要訪問的服務(wù)器主機(jī)地址 
  Host:m.baidu.com

  * 請(qǐng)求頭中 還可以包含以下信息
  # 客戶端的類型,客戶端的軟件環(huán)境
  User-Agent:iPhone AppleWebKit

  # 客戶端所能接收的數(shù)據(jù)類型
  Accept:text/html

  # 客戶端的語言環(huán)境
  Accept-Language:zh-cn

  # 客戶端支持的數(shù)據(jù)壓縮格式 
  Accept-Encoding:gzip

  # 訪問結(jié)束后角雷,是否斷開連接
  Connection:Close

3)祸穷、請(qǐng)求體(可選):客戶端發(fā)給服務(wù)器的具體數(shù)據(jù),例如要上傳的文件數(shù)據(jù)勺三。

 請(qǐng)求格式:
每一項(xiàng)請(qǐng)求信息末尾使用 \r\n

最后一個(gè)請(qǐng)求項(xiàng)末尾使用
 \r\n\r\n 表示請(qǐng)求結(jié)束

 #warming 每一項(xiàng)請(qǐng)求信息和\r\n之間不能有空格雷滚。

2、接收響應(yīng)

客戶端向服務(wù)器發(fā)送請(qǐng)求檩咱,服務(wù)器應(yīng)當(dāng)做出響應(yīng)揭措,即返回給客戶端的數(shù)據(jù)。
HTTP協(xié)議規(guī)定:1個(gè)完整的HTTP響應(yīng)中包含以下內(nèi)容

1)刻蚯、狀態(tài)行:包含了HTTP協(xié)議版本绊含、狀態(tài)碼、狀態(tài)英文名稱
#HTTP/1.1 200 OK

2)炊汹、響應(yīng)頭:包含了對(duì)服務(wù)器的描述躬充、對(duì)返回?cái)?shù)據(jù)的描述

    #Server: Apache-Coyote/1.1 // 服務(wù)器的類型
    #Content-Type: image/jpeg // 返回?cái)?shù)據(jù)的類型
    #Content-Length: 56811 // 返回?cái)?shù)據(jù)的長度
    #Date: Mon, 23 Jun 2014 12:54:52 GMT // 響應(yīng)的時(shí)間

3)、實(shí)體內(nèi)容:服務(wù)器返回給客戶端的具體數(shù)據(jù),比如文件數(shù)據(jù)

Snip20160501_11.png

五.URL和常見協(xié)議

  • 什么是URL
  • URL的全稱是Uniform Resource Locator(統(tǒng)一資源定位符)
  • 通過1個(gè)URL充甚,能找到互聯(lián)網(wǎng)上唯一的1個(gè)資源
  • URL就是資源的地址以政、位置,互聯(lián)網(wǎng)上的每個(gè)資源都有一個(gè)唯一的URL
Snip20160501_9.png
Snip20160501_10.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伴找,一起剝皮案震驚了整個(gè)濱河市盈蛮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌技矮,老刑警劉巖抖誉,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異衰倦,居然都是意外死亡袒炉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門樊零,熙熙樓的掌柜王于貴愁眉苦臉地迎上來我磁,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碌识。 經(jīng)常有香客問我,道長焕参,這世上最難降的妖魔是什么理疙? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮烹植,結(jié)果婚禮上斑鸦,老公的妹妹穿的比我還像新娘。我一直安慰自己草雕,他們只是感情好巷屿,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墩虹,像睡著了一般嘱巾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诫钓,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天旬昭,我揣著相機(jī)與錄音,去河邊找鬼菌湃。 笑死问拘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播骤坐,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼绪杏,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了纽绍?” 一聲冷哼從身側(cè)響起蕾久,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拌夏,沒想到半個(gè)月后僧著,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辖佣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年霹抛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卷谈。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杯拐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出世蔗,到底是詐尸還是另有隱情端逼,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布污淋,位于F島的核電站顶滩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏寸爆。R本人自食惡果不足惜礁鲁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赁豆。 院中可真熱鬧仅醇,春花似錦、人聲如沸魔种。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽节预。三九已至叶摄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間安拟,已是汗流浹背蛤吓。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留去扣,地道東北人柱衔。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓樊破,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唆铐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哲戚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

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

  • 一、什么是HTTP協(xié)議 ? HTTP本質(zhì)上是一種協(xié)議艾岂,全稱是Hypertext Transfer Protocol...
    Leon_520閱讀 945評(píng)論 0 9
  • HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(W...
    Habit_1027閱讀 482評(píng)論 0 2
  • xdh精英班20160909課后作業(yè): Node.js HTTP 介紹 本文根據(jù)xdh精英班20160909課后作...
    birdflying閱讀 878評(píng)論 0 4
  • TTP屬于老話題了顺少,在項(xiàng)目中我們經(jīng)常需要往服務(wù)端發(fā)POST或者GET請(qǐng)求,但是對(duì)于HTTP的了解不應(yīng)只局限于此王浴。千...
    飛天豬Pony閱讀 339評(píng)論 0 0
  • 本文整理自MIN飛翔博客 [1] 1. 概念 協(xié)議是指計(jì)算機(jī)通信網(wǎng)絡(luò)中兩臺(tái)計(jì)算機(jī)之間進(jìn)行通信所必須共同遵守的規(guī)定或...
    HoyaWhite閱讀 2,682評(píng)論 2 20