第一章. 什么是HTTP

從技術(shù)層面來說, 互聯(lián)網(wǎng)是比較難以理解的事情, 主要是因?yàn)樗且粋€(gè)觸摸不到的東西. 多數(shù)人都從個(gè)人角度對(duì)它有一個(gè)大致的印象, 但對(duì)更深入去理解就興趣缺缺了. 盡官如此,網(wǎng)絡(luò)還是比較容易被定義的, 并且定義網(wǎng)絡(luò)有助于我們更好的就解說http這個(gè)重要角色.

如果你去創(chuàng)建一個(gè)像網(wǎng)絡(luò)這樣的溝通媒介, 假定現(xiàn)有計(jì)算機(jī)網(wǎng)絡(luò)(因特網(wǎng))有三個(gè)主要問題需要你去解決,以便于潛在用戶使用:

1. 用戶該怎樣查找內(nèi)容, 或者說內(nèi)容提供者怎樣確定自己?

2. 用戶在這個(gè)系統(tǒng)下查找時(shí)如何檢索內(nèi)容, 或者說內(nèi)容提供者如何發(fā)送內(nèi)容?

3. 內(nèi)容需要以什么樣的格式提交才能讓所有的用戶一致解析?

在網(wǎng)絡(luò)情境下這三個(gè)問題的解答依次是: 通用資源標(biāo)識(shí)符(Universal Resource Identifiers)簡(jiǎn)稱URIs, 超文本傳輸協(xié)議(Hypertext Transfer Protocol)簡(jiǎn)稱HTTP, 和超文本標(biāo)記語言(Hypertext Markup Language)簡(jiǎn)稱HTML.

很多網(wǎng)絡(luò)開發(fā)人員對(duì)這三個(gè)技術(shù)中的HTML都有了一定的知識(shí)積累. 當(dāng)只需要?jiǎng)?chuàng)建靜態(tài)內(nèi)容,比如個(gè)人主頁時(shí)是已經(jīng)足夠了. 然而, 如果需要?jiǎng)?chuàng)建動(dòng)態(tài)內(nèi)容, 特別是需要構(gòu)建web應(yīng)用時(shí),學(xué)習(xí)HTTP知識(shí)就變得非常重要了. 因?yàn)樵谶@種情況下,數(shù)據(jù)和信息比格式化信息方式更加重要.

以銀行站點(diǎn)為例, 一個(gè)站點(diǎn)用戶是更關(guān)心儲(chǔ)蓄帳戶收支呢還是更關(guān)心儲(chǔ)蓄帳戶收支數(shù)據(jù)有沒有以更具美學(xué)的方式展示呢? 為了開發(fā)出更有用更成功的網(wǎng)站, 把目光聚集在用戶對(duì)什么更感興趣就顯得非常重要, 在多數(shù)情況下的答案是內(nèi)容.

因?yàn)橹赜趦?nèi)容和內(nèi)容的傳遞, 本書對(duì)專業(yè)網(wǎng)絡(luò)開發(fā)就這些方面做了細(xì)致的介紹.


HTTP簡(jiǎn)史和用途

為了解HTTP發(fā)展歷程, 要適當(dāng)了解我們所熟知的網(wǎng)絡(luò)是如何開始的. HTTP曾是一個(gè)叫做Tim Berners-Lee腦子里的一張巨大圖片. 事實(shí)上, HTTP就是為了實(shí)現(xiàn)網(wǎng)絡(luò)的想法而設(shè)計(jì)的.

1989年三月,? Berners-Lee 向CERN(歐洲核研究組織)提交了一個(gè)倡議書, 定名為:信息管理倡議書. 這個(gè)倡議書被大多數(shù)發(fā)明互聯(lián)網(wǎng)的代表們支持. 雖然這個(gè)倡議書只是做了大至的概括而沒有具體實(shí)施細(xì)節(jié),但它確實(shí)對(duì)這個(gè)改變世界遠(yuǎn)景的發(fā)明定義了關(guān)鍵概念.? Berners-Lee在1991年8月就萬維網(wǎng)在新聞組做了宣言. 現(xiàn)在還能在谷歌組織查找到這個(gè)宣言原文: http://groups.google.com/groups?selm=6487%40cernvax.cern.chhttp://groups.google.com/groups?selm=6487%40cernvax.cern.ch

下面是關(guān)于網(wǎng)絡(luò)的里程碑事件及時(shí)間點(diǎn):

1989年3月------ Tim Berners-Lee寫下信息管理倡議書.

1991年8月------?Tim Berners-Lee就萬維網(wǎng)做出宣言.

1993年3月------ Marc Andreesen 發(fā)布NCSA Mosaic 0.10 (網(wǎng)絡(luò)瀏覽器), 它支持<img>標(biāo)簽, 書簽以及在X下更友好的圖表接口支持.

1993年9月------ NCSA 為X\Macintosh\PC適配Mosaic.

1994年3月------Marc Ajndreesen和其同事們離開NCSA, 創(chuàng)立了Mosaic Communications Corporation(即后面的Netscape).

1994年6月------ Brian Pinkerton發(fā)布 WebCrawler, 一個(gè)網(wǎng)絡(luò)索引.

1994年8月------ Jeff Bezos 為亞馬遜招兵買馬.

1994年10月------ Marc Andreesen發(fā)布Mosaic Netscape 0.9 Beta.

1994年10月------?Tim Berners-Lee創(chuàng)立萬維網(wǎng)委員會(huì)(W3C).

1994年11月------ W3C第一個(gè)會(huì)議在MIT舉行.

1995年9月------ eBay創(chuàng)辦廣告拍賣服務(wù).

