亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(6)

Barrior / 1254人閱讀

摘要:源服務(wù)器以后也將不再對緩存服務(wù)器請求中提出的資源有效性進行確認(rèn),且禁止其對響應(yīng)資源進行緩存操作。換言之,該指令要求緩存服務(wù)器不重新加載響應(yīng),也不會再次確認(rèn)資源有效性。若發(fā)生請求緩存服務(wù)器的本地緩存無響應(yīng),則返回狀態(tài)碼。

HTTP 首部

一. HTTP 報文首部

1.HTTP 報文的結(jié)構(gòu):

2.HTTP 請求報文

圖示:

舉例子:

3.HTTP 響應(yīng)報文:

下面的示例是訪問 http://hackr.jp 時,請求報文的首部信息:

以下示例是之前請求訪問 http://hackr.jp/ 時,返回的響應(yīng)報文的首部信息:

在報文眾多的字段當(dāng)中,HTTP 首部字段包含的信息最為豐富。首部字段同時存在于請求和響應(yīng)報文內(nèi),并涵蓋 HTTP 報文相關(guān)的內(nèi)容信息。

二. HTTP 首部字段

1.HTTP 首部字段傳遞重要信息:

HTTP 首部字段是構(gòu)成 HTTP 報文的要素之一。在客戶端與服務(wù)器之間以 HTTP 協(xié)議進行通信的過程中,無論是請求還是響應(yīng)都會使用首部字段,它能起到傳遞額外重要信息的作用。使用首部字段是為了給瀏覽器和服務(wù)器提供報文主體大小、所使用的 語言、認(rèn)證信息等內(nèi)容。

圖:首部字段內(nèi)可使用的附加信息較多

2.HTTP 首部字段結(jié)構(gòu) :

HTTP 首部字段是由首部字段名和字段值構(gòu)成的,中間用冒號“:” 分 隔。

例如,在 HTTP 首部中以 Content-Type 這個字段來表示報文主體的對象類型。

就以上述示例來看,首部字段名為 Content-Type,字符串 text/html 是 字段值。

另外,字段值對應(yīng)單個 HTTP 首部字段可以有多個值,如下所示。

注意:若 HTTP 首部字段重復(fù)了會如何當(dāng) HTTP 報文首部中出現(xiàn)了兩個或兩個以上具有相同首部字段名時會怎么樣?這種情況在規(guī)范內(nèi)尚未明確,根據(jù)瀏覽器內(nèi)部處理邏輯的不同,結(jié)果可能并不一致。有些瀏覽器會優(yōu)先處理第一次出現(xiàn)的首部字段,而有些則會優(yōu)先處理最后出現(xiàn)的首部字段。

3.4 種 HTTP 首部字段類型:
HTTP 首部字段根據(jù)實際用途被分為以下 4 種類型。

通用首部字段(General Header Fields)

請求報文和響應(yīng)報文兩方都會使用的首部。

請求首部字段(Request Header Fields)

從客戶端向服務(wù)器端發(fā)送請求報文時使用的首部。補充了請求的附加內(nèi)容、客戶端信息、響應(yīng)內(nèi)容相關(guān)優(yōu)先級等信息。

響應(yīng)首部字段(Response Header Fields)

從服務(wù)器端向客戶端返回響應(yīng)報文時使用的首部。補充了響應(yīng)的附加內(nèi)容,也會要求客戶端附加額外的內(nèi)容信息。

實體首部字段(Entity Header Fields)

針對請求報文和響應(yīng)報文的實體部分使用的首部。補充了資源內(nèi)容更新時間等與實體有關(guān)的信息。

4.HTTP/1.1 首部字段一覽

HTTP/1.1 規(guī)范定義了如下 47 種首部字段。

通用首部字段

請求首部字段

響應(yīng)首部字段

實體首部字段

5.非 HTTP/1.1 首部字段

在 HTTP 協(xié)議通信交互中使用到的首部字段,不限于 RFC2616 中定義的 47 種首部字段。還有 Cookie、Set-Cookie 和 Content-Disposition 等在其他 RFC 中定義的首部字段,它們的使用頻率也很高。 這些非正式的首部字段統(tǒng)一歸納在 RFC4229 HTTP Header Field Registrations 中。 6.2.6 End-to-end 首部和 Hop-by-hop 首部 HTTP 首部字段將定義成緩存代理和非緩存代理的行為,分成 2 種類型。

端到端首部(End-to-end Header) 分在此類別中的首部會轉(zhuǎn)發(fā)給請求 / 響應(yīng)對應(yīng)的最終接收目標(biāo),且必須保存在由緩存生成的響應(yīng)中,另外規(guī)定它必須被轉(zhuǎn)發(fā)。
逐跳首部(Hop-by-hop Header)
分在此類別中的首部只對單次轉(zhuǎn)發(fā)有效,會因通過緩存或代理而不再轉(zhuǎn)發(fā)。HTTP/1.1 和之后版本中,如果要使用 hop-by-hop 首部,需提供 Connection 首部字段。
下面列舉了 HTTP/1.1 中的逐跳首部字段。除這 8 個首部字段之外, 其他所有字段都屬于端到端首部。
注意:下面列舉了 HTTP/1.1 中的逐跳首部字段。除這 8 個首部字段之外, 其他所有字段都屬于端到端首部。
Connection
Keep-Alive
Proxy-Authenticate
Proxy-Authorization
Trailer
TE
Transfer-Encoding
Upgrade


三.HTTP/1.1 通用首部字段
1.Cache-Control 通過指定首部字段 ,Cache-Control 的指令,就能操作緩存的工作機制。

圖:首部字段 Cache-Control 能夠控制緩存的行為

指令的參數(shù)是可選的,多個指令之間通過“,”分隔。首部字段 CacheControl 的指令可用于請求及響應(yīng)時。

Cache-Control 指令一覽

緩存請求指令:

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

表示是否能緩存的指令:
public 指令


當(dāng)指定使用 public 指令時,則明確表明其他用戶也可利用緩存。

private 指令

no-cache 指令


客戶端發(fā)送的請求中如果包含 no-cache 指令,則表示客戶端將不會接收緩存過的響應(yīng)。于是,“中間”的緩存服務(wù)器必須把客戶端請求轉(zhuǎn)發(fā)給源服務(wù)器。如果服務(wù)器返回的響應(yīng)中包含 no-cache 指令,那么緩存服務(wù)器不能對資源進行緩存。源服務(wù)器以后也將不再對緩存服務(wù)器請求中提出的資源有效性進行確認(rèn),且禁止其對響應(yīng)資源進行緩存操作。

