HTTP知識點

HTTP是什么?

超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應(yīng)協(xié)議,它通常運行在TCP之上霞势。它指定了客戶端可能發(fā)送給服務(wù)器什么樣的消息以及得到什么樣的響應(yīng)。請求和響應(yīng)消息的頭以ASCII形式給出斑鸦;而消息內(nèi)容則具有一個類似MIME的格式愕贡。這個簡單模型是早期Web成功的有功之臣,因為它使開發(fā)和部署非常地直截了當(dāng)巷屿。

HTTP工作原理

HTTP是基于客戶/服務(wù)器模式固以,且面向連接的。典型的HTTP事務(wù)處理有如下的過程:

  • 客戶與服務(wù)器建立連接攒庵;
  • 客戶向服務(wù)器提出請求嘴纺;
  • 服務(wù)器接受請求,并根據(jù)請求返回相應(yīng)的文件作為應(yīng)答浓冒;
  • 客戶與服務(wù)器關(guān)閉連接栽渴。

HTTP報文格式

HTTP報文由從客戶機(jī)到服務(wù)器的請求和從服務(wù)器到客戶機(jī)的響應(yīng)構(gòu)成。
請求報文格式如下:

  • 請求行 - 通用信息頭 - 請求頭 - 實體頭 - 報文主體
  • 請求行以方法字段開始稳懒,后面分別是URL字段和HTTP協(xié)議版本字段答捕,并以CRLF結(jié)尾技健。SP是分隔符。除了在最后的CRLF序列中CF和LF是必- 需的之外,其他都可以不要樟遣。

應(yīng)答報文格式如下:

  • 狀態(tài)行 - 通用信息頭 - 響應(yīng)頭 - 實體頭 - 報文主體

  • 狀態(tài)碼元由3位數(shù)字組成之宿,表示請求是否被理解或被滿足浮禾。原因分析是對原文的狀態(tài)碼作簡短的描述上鞠,狀態(tài)碼用來支持自動操作,而原因分析用來供用戶使用顶岸∏徽茫客戶機(jī)無需用來檢查或顯示語法。

  • 通用信息頭:

Cache-Control: 控制緩存
Connection: 管理連接
Date:報文創(chuàng)建時間
Pragma: 報文指令
Upgrade: 升級協(xié)議
Via: 代理服務(wù)器相關(guān)信息
等...

  • 請求報文頭:

Accept:可接受的媒體類型
Accept-Charset: 優(yōu)先字符集
Accept-Language: 優(yōu)先的語言(比如中文辖佣、英文的)
Accept-Encoding: 優(yōu)先的內(nèi)容編碼
Authorization:web認(rèn)真信息
Host:請求資源所在服務(wù)器地址
If-Match: 比較實體標(biāo)記
If-None-Match: 比較實體標(biāo)記
If-Range: 資源未更新時發(fā)送實體Byte的范圍請求
Referer: 對請求中的URI的原始獲取方
User-Agent:HTTP客戶端程序信息
等...

  • 響應(yīng)報文頭:

Accpet-Range: 是否接字節(jié)范圍請求
Age:推算資源創(chuàng)建經(jīng)過時間
ETag:資源匹配信息
Location: 令客戶端重定向至指定URI
Server:HTTP服務(wù)起的安裝信息
Vary:代理服務(wù)器的緩存管理信息
WWW-Authenticate:服務(wù)器對客戶端的認(rèn)證信息

  • 實體報文頭:

Allow: 資源科支持HTTP方法
Content-Encoding: 實體應(yīng)用的編碼方式
Content-Language: 實體的使用語言
Contet-MD5:實體報文摘要
Content-Range:實體主題的位置范圍
Content-Type:實體主體的媒體類型
Expires: 實體主體過期日期時間
Last-Modified:資源最后修改日期
等等...

HTTP狀態(tài)碼:

狀態(tài)碼 狀態(tài)碼英文名稱 中文描述
100 Continue 繼續(xù)霹抛。 客戶端應(yīng)繼續(xù)其請求
101 Switching Protocols 切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議卷谈。只能切換到更高級的協(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ù)器,而是一個副本
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 多種選擇甲抖。請求的資源可包括多個位置,相應(yīng)可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇
301 Moved Permanently 永久移動心铃。請求的資源已被永久的移動到新URI准谚,返回信息會包括新的URI,瀏覽器會自動定向到新URI去扣。今后任何新的請求都應(yīng)使用新的URI代替
302 Found 臨時移動柱衔。與301類似。但資源只是臨時被移動愉棱∷纛恚客戶端應(yīng)繼續(xù)使用原有URI
303 See Other 查看其它地址。與301類似奔滑。使用GET和POST請求查看
304 Not Modified 未修改艾岂。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時朋其,不會返回任何資源王浴。客戶端通常會緩存訪問過的資源令宿,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源
305 Use Proxy 使用代理叼耙。所請求的資源必須通過代理訪問
306 Unused 已經(jīng)被廢棄的HTTP狀態(tài)碼
307 Temporary Redirect 臨時重定向。與302類似粒没。使用GET請求重定向
400 Bad Request 客戶端請求的語法錯誤筛婉,服務(wù)器無法理解
401 Unauthorized 請求要求用戶的身份認(rèn)證
402 Payment Required 保留,將來使用
403 Forbidden 服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求
404 Not Found 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)爽撒。通過此代碼入蛆,網(wǎng)站設(shè)計人員可設(shè)置"您所請求的資源無法找到"的個性頁面
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ā)送的請求時間過長哨毁,超時
409 Conflict 服務(wù)器完成客戶端的 PUT 請求時可能返回此代碼,服務(wù)器處理請求時發(fā)生了沖突
410 Gone 客戶端請求的資源已經(jīng)不存在源武。410不同于404扼褪,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計人員可通過301代碼指定資源的新位置
411 Length Required 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息
412 Precondition Failed 客戶端請求信息的先決條件錯誤
413 Request Entity Too Large 由于請求的實體過大粱栖,服務(wù)器無法處理话浇,因此拒絕請求。為防止客戶端的連續(xù)請求闹究,服務(wù)器可能會關(guān)閉連接幔崖。如果只是服務(wù)器暫時無法處理,則會包含一個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)部錯誤赏寇,無法完成請求
501 Not Implemented 服務(wù)器不支持請求的功能,無法完成請求
502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時价认,從遠(yuǎn)程服務(wù)器接收到了一個無效的響應(yīng)
503 Service Unavailable 由于超載或系統(tǒng)維護(hù)嗅定,服務(wù)器暫時的無法處理客戶端的請求。延時的長度可包含在服務(wù)器的Retry-After頭信息中
504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器刻伊,未及時從遠(yuǎn)端服務(wù)器獲取請求
505 HTTP Version not supported 服務(wù)器不支持請求的HTTP協(xié)議的版本露戒,無法完成處理
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捶箱,隨后出現(xiàn)的幾起案子智什,更是在濱河造成了極大的恐慌,老刑警劉巖丁屎,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荠锭,死亡現(xiàn)場離奇詭異,居然都是意外死亡晨川,警方通過查閱死者的電腦和手機(jī)证九,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來共虑,“玉大人愧怜,你說我怎么就攤上這事÷璋瑁” “怎么了拥坛?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵蓬蝶,是天一觀的道長。 經(jīng)常有香客問我猜惋,道長丸氛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任著摔,我火速辦了婚禮缓窜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谍咆。我一直安慰自己禾锤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布摹察。 她就那樣靜靜地躺著时肿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪港粱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天旦签,我揣著相機(jī)與錄音查坪,去河邊找鬼。 笑死宁炫,一個胖子當(dāng)著我的面吹牛偿曙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羔巢,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼望忆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了竿秆?” 一聲冷哼從身側(cè)響起启摄,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎幽钢,沒想到半個月后歉备,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡匪燕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年蕾羊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帽驯。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡龟再,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出尼变,到底是詐尸還是另有隱情利凑,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站截碴,受9級特大地震影響梳侨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜日丹,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一走哺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哲虾,春花似錦丙躏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汪诉,卻和暖如春废恋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扒寄。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工鱼鼓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人该编。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓迄本,卻偏偏與公主長得像,于是被迫代替她去往敵國和親课竣。 傳聞我的和親對象是個殘疾皇子嘉赎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

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

  • 一 、基礎(chǔ)概念 [https://github.com/CyC2018/CS-Notes/blob/master/...
    timothyue1閱讀 511評論 0 1
  • tcp/ip ip協(xié)議和ip地址需要區(qū)分 ip地址指具體地址 ip一般指ip協(xié)議于樟,是一種把數(shù)據(jù)包傳送給對方的協(xié)議 ...
    超級碼力閱讀 225評論 0 0
  • 最近互聯(lián)網(wǎng)這個圈子不是很太平公条,繼阿里縮招降薪,導(dǎo)致很多同學(xué)“被擁抱變化”之后迂曲,百度也宣布暫時停止社招了赃份。于是有人疾...
    Sheepy閱讀 4,669評論 6 47
  • HTTP協(xié)議 對于HTTP之前我自己了解的不是很多,雖然我的專業(yè)是網(wǎng)工......現(xiàn)在了解也還不晚奢米,這就整理了一些...
    WANG_M閱讀 495評論 0 2
  • 1.HTTP簡介 2. 計算機(jī)相互之間的通信 互聯(lián)網(wǎng)的關(guān)鍵技術(shù)就是TCP/IP協(xié)議抓韩。兩臺計算機(jī)之間的通信是通過TC...
    水水兔閱讀 108評論 0 0