自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭開HTTP網(wǎng)絡(luò)協(xié)議神秘面紗系列(三)

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。

HTTP首部字段有四種類型:通用首部字段,請(qǐng)求首部字段,響應(yīng)首部字段,實(shí)體首部字段。

通用首部字段:

首部字段 說明
Cache-Control 控制緩存的行為
Connection 逐跳首部、連接的管理
Date 創(chuàng)建報(bào)文的日期時(shí)間
Pragma 報(bào)文指令
Trailer 報(bào)文末端的首部一覽
Transfer-Encoding 指定報(bào)文主體的傳輸編碼方式
Upgrade 升級(jí)為其他協(xié)議
Via 代理服務(wù)器的相關(guān)信息
Warning 錯(cuò)誤通知

請(qǐng)求首部字段:

首部字段 說明
Accept 用戶代理的媒體類型
Accept-Charset 優(yōu)先的字符集
Accept-Encoding 優(yōu)先的內(nèi)容編碼
Accept-Language 優(yōu)先的語言
Authorization Web認(rèn)證信息
Expect 期待服務(wù)器的特定行為
From 用戶的電子郵件
Host 請(qǐng)求資源所在服務(wù)器
if-Match 比較實(shí)體標(biāo)記(ETag)
if-Modified-Since 比較資源的更新時(shí)間
if-None-Match 比較實(shí)體標(biāo)記(與if-Match相反)
if-Range 資源未更新時(shí)發(fā)送實(shí)體Byte的范圍請(qǐng)求
if-Unmodified-Since 比較資源的更新時(shí)間(與if-Modified-Since想法)
Max-Forwards 最大傳輸逐跳
Proxy-Authorization 代理服務(wù)器要求客戶端的認(rèn)證信息
Range 實(shí)體的字節(jié)范圍請(qǐng)求
Refer 對(duì)請(qǐng)求中URI的原始獲取方
TE 傳輸編碼的優(yōu)先級(jí)
User-Agent HTTP客戶端的信息

響應(yīng)首部字段:

首部字段 說明
Accept-Ranges 是否接受字節(jié)范圍請(qǐng)求
Age 推算資源創(chuàng)建經(jīng)過時(shí)間
ETag 資源匹配信息
Location 令客戶端重定向至指定URI
Proxy-Authenticate 代理服務(wù)器對(duì)客戶端的認(rèn)證信息
Retry-After 對(duì)再次發(fā)起請(qǐng)求的時(shí)機(jī)要求
Server HTTP服務(wù)器的安裝信息
Vary 代理服務(wù)器緩存的管理信息
WWW-Authenticate 服務(wù)器對(duì)客戶端的認(rèn)證信息

實(shí)體首部字段:

首部字段 說明
Allow 資源可支持的HTTP方法
Content-Encod 實(shí)體主體適用的編碼方式
Content-Language 實(shí)體主體的自然語言
Content-Length 實(shí)體主體的大小
Content-Location 替代對(duì)飲資源的URI
Content-MD5 實(shí)體主體的報(bào)文摘要
Content-Range 實(shí)體主體的位置范圍
Content-Type 實(shí)體主體的媒體類型
Expires 實(shí)體主體過期的日期時(shí)間
Last-Modified 資源的最后修改日期時(shí)間

#p#

HTTP首部字段將定義成緩存代理和非緩存代理兩種類型:

端到端(End-to-end Header):此類中的首部字段會(huì)轉(zhuǎn)發(fā)給請(qǐng)求/響應(yīng)對(duì)應(yīng)的最終接受目標(biāo),且必須在由緩存生成的響應(yīng)中,另外規(guī)定它必須被轉(zhuǎn)發(fā)。

逐跳首部(Hop-by-hop Header):此類中的首部只對(duì)單次轉(zhuǎn)發(fā)有效,會(huì)因通過緩存或代理而不再轉(zhuǎn)發(fā)。如:Connection,Keep-Alive,Upgrade,Proxy-Authenticate,Proxy-Authorization等。

當(dāng)有多個(gè)指令參數(shù)時(shí),多個(gè)指令之間可通過”,”分隔,例如首部字段Cache-Control:

Cache-Control: private,max-age=0,no-cache

Cache-Control指令一覽:

緩存請(qǐng)求指令:

指令 參數(shù) 說明
no-cache 強(qiáng)制向源服務(wù)器再次驗(yàn)證
no-store 不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
max-age=[秒] 必需 響應(yīng)的最大Age值
max-stale=[秒] 可省略 接受已過的響應(yīng)
min-fresh=[秒] 必需 期望在指定時(shí)間內(nèi)的響應(yīng)仍有效
no-transform 代理不可更改媒體類型
only-if-cache 從緩存獲取資源
cache-extension - 新指令標(biāo)記

緩存響應(yīng)指令:

指令 參數(shù) 說明
public 可向任意方提供響應(yīng)的緩存
private 可省略 僅向特定用戶返回響應(yīng)
no-cache 可省略 緩存前必須先確認(rèn)其有效性
no-store 不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
no-transform 代理不可更改媒體類型
msut-revalidate 可緩存但必須再向源服務(wù)器進(jìn)行確認(rèn)
proxy-revalidate 要求中間緩存服務(wù)器對(duì)緩存的響應(yīng)有效性再進(jìn)行確認(rèn)
max-age=[秒] 必需 響應(yīng)的最大Age值
s-maxage=[秒] 必需 公共緩存服務(wù)器響應(yīng)的最大Age值
cache-extension - 新指令標(biāo)記[token]

Connection首部字段有兩個(gè)作用:

控制不再轉(zhuǎn)發(fā)給代理的首部字段,如:Connection:不再轉(zhuǎn)發(fā)的首部字段名.

管理持久化連接,HTTP/1.1默認(rèn)是持久連接,如果想斷開連接,可以用Connection: Close.

 [[148134]]

首部字段Upgrade用于檢測(cè)HTTP協(xié)議及其他協(xié)議是否可使用更高的版本進(jìn)行通信,其參數(shù)值可以用來指定一個(gè)完全不同的通信協(xié)議,不過產(chǎn)生對(duì)象僅限于客戶端和鄰接服務(wù)器之間。

首部字段Warning來告知用戶一些與緩存相關(guān)的問題的警告,其格式:Warning:[警告碼][警告的主機(jī):端口號(hào)][警告內(nèi)容]([日期時(shí)間])。

警告碼:

警告碼 警告內(nèi)容 說明
110 Response is stale(響應(yīng)已過期) 代理返回已過期的資源
111 Revalidation failed(再驗(yàn)證失?。?/td> 代理再驗(yàn)證資源有效性時(shí)失?。ǚ?wù)器無法到達(dá)等原因)
112 Disconnection operation(斷開連接操作) 代理與互聯(lián)網(wǎng)連接被故意切斷
113 Heuristic expiration(試探性過期) 響應(yīng)的使用其超過24小時(shí)(有效緩存的設(shè)定時(shí)間大于24小時(shí)的情況下)
199 Miscellaneous warning(雜項(xiàng)警告) 任意的警告內(nèi)容
214 Transformation applied(使用了轉(zhuǎn)換) 代理對(duì)內(nèi)容編碼或媒體類型等執(zhí)行了某些處理時(shí)
299 Miscellaneous persistent warning(持久雜項(xiàng)警告) 任意的警告內(nèi)容

#p#

首部字段Accept可以指定媒體類型以及優(yōu)先級(jí),如:Accept: text/html;q=0.9,text/css;q=0.3.

常見幾種媒體類型:

文件文本:

text/html,text/plain,text/css,application/xhtml+xml,application/xml…

圖片文件:

image/jpeg,image/gif,image/png…

視頻文件:

video/mpeg,video/quicktime…

應(yīng)用程序使用的二進(jìn)制文件:

application/octet-stream,application/zip…

若想要給Accept開頭的首部字段的參數(shù)增加優(yōu)先級(jí),可以使用q=來額外表示,用分號(hào)(;)進(jìn)行分隔,權(quán)重值q的范圍是0~1,默認(rèn)權(quán)重為1,權(quán)重越大就越優(yōu)先。

If-Match首部字段它會(huì)告知服務(wù)器匹配資源所用的實(shí)體標(biāo)記ETag值,只有兩者一致才會(huì)執(zhí)行請(qǐng)求,而ETag值會(huì)隨服務(wù)器資源更新而更新。

If-Modified-Since首部字段指定的日期時(shí)間之后,如果請(qǐng)求的資源有更新則接受請(qǐng)求,沒有則返回304狀態(tài)碼。

If-None-Match首部字段指定的標(biāo)記值若與請(qǐng)求資源的ETag值不一致時(shí),服務(wù)器就接受請(qǐng)求。

If-Range首部字段指定的值若是跟ETag值一致時(shí),那么就根據(jù)范圍返回請(qǐng)求資源,否則返回全體請(qǐng)求資源(這相當(dāng)于指定范圍無效)。

If-Unmodified-Since首部字段告知請(qǐng)求資源在其字段指定的值時(shí)間之后,為發(fā)生更新的情況下,才能處理請(qǐng)求。

Referer首部字段會(huì)告知服務(wù)器請(qǐng)求的原始資源的URI,其實(shí)就是從某個(gè)網(wǎng)站向服務(wù)器資源請(qǐng)求的URI,比如:你在百度URIwww.baidu.com點(diǎn)擊鏈接http://blog.csdn.net/xuguoli_beyondboy跳轉(zhuǎn)到這個(gè)頁面,那么Referer首部字段就是指定這個(gè)www.baidu.comURI。

Age首部字段告知客戶端,源服務(wù)器在多久前創(chuàng)建了響應(yīng),單位為秒,但若創(chuàng)建該響應(yīng)的服務(wù)器是緩存服務(wù)器,Age就是指緩存后的響應(yīng)再次發(fā)起認(rèn)證到認(rèn)證完成的時(shí)間值。

Retry-After首部字段會(huì)告知客戶端應(yīng)該在多久之后再次發(fā)送請(qǐng)求。