由服務(wù)器返回的響應(yīng)中,若報文首部字段 Cache-Control 中對 no-cache 字段名具體指定參數(shù)值,那么客戶端在接收到這個被指定參數(shù)值的首部字段對應(yīng)的響應(yīng)報文后,就不能使用緩存。換言之,無參數(shù)值的首部字段可以使用緩存。只能在響應(yīng)指令中指定該參數(shù)。

控制可執(zhí)行緩存的對象的指令:

no-store 指令

當(dāng)使用 no-store 指令(從字面意思上很容易把 no-cache 誤解成為不緩存,但事實上 no-cache 代表不緩存過期的資源,緩存會向源服務(wù)器進行有效期確認(rèn)后處理資源,也許稱為 do-notserve-from-cache-without-revalidation 更合適。no-store 才是真正地不進行緩存,請讀者注意區(qū)別理解。) 時,暗示請求(和對應(yīng)的響應(yīng))或響應(yīng)中包含機密信息。因此,該指令規(guī)定緩存不能在本地存儲請求或響應(yīng)的任一部分。

指定緩存期限和認(rèn)證的指令

s-maxage 指令

s-maxage 指令的功能和 max-age 指令的相同,它們的不同點是 smaxage 指令只適用于供多位用戶使用的公共緩存服務(wù)器(這里一般指代理) 。也就是說,對于向同一用戶重復(fù)返回響應(yīng)的服務(wù)器來說,這個指令沒有任何作用。另外,當(dāng)使用 s-maxage 指令后,則直接忽略對 Expires 首部字段及 max-age 指令的處理。

max-age 指令

當(dāng)客戶端發(fā)送的請求中包含 max-age 指令時,如果判定緩存資源的緩存時間數(shù)值比指定時間的數(shù)值更小,那么客戶端就接收緩存的資源。 另外,當(dāng)指定 max-age 值為 0,那么緩存服務(wù)器通常需要將請求轉(zhuǎn)發(fā)給源服務(wù)器。當(dāng)服務(wù)器返回的響應(yīng)中包含 max-age 指令時,緩存服務(wù)器將不對資源的有效性再作確認(rèn),而 max-age 數(shù)值代表資源保存為緩存的最長時間。應(yīng)用 HTTP/1.1 版本的緩存服務(wù)器遇到同時存在 Expires 首部字段的情況時,會優(yōu)先處理 max-age 指令,而忽略掉 Expires 首部字段。而 HTTP/1.0 版本的緩存服務(wù)器的情況卻相反,max-age 指令會被忽略。

min-fresh 指令

min-fresh 指令要求緩存服務(wù)器返回至少還未過指定時間的緩存資源。 比如,當(dāng)指定 min-fresh 為 60 秒后,過了 60 秒的資源都無法作為響應(yīng)返回了。

max-stale 指令

使用 max-stale 可指示緩存資源,即使過期也照常接收。如果指令未指定參數(shù)值,那么無論經(jīng)過多久,客戶端都會接收響應(yīng); 如果指令中指定了具體數(shù)值,那么即使過期,只要仍處于 max-stale 指定的時間內(nèi),仍舊會被客戶端接收。

only-if-cached 指令


使用 only-if-cached 指令表示客戶端僅在緩存服務(wù)器本地緩存目標(biāo)資源的情況下才會要求其返回。換言之,該指令要求緩存服務(wù)器不重新加載響應(yīng),也不會再次確認(rèn)資源有效性。若發(fā)生請求緩存服務(wù)器的本地緩存無響應(yīng),則返回狀態(tài)碼 504 Gateway Timeout。

must-revalidate 指令

使用 must-revalidate 指令,代理會向源服務(wù)器再次驗證即將返回的響應(yīng)緩存目前是否仍然有效。若代理無法連通源服務(wù)器再次獲取有效資源的話,緩存必須給客戶端 一條 504(Gateway Timeout)狀態(tài)碼。 另外,使用 must-revalidate 指令會忽略請求的 max-stale 指令(即使已經(jīng)在首部使用了 max-stale,也不會再有效果)。

proxy-revalidate 指令

proxy-revalidate 指令要求所有的緩存服務(wù)器在接收到客戶端帶有該指令的請求返回響應(yīng)之前,必須再次驗證緩存的有效性。

no-transform 指令

使用 no-transform 指令規(guī)定無論是在請求還是響應(yīng)中,緩存都不能改變實體主體的媒體類型。
這樣做可防止緩存或代理壓縮圖片等類似操作。

Cache-Control 擴展
cache-extension token

通過 cache-extension 標(biāo)記(token),可以擴展 Cache-Control 首部字段內(nèi)的指令。
如上例,Cache-Control 首部字段本身沒有 community 這個指令。借助 extension tokens 實現(xiàn)了該指令的添加。如果緩存服務(wù)器不能理解 community 這個新指令,就會直接忽略。因此,extension tokens 僅對能理解它的緩存服務(wù)器來說是有意義的。

2.Connection

Connection 首部字段具備如下兩個作用:
 

控制不再轉(zhuǎn)發(fā)給代理的首部字段

在客戶端發(fā)送請求和服務(wù)器返回響應(yīng)內(nèi),使用 Connection 首部字段,可控制不再轉(zhuǎn)發(fā)給代理的首部字段(即 Hop-by-hop 首 部)

管理持久連接

HTTP/1.1 版本的默認(rèn)連接都是持久連接。為此,客戶端會在持久連接上連續(xù)發(fā)送請求。當(dāng)服務(wù)器端想明確斷開連接時,則指定 Connection 首部字段的值為 Close。

HTTP/1.1 之前的 HTTP 版本的默認(rèn)連接都是非持久連接。為此,如果想在舊版本的 HTTP 協(xié)議上維持持續(xù)連接,則需要指定 Connection 首部字段的值為 Keep-Alive。
如上圖①所示,客戶端發(fā)送請求給服務(wù)器時,服務(wù)器端會像上圖 ②那樣加上首部字段 Keep-Alive 及首部字段 Connection 后返回響應(yīng)。

3.Date

首部字段 Date 表明創(chuàng)建 HTTP 報文的日期和時間。

HTTP/1.1 協(xié)議使用在 RFC1123 中規(guī)定的日期時間的格式,如下示例:

之前的 HTTP 協(xié)議版本中使用在 RFC850 中定義的格式,如下所示:

除此之外,還有一種格式。它與 C 標(biāo)準(zhǔn)庫內(nèi)的 asctime() 函數(shù)的輸出格式一致:

4.Pragma

Pragma 是 HTTP/1.1 之前版本的歷史遺留字段,僅作為與 HTTP/1.0 的向后兼容而定義。

規(guī)范定義的形式唯一,如下所示。

