HTTP 協(xié)議

HTTP協(xié)議是TCP/IP協(xié)議的一部分


  • HTTP數(shù)據(jù)(應(yīng)用層,客戶端請求)
  • TCP首部(傳輸層筏餐,對HTTP數(shù)據(jù)進(jìn)行分割處理,使得大數(shù)據(jù)更容易傳送)
  • IP首部(網(wǎng)絡(luò)層,地址相關(guān)信息)
  • 以太網(wǎng)首部(鏈路層)

  • IP協(xié)議:IP地址(可以改變)龙优、MAC地址(基本不變)
  • DNS協(xié)議:通過域名查找IP地址
  • URI:用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源;
  • URL:標(biāo)識(shí)資源地址
  • HTTP是無狀態(tài)的協(xié)議(即對發(fā)送過的請求或者相應(yīng)都不做持久化處理)(可以通過cookie技術(shù)解決狀態(tài)不保存問題)

  • 在首部字段的Host中保存著請求的網(wǎng)絡(luò)域名或IP地址
  • HTTP method
method 內(nèi)容
GET 獲取資源
POST 傳輸數(shù)據(jù)
PUT 傳輸文件(不太使用)
HEAD 獲取報(bào)文首部
DELETE 刪除文件(不太使用)
OPTIONS 詢問(服務(wù)器)支持的方法
TRACE 查詢發(fā)出去的請求如何被加工處理/篡改(危險(xiǎn)事秀,不常使用)
CONNET 要求用隧道協(xié)議連接代理(主要使用SSL/TLS協(xié)議把內(nèi)容機(jī)密后經(jīng)網(wǎng)絡(luò)隧道傳輸)
LINK 建立和資源之間的聯(lián)系
UNLINE 斷開連接關(guān)系

解決HTTP的非持久連接

  • 管線化(pipelining):不用等待響應(yīng)亦可發(fā)送下一個(gè)請求
  • Cookie:
    • 服務(wù)器在響應(yīng)時(shí)通知客戶端保存Cookie
    • 客戶端在再次請求時(shí)會(huì)自動(dòng)將Cookie內(nèi)容加入請求報(bào)文(request-message)

首部之間的換行符是\r\n彤断;首部與主體之間的換行符是\r\n\r\n(即之間有一個(gè)空行)

Request Response
報(bào)文首部(請求行等) 報(bào)文首部(狀態(tài)行等)
空行(CR+LF) 空行(CR+LF)
報(bào)文主體 報(bào)文主體
  • 報(bào)文(message)
  • 實(shí)體(entity)
  • 范圍請求(Range Request):在請求中指定需求的范圍
  • 內(nèi)容協(xié)商(Content Negotiation):響應(yīng)時(shí)提供給客戶端最為合適的資源

狀態(tài)碼

狀態(tài)碼 類別 原因
1XX Information(信息性狀態(tài)碼) 接收到的請求正在處理
2XX Success(成功狀態(tài)碼) 請求正常處理完畢
3XX Redirection(重定向狀態(tài)碼) 需要進(jìn)行附加操作以完成請求
4XX Client Error (客戶端錯(cuò)誤狀態(tài)碼) 服務(wù)器無法處理請求
5XX Server Error (服務(wù)器錯(cuò)誤狀態(tài)碼) 服務(wù)器處理請求出錯(cuò)

具體狀態(tài)碼

狀態(tài)碼 名稱 解釋
200 OK
204 No Content
206 Partial Content
301 Moved Permanently 請求的資源已被分配新的URI(需要更新標(biāo)簽)
302 Found 臨時(shí)性分配到新的URI
303 See Other 應(yīng)當(dāng)采用GET方法獲取資源
304 Not Modified 為滿足請求條件,返回中不包含任何相應(yīng)的主體部分
307 Temporary Redirect
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error 服務(wù)器出現(xiàn)問題
503 Service Unavailable 服務(wù)器忙

  • 代理:具有轉(zhuǎn)發(fā)功能的應(yīng)用程序
    • 源服務(wù)器 vs 代理服務(wù)器
    • 緩存代理:緩存源服務(wù)器響應(yīng)資源
    • 透明代理:不對報(bào)文做任何加工
  • 網(wǎng)關(guān):轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器
  • 隧道:客戶端和服務(wù)器間進(jìn)行中轉(zhuǎn)(以保持雙方的連接)

HTTP首部字段

首部字段
通用首部字段 請求報(bào)文和響應(yīng)報(bào)文都會(huì)使用的首部
請求首部字段
響應(yīng)首部字段
實(shí)體首部字段

通用首部字段

首部字段 解釋
Cache-Control 操作緩存工作機(jī)制
Connection 控制不再轉(zhuǎn)發(fā)給代理的首部字段
管理持久連接
Date 表明創(chuàng)建HTTP報(bào)文的日期和時(shí)間
Trailer 說明在報(bào)文主體后記錄了哪些首部字段
Transfer-Encoding 規(guī)定了傳輸報(bào)文主體時(shí)采用的編碼方式
Upgrade 檢測是否可以使用更高版本的協(xié)議進(jìn)行通信
Via 追蹤傳輸路徑(常和TRACE方法一起使用)
Warning

請求首部字段

