Web基礎(chǔ)復(fù)習(xí)——HTTP協(xié)議相關(guān)

HTTP協(xié)議歷史演變

Hypertext Transfer Protocol征炼,超文本傳輸協(xié)議蟆湖。
規(guī)定了瀏覽器和萬維網(wǎng)服務(wù)器之間相互通信的規(guī)則。
是客戶端和服務(wù)器之間請求和應(yīng)答的標(biāo)準(zhǔn)。
HTTP是基于TCP/IP協(xié)議的應(yīng)用層協(xié)議,無狀態(tài)陌兑,默認(rèn)使用80端口。

HTTP/0.9

這是最早的版本由捎。

  • 只有一個 GET 命令。
  • 服務(wù)器只能回應(yīng)HTML格式的字符串饿凛,不能回應(yīng)別的格式狞玛。

請求格式:
GET /index.html
表示TCP連接建立后,客戶端向服務(wù)器請求網(wǎng)頁index.html涧窒。

HTTP/1.0

  • 命令增加了 POSTHEAD心肪。
  • 可以傳輸任何形式的內(nèi)容,包括圖像纠吴、視頻等硬鞍。
  • 新增狀態(tài)碼、緩存戴已、內(nèi)容編碼等功能固该。

請求格式:

GET /HTTP/1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: */*

第一行是請求命令,必須在尾部添加協(xié)議版本

響應(yīng)格式:

協(xié)議版本 狀態(tài)碼 狀態(tài)描述
頭信息

數(shù)據(jù)

頭信息與數(shù)據(jù)中間的空行是本身就有的糖儡。

HTTP/1.1

  • 引入了持久連接伐坏。TCP連接默認(rèn)不關(guān)閉,可被多個請求復(fù)用握联,不需要聲明Connection:keep-alive桦沉;客戶端與服務(wù)器發(fā)現(xiàn)對方一段時間無活動,就可以主動關(guān)閉連接金闽;最好在客戶端最后一個請求時纯露,發(fā)送Connection:close,明確要求服務(wù)器關(guān)閉TCP連接代芜。
  • 引入了管道機(jī)制埠褪。在同一個TCP連接中,客戶端可以同時發(fā)送多個請求,而不需要等待上一個請求被回應(yīng)之后再發(fā)送新的請求组橄。但是服務(wù)器還是按請求的先后順序回應(yīng)請求荞膘。
  • 增加了動詞方法PUTPATH玉工、HEAD羽资、OPTIONSDELETE遵班。
  • 客戶端請求頭增加了Host字段屠升,制定服務(wù)器的域名。
  • 頭信息是文本(ASCII編碼)狭郑,數(shù)據(jù)體既可以是文本也可以是二進(jìn)制腹暖。

這個版本的目前還是很流行的。

HTTP/2

  • 頭信息和數(shù)據(jù)體都是二進(jìn)制翰萨,統(tǒng)稱為“幀”脏答。

  • 多工
    什么是多工
  • 數(shù)據(jù)包不按順序發(fā)送,同一個連接里連續(xù)的數(shù)據(jù)包可能屬于不同的響應(yīng)亩鬼。每個請求或響應(yīng)的所有數(shù)據(jù)包稱為一個數(shù)據(jù)流

  • HTTP/2通過發(fā)送信號RST_STREAM幀取消數(shù)據(jù)流殖告,不需要關(guān)閉TCP連接。

  • 將頭信息使用gzipcompress壓縮后發(fā)送雳锋,客戶端與服務(wù)器同時維護(hù)一張頭信息表黄绩,通過發(fā)送索引號,來提高請求速度玷过。

URL

Universal Resource Locator爽丹,統(tǒng)一資源定位符,即網(wǎng)頁地址辛蚊、因特網(wǎng)上標(biāo)注的資源的地址粤蝎。

一般形式:
<URL訪問形式>://<主機(jī)>:<端口>/<路徑>
例如: http://asdf.com:80/index.html

URL訪問方式: ftp、http嚼隘、news
主機(jī): 網(wǎng)站的域名诽里、IP地址(必須有)
端口: http固定端口為80(可省)
路徑: 資源的位置(可史捎肌)

請求

一般格式:

請求行

請求方法:
GET:讀取由URL所標(biāo)識的信息谤狡;
POST:給服務(wù)器添加信息;
OPTION:請求一些選項的信息卧檐;
HEAD:請求讀取URL所標(biāo)識信息的首部墓懂;
PUT:在指明的URL下存儲一個文檔;
DELETE:刪除指名的URL所標(biāo)志的資源霉囚;
TRACE:用來進(jìn)行環(huán)回測試的請求報文捕仔;
CONNECT:用于代理服務(wù)器。

URL字段: 路徑,若URL中未給出路徑榜跌,則當(dāng)它作為請求URL時闪唆,必須以“/”的形式給出,通常這個工作瀏覽器自動完成钓葫。

版本: 目前HTTP協(xié)議用得最多的是1.1版本悄蕾。

請求頭部

由關(guān)鍵字/值對組成,每行一對础浮,關(guān)鍵字和值用英文冒號分割帆调。請求頭部通知服務(wù)器有關(guān)客戶端請求的信息。

空行: 發(fā)送回車符和換行符豆同,通知服務(wù)器一下不再有請求頭番刊。

常用請求頭 含義
Accept 指定客戶端接受哪些類型的信息
Accept-Encoding 指定可接受的內(nèi)容編碼
Accept-Language 指定一種自然語言
Host 指定被請求資源的Internet主機(jī)和端口號
User-Agent 允許客戶端將它的操作系統(tǒng)、瀏覽器和其它屬性告訴服務(wù)器
Referer 上一個網(wǎng)頁的URL

示例:

請求數(shù)據(jù)

不在GET方法中使用影锈,在POST方法中使用芹务。POST方法適用于需要客戶填寫表單的場合。與請求數(shù)據(jù)相關(guān)的最常使用的請求頭是Content-Type和Content-Length鸭廷。

響應(yīng)

一般格式:

狀態(tài)行

版本: 常用HTTP/1.1版本

狀態(tài)碼: 由三位數(shù)字組成
五種可能取值:

取值 含義
1xx 保留
2xx 表示請求成功地接受
3xx 要完成請求必須進(jìn)一步細(xì)化請求
4xx 客戶錯誤
5xx 服務(wù)器錯誤
常見狀態(tài)描述短語 含義
200 OK 客戶端請求成功
400 Bad Request 客戶端請求有語法錯誤锄禽,不能被服務(wù)器所理解
401 Unauthorized 請求未經(jīng)授權(quán)
403 Forbidden 服務(wù)器收到請求,但是拒絕提供服務(wù)
404 Not Found 請求資源不存在
500 Internal Server Error 服務(wù)器發(fā)生不可預(yù)期的錯誤
503 Sever Unavailable 服務(wù)器當(dāng)前不能處理客戶端的請求

首部行

包含了服務(wù)器和報文主題的信息靴姿。

空行

最后一個響應(yīng)頭之后是一個空行,發(fā)送回車符和換行符磁滚,通知客戶端以下是報文實(shí)體佛吓。

響應(yīng)數(shù)據(jù)

包含了用戶要得到的數(shù)據(jù)或是錯誤信息。

常用響應(yīng)頭 含義
Location 重定向接收者到一個新的位置
Server 包含服務(wù)器用于處理請求的軟件信息
WWW-Authenticate 必須被包含在401(未授權(quán)的)響應(yīng)消息中垂攘,請求服務(wù)器對收到401響應(yīng)的客戶端進(jìn)行驗證

示例:

HTTP代理服務(wù)器

可以代表瀏覽器發(fā)出HTTP請求维雇。
將最近的一些請求和響應(yīng)暫存在本地磁盤中,當(dāng)與暫存的請求相同的新請求到達(dá)時晒他,代理服務(wù)器就將暫存的響應(yīng)發(fā)出去吱型,不需要按URL的地址再去因特網(wǎng)訪問該資源。

可在客戶和服務(wù)器端工作陨仅,也可以在中間系統(tǒng)上工作津滞。
過程

HTTP協(xié)議與HTTPS協(xié)議的區(qū)別

HTTPS為HTTP的升級版,比HTTP協(xié)議更加安全灼伤。安全基礎(chǔ)為SSL触徐,即在HTTP下加入SSL層。HTTPS通過安全傳輸機(jī)制進(jìn)行傳送數(shù)據(jù)狐赡。保證傳送的數(shù)據(jù)的隱秘性撞鹉、完整性,降低非侵入性攔截攻擊的可能性。

HTTP HTTPS
傳輸方式 明文傳輸 SSL加密傳輸
連接方式 80端口連接 443端口連接
所需證書 不需要 到ca申請證書鸟雏,免費(fèi)很少享郊,需要交費(fèi),優(yōu)秀而由Web容器提供孝鹊,如TOMCAT
連接特點(diǎn) 相對簡單炊琉、無狀態(tài) 由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議

其他需要了解的

Cookie
瀏覽器第一次訪問服務(wù)器時惶室,服務(wù)器發(fā)送到瀏覽器并保存在本地的一小塊數(shù)據(jù)温自,在瀏覽器下一次向同一服務(wù)器發(fā)起請求時被攜帶并發(fā)送到服務(wù)器上。
用于告訴服務(wù)端皇钞,兩個請求是否來自同一瀏覽器悼泌。

  • 敏感信息不應(yīng)通過Cookie傳輸
  • Cookie的Secure標(biāo)記,只應(yīng)用過被HTTPS協(xié)議加密過的請求發(fā)送給服務(wù)端
  • 使用HttpOnly標(biāo)記夹界,可以一定程度上避免XSS攻擊

Session
會話信息馆里,保存在Web服務(wù)器上。比Cookie更安全可柿。

Token
服務(wù)端生成的一串字符串鸠踪,作為客戶端進(jìn)行請求的標(biāo)識。
用于身份認(rèn)證复斥。

X-Frame-Options
在HTTP響應(yīng)頭中出現(xiàn)营密,用于給瀏覽器指示是否可在<frame>, <iframe>或者 <object> 中展現(xiàn)的標(biāo)記。
網(wǎng)站可以使用此功能目锭,來確保自己網(wǎng)站的內(nèi)容沒有被嵌到別人的網(wǎng)站中去评汰,也從而避免了點(diǎn)擊劫持攻擊。

X-Content-Type-Options
在HTTP響應(yīng)頭中出現(xiàn)痢虹。
用于規(guī)定客戶端必須要遵循Content-Type首部中對MIME類型的設(shè)定被去,不能修改。
禁用了客戶端的MIME類型嗅探行為奖唯。

MIME類型舉例:img/gif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惨缆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丰捷,更是在濱河造成了極大的恐慌坯墨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件病往,死亡現(xiàn)場離奇詭異畅蹂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荣恐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門液斜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來累贤,“玉大人,你說我怎么就攤上這事少漆【矢啵” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵示损,是天一觀的道長渗磅。 經(jīng)常有香客問我,道長检访,這世上最難降的妖魔是什么始鱼? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮脆贵,結(jié)果婚禮上医清,老公的妹妹穿的比我還像新娘。我一直安慰自己卖氨,他們只是感情好会烙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著筒捺,像睡著了一般柏腻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上系吭,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天五嫂,我揣著相機(jī)與錄音,去河邊找鬼肯尺。 笑死贫导,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蟆盹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼闺金,長吁一口氣:“原來是場噩夢啊……” “哼逾滥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起败匹,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤寨昙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后掀亩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舔哪,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年槽棍,在試婚紗的時候發(fā)現(xiàn)自己被綠了捉蚤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抬驴。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缆巧,靈堂內(nèi)的尸體忽然破棺而出布持,到底是詐尸還是另有隱情,我是刑警寧澤陕悬,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布题暖,位于F島的核電站,受9級特大地震影響捉超,放射性物質(zhì)發(fā)生泄漏胧卤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一拼岳、第九天 我趴在偏房一處隱蔽的房頂上張望枝誊。 院中可真熱鬧,春花似錦裂问、人聲如沸侧啼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痊乾。三九已至,卻和暖如春椭更,著一層夾襖步出監(jiān)牢的瞬間哪审,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工虑瀑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留湿滓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓舌狗,卻偏偏與公主長得像叽奥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子痛侍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348