該首部字段屬于通用首部字段,但只用在客戶端發(fā)送的請求中??蛻舳藭笏械闹虚g服務(wù)器不返回緩存的資源。

所有的中間服務(wù)器如果都能以 HTTP/1.1 為基準(zhǔn),那直接采用 CacheControl: no-cache 指定緩存的處理方式是最為理想的。但要整體掌握全部中間服務(wù)器使用的 HTTP 協(xié)議版本卻是不現(xiàn)實的。因此,發(fā)送的 請求會同時含有下面兩個首部字段。

5.Trailer

首部字段 Trailer 會事先說明在報文主體后記錄了哪些首部字段。該首部字段可應(yīng)用在 HTTP/1.1 版本分塊傳輸編碼時。

以上用例中,指定首部字段 Trailer 的值為 Expires,在報文主體之后(分塊長度 0 之后)出現(xiàn)了首部字段 Expires。

6.Transfer-Encoding

首部字段 Transfer-Encoding 規(guī)定了傳輸報文主體時采用的編碼方式。 HTTP/1.1 的傳輸編碼方式僅對分塊傳輸編碼有效。

以上用例中,正如在首部字段 Transfer-Encoding 中指定的那樣,有效使用分塊傳輸編碼,且分別被分成 3312 字節(jié)和 914 字節(jié)大小的分塊數(shù)據(jù)。

7.Upgrade

首部字段 Upgrade 用于檢測 HTTP 協(xié)議及其他協(xié)議是否可使用更高的版本進行通信,其參數(shù)值可以用來指定一個完全不同的通信協(xié)議。

上圖用例中,首部字段 Upgrade 指定的值為 TLS/1.0。請注意此處兩個字段首部字段的對應(yīng)關(guān)系,Connection 的值被指定為 Upgrade。 Upgrade 首部字段產(chǎn)生作用的 Upgrade 對象僅限于客戶端和鄰接服務(wù)器之間。因此,使用首部字段 Upgrade 時,還需要額外指定 Connection:Upgrade。 對于附有首部字段 Upgrade 的請求,服務(wù)器可用 101 Switching Protocols 狀態(tài)碼作為響應(yīng)返回。

8.Via

使用首部字段 Via 是為了追蹤客戶端與服務(wù)器之間的請求和響應(yīng)報文的傳輸路徑。報文經(jīng)過代理或網(wǎng)關(guān)時,會先在首部字段 Via 中附加該服務(wù)器的信息,然后再進行轉(zhuǎn)發(fā)。這個做法和 traceroute 及電子郵件的 Received 首部的工作機制很類似。首部字段 Via 不僅用于追蹤報文的轉(zhuǎn)發(fā),還可避免請求回環(huán)的發(fā)生。 所以必須在經(jīng)過代理時附加該首部字段內(nèi)容。

上圖用例中,在經(jīng)過代理服務(wù)器 A 時,Via 首部附加了“1.0 gw.hackr.jp (Squid/3.1)”這樣的字符串值。行頭的 1.0 是指接收請求的服務(wù)器上應(yīng)用的 HTTP 協(xié)議版本。接下來經(jīng)過代理服務(wù)器 B 時亦是如此,在 Via 首部附加服務(wù)器信息,也可增加 1 個新的 Via 首部寫入服務(wù)器信息。Via 首部是為了追蹤傳輸路徑,所以經(jīng)常會和 TRACE 方法一起使 用。比如,代理服務(wù)器接收到由 TRACE 方法發(fā)送過來的請求(其中 Max-Forwards: 0)時,代理服務(wù)器就不能再轉(zhuǎn)發(fā)該請求了。這種情況下,代理服務(wù)器會將自身的信息附加到 Via 首部后,返回該請求的響應(yīng)。
9.Warning

HTTP/1.1 的 Warning 首部是從 HTTP/1.0 的響應(yīng)首部(Retry-After)演變過來的。該首部通常會告知用戶一些與緩存相關(guān)的問題的警告。

Warning 首部的格式如下。最后的日期時間部分可省略。

HTTP/1.1 中定義了 7 種警告。警告碼對應(yīng)的警告內(nèi)容僅推薦參考。 另外,警告碼具備擴展性,今后有可能追加新的警告碼。


四.請求首部字段

請求首部字段是從客戶端往服務(wù)器端發(fā)送請求報文中所使用的字段, 用于補充請求的附加信息、客戶端信息、對響應(yīng)內(nèi)容相關(guān)的優(yōu)先級等內(nèi)容。

1. Accept

Accept 首部字段可通知服務(wù)器,用戶代理能夠處理的媒體類型及媒體類型的相對優(yōu)先級??墒褂?type/subtype 這種形式,一次指定多種媒體類型

文本文件
text/html, text/plain, text/css ... application/xhtml+xml, application/xml ...
圖片文件
image/jpeg, image/gif, image/png ...
視頻文件
video/mpeg, video/quicktime ...
應(yīng)用程序使用的二進制文件
application/octet-stream, application/zip ...

若想要給顯示的媒體類型增加優(yōu)先級,則使用 q= 來額外表示權(quán)重值 (原文是“品質(zhì)係數(shù)”。在 RFC2616 定義中,此處的 q 是指 qvalue,即 quality factor。直譯的話就是質(zhì)量數(shù),但經(jīng)過綜合考慮理解記憶的便利性后,似乎采用權(quán) 重值更為穩(wěn)妥。),用分號(;)進行分隔。權(quán)重值 q 的范圍是 0~1(可精確到小數(shù)點后 3 位),且 1 為最大值。不指定權(quán)重 q 值時,默認(rèn)權(quán)重為 q=1.0。當(dāng)服務(wù)器提供多種內(nèi)容時,將會首先返回權(quán)重值最高的媒體類型。

2.Accept-Charset

Accept-Charset 首部字段可用來通知服務(wù)器用戶代理支持的字符集及字符集的相對優(yōu)先順序。另外,可一次性指定多種字符集。與首部字段 Accept 相同的是可用權(quán)重 q 值來表示相對優(yōu)先級。該首部字段應(yīng)用于內(nèi)容協(xié)商機制的服務(wù)器驅(qū)動協(xié)商。

3.Accept-Encoding

Accept-Encoding 首部字段用來告知服務(wù)器用戶代理支持的內(nèi)容編碼及內(nèi)容編碼的優(yōu)先級順序??梢淮涡灾付ǘ喾N內(nèi)容編碼。

下面試舉出幾個內(nèi)容編碼的例子。