首部字段 解釋
Accept 通知服務(wù)器用戶代理(如瀏覽器)能夠處理的媒體類型及相對優(yōu)先級(jí)
Accept-Charset 通知服務(wù)器用戶代理支持的字符集類型及相對優(yōu)先級(jí)
Accept-Encoding 通知服務(wù)器用戶代理支持的內(nèi)容編碼及相對優(yōu)先級(jí)
Accept-Language 通知服務(wù)器用戶代理能夠處理的自然語言集及相對優(yōu)先級(jí)
Authorization 告知服務(wù)器用戶代理的認(rèn)證信息(證書值)
Expect 告知服務(wù)器期望出現(xiàn)的某種特定行為
From 告知服務(wù)器用戶代理的用戶電子郵箱
Host 區(qū)分運(yùn)行在同一服務(wù)器(相同IP)下的不同虛擬主機(jī)
If-xxx 服務(wù)器只執(zhí)行判定條件為真的請求
Max-Forwards 指定可經(jīng)過的服務(wù)器的最大數(shù)目
Range 告知服務(wù)器請求資源的指定范圍
Referer 告知服務(wù)器請求的原始資源的URI(處于安全考慮易迹,一般不用)
User-Agent 將創(chuàng)建請求的瀏覽器和用戶代理名稱等信息傳達(dá)給服務(wù)器

響應(yīng)首部字段

首部字段 解釋
Accept-Ranges 告知客戶端是否能處理范圍請求
Age 告知客戶端源服務(wù)器多久前創(chuàng)建了響應(yīng)
ETag
Location 配合3XX(Redirection)的響應(yīng)宰衙,提供重定向的URI
Retry-After 告知客戶端應(yīng)該多久后再次發(fā)送請求
Server
Vary 對緩存進(jìn)行控制

實(shí)體首部字段

首部字段 解釋
Allow 同時(shí)客戶端能夠支持Request-URI指定資源的所有HTTP method
Content-Encoding 告知客戶端服務(wù)器對實(shí)體的主體部分選用的內(nèi)容編碼方式
Content-Language 告知客戶端實(shí)體的主題使用的自然語言
Content-Length 實(shí)體主體的大小(單位是字節(jié))
Content-Loacation 報(bào)文主體返回資源的對應(yīng)URI(同首部字段Location不一樣)
Content-Range
Content-Type 實(shí)體主體內(nèi)對象的媒體類型
Expires 告知客戶端資源的實(shí)效日期
Last-Modified 資源最后一次修改時(shí)間

Cookie服務(wù)的首部字段

首部字段名 說明 首部類型
Set-Cookie 開始狀態(tài)管理所使用的Cookie信息 響應(yīng)首部字段
Cookie 服務(wù)器接收到的Cookie信息 請求首部字段

HTTP協(xié)議的不足

  • 通信使用明文睹欲,內(nèi)容可能會(huì)被竊聽
    • 可以使用SSL(Secure Socket Layer)或者TLS(Transport Layer Security)的組合加密HTTP的通信內(nèi)容
    • HTTP和SSL的組合被稱為HTTPS(HTTP Secure)或者HTTP over SSL
  • 不驗(yàn)證通信方的身份供炼,因此可能遭遇偽裝
    • 服務(wù)器偽裝、客戶端偽裝窘疮、DoS(Denial of Service)
    • SSL可以確定通信的雙方
  • 無法證明報(bào)文的完整性袋哼,所以可能遭受篡改
    • 沒有辦法確認(rèn)發(fā)出的請求/響應(yīng)和接收到的請求/響應(yīng)時(shí)前后相同的:MITM(Man-in-the-Middle attack)

HTTPS=HTTP+加密+認(rèn)證+完整性保護(hù)
SSL是當(dāng)今世界上應(yīng)用最為廣發(fā)的網(wǎng)絡(luò)安全技術(shù)


以上內(nèi)容皆出自《圖解HTTP》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市考余,隨后出現(xiàn)的幾起案子先嬉,更是在濱河造成了極大的恐慌,老刑警劉巖楚堤,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疫蔓,死亡現(xiàn)場離奇詭異含懊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)衅胀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門岔乔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人滚躯,你說我怎么就攤上這事雏门。” “怎么了掸掏?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵茁影,是天一觀的道長。 經(jīng)常有香客問我丧凤,道長募闲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任愿待,我火速辦了婚禮浩螺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘仍侥。我一直安慰自己要出,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布农渊。 她就那樣靜靜地躺著患蹂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腿时。 梳的紋絲不亂的頭發(fā)上况脆,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機(jī)與錄音批糟,去河邊找鬼。 笑死看铆,一個(gè)胖子當(dāng)著我的面吹牛徽鼎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弹惦,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼否淤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棠隐?” 一聲冷哼從身側(cè)響起石抡,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎助泽,沒想到半個(gè)月后啰扛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚎京,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年隐解,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞍帝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡煞茫,死狀恐怖帕涌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情续徽,我是刑警寧澤蚓曼,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站钦扭,受9級(jí)特大地震影響纫版,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜土全,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一捎琐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裹匙,春花似錦瑞凑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至惰匙,卻和暖如春技掏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背项鬼。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工哑梳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绘盟。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓鸠真,卻偏偏與公主長得像,于是被迫代替她去往敵國和親龄毡。 傳聞我的和親對象是個(gè)殘疾皇子吠卷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

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