HTTP協(xié)議

1.簡介

? HTTP協(xié)議(Hyper Text Transfer Protocol,超文本傳輸協(xié)議),是用于從萬維網(wǎng)(WWW:World

? ? Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議其兴。?

? HTTP基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)顶瞒。?

? HTTP基于客戶端/服務(wù)端(C/S)架構(gòu)模型,通過一個(gè)可靠的鏈接來交換信息忌警,是一個(gè)無狀態(tài)的請求/響應(yīng)協(xié)議搁拙。?

2.特點(diǎn)

? ? ? (1)HTTP是無連接:無連接的含義是限制每次連接只處理一個(gè)請求。服務(wù)器處理完客戶的請求法绵,并收到客戶的應(yīng)答后箕速,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間朋譬。?

? ? ? (2)HTTP是媒體獨(dú)立的:只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容盐茎,任何類型的數(shù)據(jù)都可以通過HTTP發(fā)送♂阌客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型字柠。?

? ? ? (3)HTTP是無狀態(tài):無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息狡赐,則它必須重傳块仆,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大奸柬。另一方面豆胸,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快衬廷。?

2.通信流程

4.消息結(jié)構(gòu)

? ? HTTP使用統(tǒng)一資源標(biāo)識(shí)符(Uniform Resource Identifiers,

? ? ? URI)來傳輸數(shù)據(jù)和建立連接。一旦建立連接后搀擂,數(shù)據(jù)消息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴(kuò)展(MIME)[RFC2045]來傳送西潘。?

? 客戶端請求消息:請求行、請求頭部哨颂、空行和請求數(shù)據(jù)喷市。?

? ? ? ? ? ? ? ? 1? ? ? ?

? ? ? ? ? ? ? ? 2? ? ? ?

? ? ? ? ? ? ? ? 3? ? ? ?

? ? ? ? ? ? ? ? 4? ? ? ?

? ? ? ? ? ? ? ? ? GET /hello.txt HTTP/1.1?? ? ? ?

? ? ? ? ? ? ? ? ? User-Agent: curl/7.16.3 libcurl/7.16.3?? ? ? ?

? ? ? ? ? ? ? ? ? OpenSSL/0.9.7l zlib/1.2.3?? ? ? ?

? ? ? ? ? ? ? ? ? Host: www.example.com Accept-Language: en, mi? ? ? ?

? 服務(wù)端響應(yīng)消息:狀態(tài)行、消息報(bào)頭威恼、空行和響應(yīng)正文品姓。?

? ? ? ? ? ? ? ? 1? ? ? ?

? ? ? ? ? ? ? ? 2? ? ? ?

? ? ? ? ? ? ? ? 3? ? ? ?

? ? ? ? ? ? ? ? 4? ? ? ?

? ? ? ? ? ? ? ? 5? ? ? ?

? ? ? ? ? ? ? ? 6? ? ? ?

? ? ? ? ? ? ? ? 7? ? ? ?

? ? ? ? ? ? ? ? 8? ? ? ?

? ? ? ? ? ? ? ? 9? ? ? ?

? ? ? ? ? ? ? ? ? HTTP/1.1 200 OK? ? ? ?

? ? ? ? ? ? ? ? ? Date: Mon, 27 Jul 2009 12:28:53 GMT? ? ? ?

? ? ? ? ? ? ? ? ? Server: Apache? ? ? ?

? ? ? ? ? ? ? ? ? Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT? ? ? ?

? ? ? ? ? ? ? ? ? ETag:?"34aa387-d-1568eb00"? ? ? ?

? ? ? ? ? ? ? ? ? Accept-Ranges: bytes? ? ? ?

? ? ? ? ? ? ? ? ? Content-Length: 51? ? ? ?

? ? ? ? ? ? ? ? ? Vary: Accept-Encoding? ? ? ?

? ? ? ? ? ? ? ? ? Content-Type: text/plain? ? ? ?

5.請求方法

? ? GET 請求指定的頁面信息寝并,并返回實(shí)體主體。?

? ? HEAD ? ?類似于get請求缭黔,只不過返回的響應(yīng)中沒有具體的內(nèi)容食茎,用于獲取報(bào)頭?

? ? POST