gzip
由文件壓縮程序 gzip(GNU zip)生成的編碼格式 (RFC1952),采用 Lempel-Ziv 算法(LZ77)及 32 位循環(huán)冗余校驗(Cyclic Redundancy Check,通稱 CRC)。
compress
由 UNIX 文件壓縮程序 compress 生成的編碼格式,采用 LempelZiv-Welch 算法(LZW)。 deflate
組合使用 zlib 格式(RFC1950)及由 deflate 壓縮算法 (RFC1951)生成的編碼格式。 identity
不執(zhí)行壓縮或不會變化的默認(rèn)編碼格式

采用權(quán)重 q 值來表示相對優(yōu)先級,這點與首部字段 Accept 相同。另外,也可使用星號(*)作為通配符,指定任意的編碼格式。

4.Accept-Language

首部字段 Accept-Language 用來告知服務(wù)器用戶代理能夠處理的自然語言集(指中文或英文等),以及自然語言集的相對優(yōu)先級。可一次指定多種自然語言集。和 Accept 首部字段一樣,按權(quán)重值 q 來表示相對優(yōu)先級。在上述圖例中,客戶端在服務(wù)器有中文版資源的情況下,會請求其返回中文版對應(yīng)的響應(yīng),沒有中文版時,則請求返回英文版響應(yīng)。

5.Authorization

首部字段 Authorization 是用來告知服務(wù)器,用戶代理的認(rèn)證信息(證書值)。通常,想要通過服務(wù)器認(rèn)證的用戶代理會在接收到返回的 401 狀態(tài)碼響應(yīng)后,把首部字段 Authorization 加入請求中。共用緩存在接收到含有 Authorization 首部字段的請求時的操作處理會略有差異。

6.Expect

客戶端使用首部字段 Expect 來告知服務(wù)器,期望出現(xiàn)的某種特定行為。因服務(wù)器無法理解客戶端的期望作出回應(yīng)而發(fā)生錯誤時,會返回狀態(tài)碼 417 Expectation Failed??蛻舳丝梢岳迷撌撞孔侄?,寫明所期望的擴展。雖然 HTTP/1.1 規(guī)范只定義了 100-continue(狀態(tài)碼 100 Continue 之意)。等待狀態(tài)碼 100 響應(yīng)的客戶端在發(fā)生請求時,需要指定 Expect:100continue。

7.From

首部字段 From 用來告知服務(wù)器使用用戶代理的用戶的電子郵件地址。通常,其使用目的就是為了顯示搜索引擎等用戶代理的負(fù)責(zé)人的電子郵件聯(lián)系方式。使用代理時,應(yīng)盡可能包含 From 首部字段(但可能會因代理不同,將電子郵件地址記錄在 User-Agent 首部字段內(nèi))。

8. Host

首部字段 Host 會告知服務(wù)器,請求的資源所處的互聯(lián)網(wǎng)主機名和端口號。Host 首部字段在 HTTP/1.1 規(guī)范內(nèi)是唯一一個必須被包含在請求內(nèi)的首部字段。首部字段 Host 和以單臺服務(wù)器分配多個域名的虛擬主機的工作機制有很密切的關(guān)聯(lián),這是首部字段 Host 必須存在的意義。 請求被發(fā)送至服務(wù)器時,請求中的主機名會用 IP 地址直接替換解決。但如果這時,相同的 IP 地址下部署運行著多個域名,那么服務(wù)器就會無法理解究竟是哪個域名對應(yīng)的請求。因此,就需要使用首部字段 Host 來明確指出請求的主機名。若服務(wù)器未設(shè)定主機名,那直接發(fā)送一個空值即可。如下所示:

9.If-Match

形如 If-xxx 這種樣式的請求首部字段,都可稱為條件請求。服務(wù)器接收到附帶條件的請求后,只有判斷指定條件為真時,才會執(zhí)行請求。

首部字段 If-Match,屬附帶條件之一,它會告知服務(wù)器匹配資源所用的實體標(biāo)記(ETag)值。這時的服務(wù)器無法使用弱 ETag 值。服務(wù)器會比對 If-Match 的字段值和資源的 ETag 值,僅當(dāng)兩者一致 時,才會執(zhí)行請求。反之,則返回狀態(tài)碼 412 Precondition Failed 的響 應(yīng)。還可以使用星號(*)指定 If-Match 的字段值。針對這種情況,服務(wù)器將會忽略 ETag 的值,只要資源存在就處理請求。

10.If-Modified-Since

首部字段 If-Modified-Since,屬附帶條件之一,它會告知服務(wù)器若 IfModified-Since 字段值早于資源的更新時間,則希望能處理該請求。 而在指定 If-Modified-Since 字段值的日期時間之后,如果請求的資源都沒有過更新,則返回狀態(tài)碼 304 Not Modified 的響應(yīng)。 If-Modified-Since 用于確認(rèn)代理或客戶端擁有的本地資源的有效性。 獲取資源的更新日期時間,可通過確認(rèn)首部字段 Last-Modified 來確定。

11.If-None-Match

圖:只有在 If-None-Match 的字段值與 ETag 值不一致時,可處理 該請求。與 If-Match 首部字段的作用相反 首部字段 If-None-Match 屬于附帶條件之一。它和首部字段 If-Match 作用相反。用于指定 If-None-Match 字段值的實體標(biāo)記(ETag)值與 請求資源的 ETag 不一致時,它就告知服務(wù)器處理該請求。 在 GET 或 HEAD 方法中使用首部字段 If-None-Match 可獲取最新的資 源。因此,這與使用首部字段 If-Modified-Since 時有些類似。

12.If-Range

首部字段 If-Range 屬于附帶條件之一。它告知服務(wù)器若指定的 IfRange 字段值(ETag 值或者時間)和請求資源的 ETag 值或時間相一 致時,則作為范圍請求處理。反之,則返回全體資源。

下面我們思考一下不使用首部字段 If-Range 發(fā)送請求的情況。服務(wù)器端的資源如果更新,那客戶端持有資源中的一部分也會隨之無效,當(dāng)然,范圍請求作為前提是無效的。這時,服務(wù)器會暫且以狀態(tài)碼 412 Precondition Failed 作為響應(yīng)返回,其目的是催促客戶端再次發(fā)送請 求。這樣一來,與使用首部字段 If-Range 比起來,就需要花費兩倍的功夫。

13.If-Unmodified-Since

首部字段 If-Unmodified-Since 和首部字段 If-Modified-Since 的作用相 反。它的作用的是告知服務(wù)器,指定的請求資源只有在字段值內(nèi)指定 的日期時間之后,未發(fā)生更新的情況下,才能處理請求。如果在指定 日期時間后發(fā)生了更新,則以狀態(tài)碼 412 Precondition Failed 作為響應(yīng) 返回

14.Max-Forwards