1998年3月------ 谷歌成立.

你可以疑惑HTTP是如何適應(yīng)網(wǎng)絡(luò)在這么些年來的快速發(fā)展的, 因?yàn)樽铋_始它只是一個(gè)允許定位及檢索內(nèi)容的非常簡(jiǎn)單的協(xié)議, 是遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)今商業(yè)應(yīng)用的類型需求的. 跟工業(yè)進(jìn)化一樣, HTTP也在不斷演進(jìn).

HTTP 0.9

第一版的HTTP極其基礎(chǔ)(簡(jiǎn)陋). 它允許網(wǎng)絡(luò)客戶端用GET方式請(qǐng)求內(nèi)容, 沒有HTTP 請(qǐng)求頭(header), 也沒有HTTP版本號(hào). 請(qǐng)求里就只有一行字: GET/index.html

因?yàn)樵贖TTP 0.9版里沒有請(qǐng)求頭,所以它只支持一種類型的內(nèi)容,那就是純文本. 當(dāng)然, 文檔依然可以用HTML格式, 但它沒有媒體類型用以支持使用圖片及其它類型的內(nèi)容. 當(dāng)然可以說這個(gè)版本非常之基礎(chǔ), 但也完成了預(yù)期目的.

http 0.9事務(wù)中的基本系列事件由正在建立的tcp連接組成, 一個(gè)像上面例子中的請(qǐng)求發(fā)送以后, 內(nèi)容將被返回(如果內(nèi)容存在). 其中也沒有提及到錯(cuò)誤碼的情況, 如果內(nèi)容不存在則沒有內(nèi)容返回, TCP連接在內(nèi)容返回后關(guān)閉(如果有內(nèi)容返回的話).

盡管后續(xù)版本都要求向前兼容, 但大多數(shù)現(xiàn)代網(wǎng)絡(luò)客戶端和服務(wù)器僅能夠與HTTP 1.0以上的版本通信.

HTTP 1.0

由于HTTP 1.0 在網(wǎng)絡(luò)出現(xiàn)的早期就已經(jīng)推出(RFC可以追溯到1996年), 很多人從沒在http 0.9 的約束下使用網(wǎng)絡(luò). 我最早對(duì)網(wǎng)絡(luò)的記憶是使用Lynx 網(wǎng)絡(luò)瀏覽器瀏覽內(nèi)容, 它不支持圖形交互界面, 圖片以及使用鼠標(biāo)瀏覽.當(dāng)HTTP大規(guī)模采用時(shí), 這個(gè)階段發(fā)展迅猛, 網(wǎng)絡(luò)的潛力開始清晰起來.

HTTP 1.0最令人矚目的區(qū)別在于, 至少對(duì)于用戶來說,網(wǎng)絡(luò)已經(jīng)有能力以HTML表單的形式向用戶發(fā)回?cái)?shù)據(jù). 這個(gè)要?dú)w功于POST方法的加入,我將在第二章的HTTP定義中講解.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末误证,一起剝皮案震驚了整個(gè)濱河市故河,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轨香,老刑警劉巖显歧,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仪或,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡士骤,警方通過查閱死者的電腦和手機(jī)范删,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拷肌,“玉大人到旦,你說我怎么就攤上這事【拊担” “怎么了添忘?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)若锁。 經(jīng)常有香客問我搁骑,道長(zhǎng)巫糙,這世上最難降的妖魔是什么眠蚂? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任垦垂,我火速辦了婚禮故慈,結(jié)果婚禮上烟勋,老公的妹妹穿的比我還像新娘兽泣。我一直安慰自己因篇,他們只是感情好羹奉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布沪停。 她就那樣靜靜地躺著煤辨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪木张。 梳的紋絲不亂的頭發(fā)上众辨,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音舷礼,去河邊找鬼鹃彻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妻献,可吹牛的內(nèi)容都是我干的蛛株。 我是一名探鬼主播团赁,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼谨履!你這毒婦竟也來了欢摄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤笋粟,失蹤者是張志新(化名)和其女友劉穎怀挠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體害捕,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绿淋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尝盼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吞滞。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖盾沫,靈堂內(nèi)的尸體忽然破棺而出冯吓,到底是詐尸還是另有隱情,我是刑警寧澤疮跑,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站凸舵,受9級(jí)特大地震影響祖娘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啊奄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一渐苏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧菇夸,春花似錦琼富、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至择诈,卻和暖如春械蹋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羞芍。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工哗戈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荷科。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓唯咬,卻偏偏與公主長(zhǎng)得像纱注,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胆胰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • title: JavaScript的歷史layout: pagecategory: introductiondat...
    ichengzi閱讀 4,452評(píng)論 0 23
  • 組織:中國(guó)互動(dòng)出版網(wǎng)(http://www.china-pub.com/) RFC文檔中文翻譯計(jì)劃(http://...
    Palomar閱讀 1,573評(píng)論 0 6
  • 8. 方法定義(Method Definitions) 通用的HTTP/1.0的方法集將在下面定義狞贱,雖然該方法集可...
    Palomar閱讀 3,170評(píng)論 0 2
  • JavaScript語言的歷史 來自《JavaScript 標(biāo)準(zhǔn)參考教程(alpha)》,by 阮一峰 目錄 Ja...
    Seachal閱讀 1,003評(píng)論 2 5
  • 文/朵朵魚 01 二月的尾巴煮剧,云南天氣已經(jīng)如春天般斥滤。英子和閨蜜三人終于如愿來到向往已久的云南。 今天是她們?cè)诖罄淼?..
    朵朵魚閱讀 592評(píng)論 4 11