? ? ? ?向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中馏谨。POST請求可能會(huì)導(dǎo)致新的資源的建立和/或已有資源的修改。?

? ? PUT 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容附迷。?

? ? DELETE ?請求服務(wù)器刪除指定的頁面惧互。?

? ? CONNECT HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。?

? ? OPTIONS 允許客戶端查看服務(wù)器的性能喇伯。?

? ? TRACE ? 回顯服務(wù)器收到的請求喊儡,主要用于測試或診斷。?

6.狀態(tài)碼

HTTP狀態(tài)碼分類

? ? 1** 信息稻据,服務(wù)器收到請求艾猜,需要請求者繼續(xù)執(zhí)行操作?

? ? 2** 成功,操作被成功接收并處理?

? ? 3** 重定向捻悯,需要進(jìn)一步的操作以完成請求?

? ? 4** 客戶端錯(cuò)誤匆赃,請求包含語法錯(cuò)誤或無法完成請求?

? ? 5** 服務(wù)器錯(cuò)誤,服務(wù)器在處理請求的過程中發(fā)生了錯(cuò)?

HTTP狀態(tài)碼列表

? ? 100 Continue ? ?繼續(xù)今缚∷懔客戶端應(yīng)繼續(xù)其請求?

? ? 101 Switching Protocols

? ? ? 切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議姓言。只能切換到更高級(jí)的協(xié)議瞬项,例如,切換到HTTP的新版本協(xié)議?

200 OK ?請求成功何荚。一般用于GET與POST請求

? ? 201 Created 已創(chuàng)建囱淋。成功請求并創(chuàng)建了新的資源?

? ? 202 Accepted ? ?已接受。已經(jīng)接受請求餐塘,但未處理完成?

? ? 203 Non-Authoritative Information ?

? ? ? 非授權(quán)信息妥衣。請求成功。但返回的meta信息不在原始的服務(wù)器唠倦,而是一個(gè)副本?

? ? 204 No Content

? ? ? ?無內(nèi)容称鳞。服務(wù)器成功處理,但未返回內(nèi)容稠鼻。在未更新網(wǎng)頁的情況下冈止,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔?

? ? 205 Reset Content ?

? ? ? 重置內(nèi)容。服務(wù)器處理成功候齿,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖熙暴」胧簦可通過此返回碼清除瀏覽器的表單域?

? ? 206 Partial Content 部分內(nèi)容。服務(wù)器成功處理了部分GET請求?

? ? 300 Multiple Choices ?

? ? ? ?多種選擇周霉。請求的資源可包括多個(gè)位置掂器,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇?

301 Moved Permanently ? 永久移動(dòng)。請求的資源已被永久的移動(dòng)到新URI俱箱,返回信息會(huì)包括新的URI国瓮,瀏覽器會(huì)自動(dòng)定向到新URI。今后任何新的請求都應(yīng)使用新的URI代替

? ? 302 Found ? 臨時(shí)移動(dòng)狞谱。與301類似乃摹。但資源只是臨時(shí)被移動(dòng)「疲客戶端應(yīng)繼續(xù)使用原有URI?

? ? 303 See Other ? 查看其它地址孵睬。與301類似。使用GET和POST請求查看?

304 Not Modified ? ?未修改伶跷。所請求的資源未修改掰读,服務(wù)器返回此狀態(tài)碼時(shí),不會(huì)返回任何資源叭莫〉讣客戶端通常會(huì)緩存訪問過的資源,通過提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源

? ? 305 Use Proxy ? 使用代理食寡。所請求的資源必須通過代理訪問?

? ? 306 Unused ?已經(jīng)被廢棄的HTTP狀態(tài)碼?

307 Temporary Redirect ?臨時(shí)重定向雾狈。與302類似。使用GET請求重定向

? ? 400 Bad Request 客戶端請求的語法錯(cuò)誤抵皱,服務(wù)器無法理解?

? ? 401 Unauthorized ? ?請求要求用戶的身份認(rèn)證?

? ? 402 Payment Required ? ?保留善榛,將來使用?

? ? 403 Forbidden ? 服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求?

404 Not Found ? 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)呻畸。通過此代碼移盆,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請求的資源無法找到"的個(gè)性頁面

? ? 405 Method Not Allowed ?客戶端請求中的方法被禁止?