通過 TRACE 方法或 OPTIONS 方法,發(fā)送包含首部字段 MaxForwards 的請求時,該字段以十進制整數(shù)形式指定可經(jīng)過的服務(wù)器最大數(shù)目。服務(wù)器在往下一個服務(wù)器轉(zhuǎn)發(fā)請求之前,Max-Forwards 的值減 1 后重新賦值。當(dāng)服務(wù)器接收到 Max-Forwards 值為 0 的請求 時,則不再進行轉(zhuǎn)發(fā),而是直接返回響應(yīng)。使用 HTTP 協(xié)議通信時,請求可能會經(jīng)過代理等多臺服務(wù)器。途中,如果代理服務(wù)器由于某些原因?qū)е抡埱筠D(zhuǎn)發(fā)失敗,客戶端也就等不到服務(wù)器返回的響應(yīng)了。對此,我們無從可知??梢造`活使用首部字段 Max-Forwards,針對以上問題產(chǎn)生的原因展開調(diào)查。由于當(dāng) Max-Forwards 字段值為 0 時,服務(wù)器就會立即返回響應(yīng),由此我們至少可以對以那臺服務(wù)器為終點的傳輸路徑的通信狀況有所把握。

15.Proxy-Authorization

接收到從代理服務(wù)器發(fā)來的認(rèn)證質(zhì)詢時,客戶端會發(fā)送包含首部字段 Proxy-Authorization 的請求,以告知服務(wù)器認(rèn)證所需要的信息。 這個行為是與客戶端和服務(wù)器之間的 HTTP 訪問認(rèn)證相類似的,不同之處在于,認(rèn)證行為發(fā)生在客戶端與代理之間??蛻舳伺c服務(wù)器之間的認(rèn)證,使用首部字段 Authorization 可起到相同作用。

16.Range

對于只需獲取部分資源的范圍請求,包含首部字段 Range 即可告知服務(wù)器資源的指定范圍。上面的示例表示請求獲取從第 5001 字節(jié)至第 10000 字節(jié)的資源。接收到附帶 Range 首部字段請求的服務(wù)器,會在處理請求之后返回狀態(tài)碼為 206 Partial Content 的響應(yīng)。無法處理該范圍請求時,則會返回狀態(tài)碼 200 OK 的響應(yīng)及全部資源。

17.Referer

首部字段 Referer 會告知服務(wù)器請求的原始資源的 URI。 客戶端一般都會發(fā)送 Referer 首部字段給服務(wù)器。但當(dāng)直接在瀏覽器的地址欄輸入 URI,或出于安全性的考慮時,也可以不發(fā)送該首部字段。因為原始資源的 URI 中的查詢字符串可能含有 ID 和密碼等保密信息,要是寫進 Referer 轉(zhuǎn)發(fā)給其他服務(wù)器,則有可能導(dǎo)致保密信息的泄露。另外,Referer 的正確的拼寫應(yīng)該是 Referrer,但不知為何,大家一直沿用這個錯誤的拼寫。

18.TE

首部字段 TE 會告知服務(wù)器客戶端能夠處理響應(yīng)的傳輸編碼方式及相對優(yōu)先級。它和首部字段 Accept-Encoding 的功能很相像,但是用于傳輸編碼。首部字段 TE 除指定傳輸編碼之外,還可以指定伴隨 trailer 字段的分 塊傳輸編碼的方式。應(yīng)用后者時,只需把 trailers 賦值給該字段值。

19.User-Agent

首部字段 User-Agent 會將創(chuàng)建請求的瀏覽器和用戶代理名稱等信息傳達給服務(wù)器。由網(wǎng)絡(luò)爬蟲發(fā)起請求時,有可能會在字段內(nèi)添加爬蟲作者的電子郵件地址。此外,如果請求經(jīng)過代理,那么中間也很可能被添加上代理服務(wù)器的名稱。


五.響應(yīng)首部字段

響應(yīng)首部字段是由服務(wù)器端向客戶端返回響應(yīng)報文中所使用的字段, 用于補充響應(yīng)的附加信息、服務(wù)器信息,以及對客戶端的附加要求等信息。

1.Accept-Ranges

首部字段 Accept-Ranges 是用來告知客戶端服務(wù)器是否能處理范圍請求,以指定獲取服務(wù)器端某個部分的資源。可指定的字段值有兩種,可處理范圍請求時指定其為 bytes,反之則 指定其為 none。

2.Age

首部字段 Age 能告知客戶端,源服務(wù)器在多久前創(chuàng)建了響應(yīng)。字段值的單位為秒。

若創(chuàng)建該響應(yīng)的服務(wù)器是緩存服務(wù)器,Age 值是指緩存后的響應(yīng)再次發(fā)起認(rèn)證到認(rèn)證完成的時間值。代理創(chuàng)建響應(yīng)時必須加上首部字段 Age。

3.ETag

首部字段 ETag 能告知客戶端實體標(biāo)識。它是一種可將資源以字符串形式做唯一性標(biāo)識的方式。服務(wù)器會為每份資源分配對應(yīng)的 ETag 值。另外,當(dāng)資源更新時,ETag 值也需要更新。生成 ETag 值時,并沒有統(tǒng)一的算法規(guī)則,而僅僅是由服務(wù)器來分配。

資源被緩存時,就會被分配唯一性標(biāo)識。例如,當(dāng)使用中文版的瀏覽器訪問 http://www.google.com/ 時,就會返回中文版對應(yīng)的資源,而使用英文版的瀏覽器訪問時,則會返回英文版對應(yīng)的資源。兩者的 URI 是相同的,所以僅憑 URI 指定緩存的資源是相當(dāng)困難的。若在下載過程中出現(xiàn)連接中斷、再連接的情況,都會依照 ETag 值來指定資 源。

強 ETag 值和弱 Tag 值

強 ETag 值不論實體發(fā)生多么細(xì)微的變化都會改變其值。

弱 ETag 值只用于提示資源是否相同。只有資源發(fā)生了根本改變,產(chǎn)生差異時才會改變 ETag 值。這時,會在字段值最開始處附加 W/。

4.Location

使用首部字段 Location 可以將響應(yīng)接收方引導(dǎo)至某個與請求 URI 位置不同的資源?;旧?,該字段會配合 3xx :Redirection 的響應(yīng),提供重定向的 URI。 幾乎所有的瀏覽器在接收到包含首部字段 Location 的響應(yīng)后,都會強制性地嘗試對已提示的重定向資源的訪問。

5.Proxy-Authenticate

首部字段 Proxy-Authenticate 會把由代理服務(wù)器所要求的認(rèn)證信息發(fā)送給客戶端。

它與客戶端和服務(wù)器之間的 HTTP 訪問認(rèn)證的行為相似,不同之處在于其認(rèn)證行為是在客戶端與代理之間進行的。而客戶端與服務(wù)器之間 進行認(rèn)證時,首部字段 WWW-Authorization 有著相同的作用。

6.Retry-After

首部字段 Retry-After 告知客戶端應(yīng)該在多久之后再次發(fā)送請求。主要配合狀態(tài)碼 503 Service Unavailable 響應(yīng),或 3xx Redirect 響應(yīng)一起使用。

字段值可以指定為具體的日期時間(Wed, 04 Jul 2012 06:34:24 GMT 等格式),也可以是創(chuàng)建響應(yīng)后的秒數(shù)。

7.Server

首部字段 Server 告知客戶端當(dāng)前服務(wù)器上安裝的 HTTP 服務(wù)器應(yīng)用程序的信息。不單單會標(biāo)出服務(wù)器上的軟件應(yīng)用名稱,還有可能包括版本號和安裝時啟用的可選項。

8.Vary

圖:當(dāng)代理服務(wù)器接收到帶有 Vary 首部字段指定獲取資源的請求時,如果使用的Accept-Language 字段的值相同,那么就直接從緩存返回響應(yīng)。反之,則需要先從源服務(wù)器端獲取資源后才能作響應(yīng)返回。

首部字段 Vary 可對緩存進行控制。源服務(wù)器會向代理服務(wù)器傳達關(guān)于本地緩存使用方法的命令。從代理服務(wù)器接收到源服務(wù)器返回包含 Vary 指定項的響應(yīng)之后,若再要進行緩存,僅對請求中含有相同 Vary 指定首部字段的請求返回緩存。即使對相同資源發(fā)起請求,但由于 Vary 指定的首部字段不相同,因此必須要從源服務(wù)器重新獲取資源。

9.WWW-Authenticate

首部字段 WWW-Authenticate 用于 HTTP 訪問認(rèn)證。它會告知客戶端適用于訪問請求 URI 所指定資源的認(rèn)證方案(Basic 或是 Digest)和帶參數(shù)提示的質(zhì)詢(challenge)。狀態(tài)碼 401 Unauthorized 響應(yīng)中,肯定帶有首部字段 WWW-Authenticate。 上述示例中,realm 字段的字符串是為了辨別請求 URI 指定資源所受到的保護策略。


六.實體首部字段

實體首部字段是包含在請求報文和響應(yīng)報文中的實體部分所使用的首部,用于補充內(nèi)容的更新時間等與實體相關(guān)的信息。

1.Allow

首部字段 Allow 用于通知客戶端能夠支持 Request-URI 指定資源的所有 HTTP 方法。當(dāng)服務(wù)器接收到不支持的 HTTP 方法時,會以狀態(tài)碼 405 Method Not Allowed 作為響應(yīng)返回。與此同時,還會把所有能支持的 HTTP 方法寫入首部字段 Allow 后返回。

2.Content-Encoding

首部字段 Content-Encoding 會告知客戶端服務(wù)器對實體的主體部分選用的內(nèi)容編碼方式。內(nèi)容編碼是指在不丟失實體信息的前提下所進行的壓縮。

主要采用以下 4 種內(nèi)容編碼的方式。

gzip
compress
deflate
identity

3.Content-Language

首部字段 Content-Language 會告知客戶端,實體主體使用的自然語言(指中文或英文等語言)。

4.Content-Length

首部字段 Content-Length 表明了實體主體部分的大?。▎挝皇亲止?jié))。對實體主體進行內(nèi)容編碼傳輸時,不能再使用 Content-Length 首部字段。由于實體主體大小的計算方法略微復(fù)雜,所以在此不再展開。

5.Content-Location

首部字段 Content-Location 給出與報文主體部分相對應(yīng)的 URI。和首部字段 Location 不同,Content-Location 表示的是報文主體返回資源對應(yīng)的 URI。 比如,對于使用首部字段 Accept-Language 的服務(wù)器驅(qū)動型請求,當(dāng)返回的頁面內(nèi)容與實際請求的對象不同時,首部字段 Content-Location 內(nèi)會寫明 URI。(訪問 http://www.hackr.jp/ 返回的對象卻是 http://www.hackr.jp/index-ja.... 等類似情況)

6.Content-MD5

首部字段 Content-MD5 是一串由 MD5 算法生成的值,其目的在于檢查報文主體在傳輸過程中是否保持完整,以及確認(rèn)傳輸?shù)竭_。對報文主體執(zhí)行 MD5 算法獲得的 128 位二進制數(shù),再通過 Base64 編碼后將結(jié)果寫入 Content-MD5 字段值。由于 HTTP 首部無法記錄二進制值,所以要通過 Base64 編碼處理。為確保報文的有效性,作為接收方的客戶端會對報文主體再執(zhí)行一次相同的 MD5 算法。計算出的值與字段值作比較后,即可判斷出報文主體的準(zhǔn)確性。采用這種方法,對內(nèi)容上的偶發(fā)性改變是無從查證的,也無法檢測出惡意篡改。其中一個原因在于,內(nèi)容如果能夠被篡改,那么同時意味著 Content-MD5 也可重新計算然后被篡改。所以處在接收階段的客戶端是無法意識到報文主體以及首部字段 Content-MD5 是已經(jīng)被篡改過的。

7.Content-Range

針對范圍請求,返回響應(yīng)時使用的首部字段 Content-Range,能告知客戶端作為響應(yīng)返回的實體的哪個部分符合范圍請求。字段值以字節(jié)為單位,表示當(dāng)前發(fā)送部分及整個實體大小。

8.Content-Type

首部字段 Content-Type 說明了實體主體內(nèi)對象的媒體類型。和首部字 段 Accept 一樣,字段值用 type/subtype 形式賦值。 參數(shù) charset 使用 iso-8859-1 或 euc-jp 等字符集進行賦值。

9.Expires

首部字段 Expires 會將資源失效的日期告知客戶端。緩存服務(wù)器在接收到含有首部字段 Expires 的響應(yīng)后,會以緩存來應(yīng)答請求,在 Expires 字段值指定的時間之前,響應(yīng)的副本會一直被保存。當(dāng)超過指定的時間后,緩存服務(wù)器在請求發(fā)送過來時,會轉(zhuǎn)向源服務(wù)器請求 資源。源服務(wù)器不希望緩存服務(wù)器對資源緩存時,最好在 Expires 字段內(nèi)寫入與首部字段 Date 相同的時間值。但是,當(dāng)首部字段 Cache-Control 有指定 max-age 指令時,比起首部字段 Expires,會優(yōu)先處理 max-age 指令。

10.Last-Modified

首部字段 Last-Modified 指明資源最終修改的時間。一般來說,這個值就是 Request-URI 指定資源被修改的時間。但類似使用 CGI 腳本進行動態(tài)數(shù)據(jù)處理時,該值有可能會變成數(shù)據(jù)最終修改時的時間。


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

管理服務(wù)器與客戶端之間狀態(tài)的 Cookie,雖然沒有被編入標(biāo)準(zhǔn)化 HTTP/1.1 的 RFC2616 中,但在 Web 網(wǎng)站方面得到了廣泛的應(yīng)用。 Cookie 的工作機制是用戶識別及狀態(tài)管理。Web 網(wǎng)站為了管理用戶的狀態(tài)會通過 Web 瀏覽器,把一些數(shù)據(jù)臨時寫入用戶的計算機內(nèi)。接著當(dāng)用戶訪問該Web網(wǎng)站時,可通過通信方式取回之前發(fā)放的 Cookie。 調(diào)用 Cookie 時,由于可校驗 Cookie 的有效期,以及發(fā)送方的域、路徑、協(xié)議等信息,所以正規(guī)發(fā)布的 Cookie 內(nèi)的數(shù)據(jù)不會因來自其他 Web 站點和攻擊者的攻擊而泄露。

至 2013 年 5 月,Cookie 的規(guī)格標(biāo)準(zhǔn)文檔有以下 4 種。

RFC2109
某企業(yè)嘗試以獨立技術(shù)對 Cookie 規(guī)格進行標(biāo)準(zhǔn)化統(tǒng)籌。原本的意圖是想和網(wǎng)景公司制定的標(biāo)準(zhǔn)交互應(yīng)用,可惜發(fā)生了微妙的差異?,F(xiàn)在該標(biāo)準(zhǔn)已淡出了人們的視線。
RFC2965
為終結(jié) Internet Explorer 瀏覽器與 Netscape Navigator 的標(biāo)準(zhǔn)差異而導(dǎo)致的瀏覽器戰(zhàn)爭,RFC2965 內(nèi)定義了新的 HTTP 首部 Set-Cookie2 和 Cookie2??墒聦嵣?,它們幾乎沒怎么投入使用。
RFC6265
將網(wǎng)景公司制定的標(biāo)準(zhǔn)作為業(yè)界事實標(biāo)準(zhǔn)(De facto standard),重新定義 Cookie 標(biāo)準(zhǔn)后的產(chǎn)物。 目前使用最廣泛的 Cookie 標(biāo)準(zhǔn)卻不是 RFC 中定義的任何一個。而是在網(wǎng)景公司制定的標(biāo)準(zhǔn)上進行擴展后的產(chǎn)物。

下面的表格內(nèi)列舉了與 Cookie 有關(guān)的首部字段。

1.Set-Cookie

當(dāng)服務(wù)器準(zhǔn)備開始管理客戶端的狀態(tài)時,會事先告知各種信息。下面的表格列舉了 Set-Cookie 的字段值。

表 6-9:Set-Cookie 字段的屬性

expires 屬性
Cookie 的 expires 屬性指定瀏覽器可發(fā)送 Cookie 的有效期。當(dāng)省略 expires 屬性時,其有效期僅限于維持瀏覽器會話(Session) 時間段內(nèi)。這通常限于瀏覽器應(yīng)用程序被關(guān)閉之前。另外,一旦Cookie從服務(wù)器端發(fā)送至客戶端,服務(wù)器端就不存在可以顯式刪除Cookie 的方法。但可通過覆蓋已過期的Cookie,實現(xiàn)對 客戶端 Cookie 的實質(zhì)性刪除操作。
path 屬性
Cookie 的 path 屬性可用于限制指定 Cookie 的發(fā)送范圍的文件目錄。不過另有辦法可避開這項限制,看來對其作為安全機制的效果不能抱有期待。
domain 屬性
通過 Cookie 的 domain 屬性指定的域名可做到與結(jié)尾匹配一致。比如,當(dāng)指定 example.com 后,除 example.com 以外,www.example.com 或 www2.example.com 等都可以發(fā)送 Cookie。因此,除了針對具體指定的多個域名發(fā)送 Cookie 之外,不指定 domain 屬性顯得更安全。
secure 屬性
Cookie 的 secure 屬性用于限制 Web 頁面僅在 HTTPS 安全連接時,才可以發(fā)送 Cookie。

發(fā)送 Cookie 時,指定 secure 屬性的方法如下所示。

以上例子僅當(dāng)在 https://www.example.com/(HTTPS)安全連接的情況下才會進行 Cookie 的回收。也就是說,即使域名相同, http://www.example.com/(HTTP)也不會發(fā)生 Cookie 回收行為。 當(dāng)省略 secure 屬性時,不論 HTTP 還是 HTTPS,都會對 Cookie 進行回收。
HttpOnly 屬性
Cookie 的 HttpOnly 屬性是 Cookie 的擴展功能,它使 JavaScript 腳本 無法獲得 Cookie。其主要目的為防止跨站腳本攻擊(Cross-site scripting,XSS)對 Cookie 的信息竊取。 發(fā)送指定 HttpOnly 屬性的 Cookie 的方法如下所示。

通過上述設(shè)置,通常從 Web 頁面內(nèi)還可以對 Cookie 進行讀取操作。 但使用 JavaScript 的 document.cookie 就無法讀取附加 HttpOnly 屬性后 的 Cookie 的內(nèi)容了。因此,也就無法在 XSS 中利用 JavaScript 劫持 Cookie 了。 雖然是獨立的擴展功能,但 Internet Explorer 6 SP1 以上版本等當(dāng)下的主流瀏覽器都已經(jīng)支持該擴展了。另外順帶一提,該擴展并非是為了防止 XSS 而開發(fā)的。

2.Cookie

首部字段 Cookie 會告知服務(wù)器,當(dāng)客戶端想獲得 HTTP 狀態(tài)管理支持時,就會在請求中包含從服務(wù)器接收到的 Cookie。接收到多個 Cookie 時,同樣可以以多個 Cookie 形式發(fā)送。


八.其他首部字段

HTTP 首部字段是可以自行擴展的。所以在 Web 服務(wù)器和瀏覽器的應(yīng)用上,會出現(xiàn)各種非標(biāo)準(zhǔn)的首部字段。

接下來,我們就一些最為常用的首部字段進行說明。

X-Frame-Options
X-XSS-Protection
DNT
P3P

1.X-Frame-Options

首部字段 X-Frame-Options 屬于 HTTP 響應(yīng)首部,用于控制網(wǎng)站內(nèi)容在其他 Web 網(wǎng)站的 Frame 標(biāo)簽內(nèi)的顯示問題。其主要目的是為了防止點擊劫持(clickjacking)攻擊。 首部字段 X-Frame-Options 有以下兩個可指定的字段值。

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

支持該首部字段的瀏覽器有:Internet Explorer 8、Firefox 3.6.9+、 Chrome 4.1.249.1042+、Safari 4+ 和 Opera 10.50+ 等?,F(xiàn)在主流的瀏覽器都已經(jīng)支持。

能在所有的 Web 服務(wù)器端預(yù)先設(shè)定好 X-Frame-Options 字段值是最理想的狀態(tài)。

對 apache2.conf 的配置實例:


Header append X-FRAME-OPTIONS "SAMEORIGIN"

2.X-XSS-Protection

X-XSS-Protection: 1

首部字段 X-XSS-Protection 屬于 HTTP 響應(yīng)首部,它是針對跨站腳本攻擊(XSS)的一種對策,用于控制瀏覽器 XSS 防護機制的開關(guān)。首部字段 X-XSS-Protection 可指定的字段值如下。

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

3.DNT

首部字段 DNT 屬于 HTTP 請求首部,其中 DNT 是 Do Not Track 的簡 稱,意為拒絕個人信息被收集,是表示拒絕被精準(zhǔn)廣告追蹤的一種方法。

首部字段 DNT 可指定的字段值如下。

0 :同意被追蹤
1 :拒絕被追蹤
由于首部字段 DNT 的功能具備有效性,所以 Web 服務(wù)器需要對 DNT 做對應(yīng)的支持。

4.P3P

首部字段 P3P 屬于 HTTP 相應(yīng)首部,通過利用 P3P(The Platform for Privacy Preferences,在線隱私偏好平臺)技術(shù),可以讓 Web 網(wǎng)站上 的個人隱私變成一種僅供程序可理解的形式,以達到保護用戶隱私的目的。要進行 P3P 的設(shè)定,需按以下操作步驟進行。

步驟 1:創(chuàng)建 P3P 隱私
步驟 2:創(chuàng)建 P3P 隱私對照文件后,保存命名在 /w3c/p3p.xml
步驟 3:從 P3P 隱私中新建 Compact policies 后,輸出到 HTTP 響應(yīng) 中

有關(guān) P3P 的詳細(xì)規(guī)范標(biāo)準(zhǔn)請參看下方鏈接。

The Platform for Privacy Preferences 1.0(P3P1.0)Specification http://www.w3.org/TR/P3P/

協(xié)議中對 X- 前綴的廢除  在 HTTP 等多種協(xié)議中,通過給非標(biāo)準(zhǔn)參數(shù)加上前綴 X-,來區(qū)別。 于標(biāo)準(zhǔn)參數(shù),并使那些非標(biāo)準(zhǔn)的參數(shù)作為擴展變成可能。但是這種簡單粗暴的做法有百害而無一益,因此在“RFC 6648 - Deprecating the "X-" Prefix and Similar Constructs in Application Protocols”中提議停止該做法。 
然而,對已經(jīng)在使用中的 X- 前綴來說,不應(yīng)該要求其變更。

以下是往日學(xué)習(xí)總結(jié),有需要的盆友可以去看看噢~~
TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(1):了解web和網(wǎng)絡(luò)基礎(chǔ)
https://segmentfault.com/a/11...
TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(2):簡單的HTTP協(xié)議
https://segmentfault.com/a/11...
TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(3):HTTP 報文內(nèi)的 HTTP 信息
https://segmentfault.com/a/11...
TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(4):返回結(jié)果的 HTTP 狀態(tài)碼
https://segmentfault.com/a/11...
TCP/IP基礎(chǔ)總結(jié)性學(xué)習(xí)(5):與 HTTP 協(xié)作的 Web 服務(wù)器
https://segmentfault.com/a/11...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/52193.html

相關(guān)文章

  • TCP/IP基礎(chǔ)結(jié)性學(xué)習(xí)(8)

    摘要:步驟接收到狀態(tài)碼的客戶端為了通過認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過程中不僅需要密碼這一個因素,還需要申請認(rèn)證者提供其他持有信息,從而作為另一個因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問用戶身份的認(rèn)證 某些 Web 頁面只想讓特定的人瀏覽,或者干脆僅本人可見。為達到這個目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來學(xué)習(xí)一下認(rèn)證機制。 一. 何為認(rèn)證 1.計算機...

    monw3c 評論0 收藏0
  • TCP/IP基礎(chǔ)結(jié)性學(xué)習(xí)(8)

    摘要:步驟接收到狀態(tài)碼的客戶端為了通過認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過程中不僅需要密碼這一個因素,還需要申請認(rèn)證者提供其他持有信息,從而作為另一個因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問用戶身份的認(rèn)證 某些 Web 頁面只想讓特定的人瀏覽,或者干脆僅本人可見。為達到這個目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來學(xué)習(xí)一下認(rèn)證機制。 一. 何為認(rèn)證 1.計算機...

    Labradors 評論0 收藏0
  • TCP/IP基礎(chǔ)結(jié)性學(xué)習(xí)(8)

    摘要:步驟接收到狀態(tài)碼的客戶端為了通過認(rèn)證,需要將用戶及密碼發(fā)送給服務(wù)器。所謂雙因素認(rèn)證就是指,認(rèn)證過程中不僅需要密碼這一個因素,還需要申請認(rèn)證者提供其他持有信息,從而作為另一個因素,與其組合使用的認(rèn)證方式。 確認(rèn)訪問用戶身份的認(rèn)證 某些 Web 頁面只想讓特定的人瀏覽,或者干脆僅本人可見。為達到這個目標(biāo),必不可少的就是認(rèn)證功能。下面我們一起來學(xué)習(xí)一下認(rèn)證機制。 一. 何為認(rèn)證 1.計算機...

    韓冰 評論0 收藏0
  • TCP/IP基礎(chǔ)結(jié)性學(xué)習(xí)(5)

    摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點是,當(dāng)判定緩存過期后,會向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺 Web 服務(wù)器可搭建多個獨立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺虛擬主機實現(xiàn)多個域名 HTTP/1.1 規(guī)...

    Elle 評論0 收藏0
  • TCP/IP基礎(chǔ)結(jié)性學(xué)習(xí)(5)

    摘要:緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。若判斷緩存失效,緩存服務(wù)器將會再次從源服務(wù)器上獲取新資源。另外,和緩存服務(wù)器相同的一點是,當(dāng)判定緩存過期后,會向源服務(wù)器確認(rèn)資源的有效性。 與 HTTP 協(xié)作的 Web 服務(wù)器 一臺 Web 服務(wù)器可搭建多個獨立域名的 Web 網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。 一. 用單臺虛擬主機實現(xiàn)多個域名 HTTP/1.1 規(guī)...

    lookSomeone 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<