Vary首部字段:從代理服務(wù)器接收到源服務(wù)器返回包含Vary指定項(xiàng)的響應(yīng)之后,僅對(duì)請(qǐng)求中含有相同Vary指定首部字段的請(qǐng)求返回緩存,否則代理服務(wù)器需先從源服務(wù)器端獲取資源后才能作為響應(yīng)返回(即使對(duì)相同資源發(fā)起請(qǐng)求)。

 [[148135]]

首部字段WWW-Authenticate用于HTTP訪問認(rèn)證,它會(huì)告知客戶端適用于訪問請(qǐng)求URI所指定資源的認(rèn)證方案(Basic或Digest)和帶參數(shù)提示的質(zhì)詢。

Content-Loaction首部字段表示的是報(bào)文主體返回資源對(duì)應(yīng)的URI。

Content-MD5首部字段在于檢查報(bào)文主體在傳輸過程中是否保持完整,以及確認(rèn)傳輸?shù)竭_(dá),其過程如下:

服務(wù)器對(duì)報(bào)文主體執(zhí)行MD5算法獲得的128位二進(jìn)制數(shù),再通過Base64編碼后將結(jié)果寫入Content-MD5字段值,為確保報(bào)文的有效性,客戶端對(duì)報(bào)文主體再執(zhí)行一次相同的MD5算法,計(jì)算出的值與Content-MD5首部字段的值相比較,即可判斷出報(bào)文主體的準(zhǔn)確性。

Expires首部字段:如果請(qǐng)求還在Expires字段值指定的時(shí)間之前,則會(huì)返回緩存的該資源,當(dāng)超過其時(shí)間之后,發(fā)送來的請(qǐng)求將會(huì)轉(zhuǎn)向源服務(wù)器請(qǐng)求資源。

Cookie首部字段:

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

Set-Cookie字段屬性:

屬性 說明
NAME=VALUE 賦予Cookie的名稱和值(必需項(xiàng) )
expires=DATE Cookie的有效期(若不明確指定則默認(rèn)為瀏覽器關(guān)閉前為止)
path=PATH 將服務(wù)器上的文件目錄為Cookie的使用對(duì)象(若不指定則默認(rèn)為文檔所在的文件目錄)
domain=域名 作為Cookie使用對(duì)象的域名(若不指定則默認(rèn)為創(chuàng)建Cookie的服務(wù)器的域名)
Secure 僅在HTTPS安全通信時(shí)才會(huì)發(fā)送Cookie
HttpOnly 加以限制,使Cookie不能被JavaScript腳本訪問

X-Frame-Options首部字段用于控制網(wǎng)站內(nèi)容在其他Web網(wǎng)站的Frame標(biāo)簽內(nèi)的顯示問題,不過目的主要是為了防止點(diǎn)擊劫持攻擊,其兩個(gè)屬性:

DENT:拒絕

SAMEORIGN:僅同源域名下的頁面匹配時(shí)許可,比如:當(dāng)指定http:/hackr.jp/sample.html頁面為SAMEORIGN時(shí),那么hackr .jp上所有的頁面的frame都被許可加載該頁面,而example.com等其他域名的頁面就不行了。

X-XSS-Protection首部字段是針對(duì)跨站腳本攻擊的一種對(duì)策,用于控制瀏覽器XSS防護(hù)機(jī)制的開關(guān),屬性值如下:

0:將XSS過濾設(shè)置成無效狀態(tài)。

1:將XSS過濾設(shè)置成有效狀態(tài)。

DNT首部字段用來拒絕個(gè)人信息被收集,常表示拒絕被精準(zhǔn)廣告追蹤的一種方法,屬性值如下:

0:同意被追蹤

1:拒絕被追蹤

P3P首部字段可用來保護(hù)用戶隱私。

責(zé)任編輯:何妍 來源: CSDN博客
相關(guān)推薦

2015-09-06 13:40:02

HTTP網(wǎng)絡(luò)協(xié)議

2015-09-08 10:06:15

2015-09-06 10:54:29

HTTP網(wǎng)絡(luò)協(xié)議

2015-08-20 13:43:17

NFV網(wǎng)絡(luò)功能虛擬化

2010-05-26 19:12:41

SVN沖突

2010-05-17 09:13:35

2014-03-12 11:11:39

Storage vMo虛擬機(jī)

2021-06-07 08:18:12

云計(jì)算云端阿里云

2013-07-19 14:00:13

iOS中BlockiOS開發(fā)學(xué)習(xí)

2022-06-21 14:10:43

NIST網(wǎng)絡(luò)安全

2010-05-11 10:19:17

VMforceJava云計(jì)算

2009-06-01 09:04:44

Google WaveWeb

2018-03-01 09:33:05

軟件定義存儲(chǔ)

2016-04-06 09:27:10

runtime解密學(xué)習(xí)

2009-09-15 15:34:33

Google Fast

2023-11-02 09:55:40

2012-08-17 09:27:34

奧運(yùn)會(huì)云計(jì)算虛擬化

2016-11-16 09:06:59

2024-02-14 09:00:00

機(jī)器學(xué)習(xí)索引ChatGPT

2024-11-11 16:36:41

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)