? ? 406 Not Acceptable ?服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求?

? ? 407 Proxy Authentication Required ?

? ? ? 請求要求代理的身份認(rèn)證,與401類似伤为,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán)?

? ? 408 Request Time-out ? ?服務(wù)器等待客戶端發(fā)送的請求時(shí)間過長咒循,超時(shí)?

? ? 409 Conflict ? ?服務(wù)器完成客戶端的PUT請求是可能返回此代碼,服務(wù)器處理請求時(shí)發(fā)生了沖突?

? ? 410 Gone ?

? ? ? ?客戶端請求的資源已經(jīng)不存在绞愚。410不同于404叙甸,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計(jì)人員可通過301代碼指定資源的新位置?

? ? 411 Length Required 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息?

? ? 412 Precondition Failed 客戶端請求信息的先決條件錯(cuò)誤?

? ? 413 Request Entity Too Large ?

? ? ? ?由于請求的實(shí)體過大位衩,服務(wù)器無法處理裆蒸,因此拒絕請求。為防止客戶端的連續(xù)請求糖驴,服務(wù)器可能會(huì)關(guān)閉連接僚祷。如果只是服務(wù)器暫時(shí)無法處理佛致,則會(huì)包含一個(gè)Retry-After的響應(yīng)信息?

? ? 414 Request-URI Too Large ? 請求的URI過長(URI通常為網(wǎng)址),服務(wù)器無法處理?

? ? 415 Unsupported Media Type ?服務(wù)器無法處理請求附帶的媒體格式?

? ? 416 Requested range not satisfiable 客戶端請求的范圍無效?

? ? 417 Expectation Failed ?服務(wù)器無法滿足Expect的請求頭信息?

500 Internal Server Error ? 服務(wù)器內(nèi)部錯(cuò)誤辙谜,無法完成請求

? ? 501 Not Implemented 服務(wù)器不支持請求的功能俺榆,無法完成請求?

? ? 502 Bad Gateway 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,從遠(yuǎn)端服務(wù)器接收到了一個(gè)無效的請求?

? ? 503 Service Unavailable

? ? ? 由于超載或系統(tǒng)維護(hù)装哆,服務(wù)器暫時(shí)的無法處理客戶端的請求罐脊。延時(shí)的長度可包含在服務(wù)器的Retry-After頭信息中?

? ? 504 Gateway Time-out ? ?充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請求?

? ? 505 HTTP Version not supported ?服務(wù)器不支持請求的HTTP協(xié)議的版本蜕琴,無法完成處理?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爹殊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奸绷,更是在濱河造成了極大的恐慌,老刑警劉巖层玲,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件号醉,死亡現(xiàn)場離奇詭異,居然都是意外死亡辛块,警方通過查閱死者的電腦和手機(jī)畔派,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來润绵,“玉大人线椰,你說我怎么就攤上這事〕九危” “怎么了憨愉?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卿捎。 經(jīng)常有香客問我配紫,道長,這世上最難降的妖魔是什么午阵? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任躺孝,我火速辦了婚禮,結(jié)果婚禮上底桂,老公的妹妹穿的比我還像新娘植袍。我一直安慰自己,他們只是感情好籽懦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布于个。 她就那樣靜靜地躺著,像睡著了一般猫十。 火紅的嫁衣襯著肌膚如雪览濒。 梳的紋絲不亂的頭發(fā)上呆盖,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機(jī)與錄音贷笛,去河邊找鬼应又。 笑死,一個(gè)胖子當(dāng)著我的面吹牛乏苦,可吹牛的內(nèi)容都是我干的株扛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼汇荐,長吁一口氣:“原來是場噩夢啊……” “哼洞就!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掀淘,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旬蟋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后革娄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倾贰,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年拦惋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匆浙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厕妖,死狀恐怖首尼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情言秸,我是刑警寧澤软能,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站井仰,受9級(jí)特大地震影響埋嵌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俱恶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一雹嗦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧合是,春花似錦了罪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至难礼,卻和暖如春娃圆,著一層夾襖步出監(jiān)牢的瞬間玫锋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工讼呢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撩鹿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓悦屏,卻偏偏與公主長得像节沦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子础爬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355

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