讀書筆記——《圖解HTTP》第五章、第六章(上)
參與一項運動,培養(yǎng)一種愛好,結(jié)交一個朋友,閱讀一本好書

激發(fā)活力,釋放能量,大家沖沖沖
第一章:了解web及網(wǎng)絡(luò)基礎(chǔ) ;第二章:簡單的HTTP協(xié)議? >>
第三章:HTTP報文內(nèi)的HTTP信息;第四章:返回結(jié)果的HTTP狀態(tài)碼? ?>>
第五章 與HTTP協(xié)作的web服務(wù)器
單虛擬主機多域名
通過虛擬服務(wù)器可以實現(xiàn)允許一臺HTTP服務(wù)器搭建多個web站點。如果兩域名同時部署在同一個服務(wù)器上(相同的IP地址),使用dns服務(wù)解析域名后,兩者的訪問IP地址會相同。因此在發(fā)送 HTTP 請求時,必須在 Host 首部內(nèi)完整指定主機名或域名的 URI。
通信數(shù)據(jù)轉(zhuǎn)發(fā)程序
?? 代理:傳話,每次經(jīng)過代理服務(wù)器時,會追加寫入Via首部信息。有緩存代理(響應(yīng)緩存資源)和透明代理(不對報文做任何加工的代理)。
?? 網(wǎng)關(guān):像自己擁有資源的源服務(wù)器一樣對請求進行處理。利用網(wǎng)關(guān)可以將HTTP請求轉(zhuǎn)化為其他協(xié)議通信,可以提高安全性,和其他系統(tǒng)聯(lián)動等。
?? 隧道:安全,透明
緩存
指代理服務(wù)器或客戶端本地磁盤內(nèi)保存的資源副本
因為緩存有效期,需向源服務(wù)器確認(rèn)資源的有效性
緩存地:緩存服務(wù)器或
客戶端瀏覽器中(即臨時網(wǎng)絡(luò)文件)
,如果瀏覽器緩存有效,可以不必向服務(wù)器請求相同的資源,而可以直接從本地磁盤讀取。
第六章 HTTP首部(上)
回顧下HTTP報文結(jié)構(gòu)
HTTP請求報文
HTTP響應(yīng)報文
首部字段:提供報文主體大小、所使用語言,認(rèn)證信息等內(nèi)容。構(gòu)成:?字段名:字段值(字段值對應(yīng)HTTP首部字段可以有多個值)
4種HTTP首部字段類型:通用首部字段、請求首部字段、響應(yīng)首部字段、實體首部字段
首部字段說明p83、p84頁
End-to-end 首部和 Hop-by-hop 首部
端到端首部(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ā)有效,需提供 Connection 首部字段(即逐跳首部、連接的管理)。
HTTP/1.1?通用首部字段
1. Cache-Control? ?控制緩存行為
? Cache-Control : public/private 表示所有人可利用緩存/此緩存只提供給特定對象。
? Cache-Control: no-cache 如來自客戶端請求則表示客戶端將不會接收緩存過的響應(yīng),必須要源服務(wù)器的。如來自服務(wù)器響應(yīng),則服務(wù)器不能對資源進行緩存。
? Cache-Control: no-cache=Location 只出現(xiàn)在響應(yīng)指令中,客戶端接收帶指定參數(shù)值的此響應(yīng)報文,不能使用緩存。而無參數(shù)值可以。
? Cache-Control: no-store 不緩存,暗示有機密信息,注意和(2)區(qū)別
? Cache-Control: s-maxage/max-age=604800(單位 :秒) max-age表示資源保存為緩存的最長時間。請求報文中包含:不為0時,緩存服務(wù)器直接處理,為0時,交源服務(wù)器處理。響應(yīng)報文中包含:緩存服務(wù)器不對資源有效性做再次確認(rèn)。
? Cache-Control: min-fresh=60(單位:秒)指令要求緩存服務(wù)器返回至少還未過指定時間的緩存資源
? Cache-Control: max-stale=3600(單位:秒) 指示緩存資源,即使過期(或在過期指定時間內(nèi))也照常接收
? Cache-Control: only-if-cached 表示客戶端僅在緩存服務(wù)器本地緩存目標(biāo)資源的情況下才會要求其返回,若發(fā)生請求緩存服務(wù)器的本地緩存無響應(yīng),則返回狀態(tài)碼 504
? Cache-Control: must-revalidate 代理會向源服務(wù)器再次驗證即將返回的響應(yīng)緩存目前是否仍然有效。無效,則向客戶端發(fā)504狀態(tài)碼。
? Cache-Control: proxy-revalidate 緩存服務(wù)器響應(yīng)前,必須再次驗證緩存的有效性。
? Cache-Control: no-transform 緩存都不允許緩存改變實體主體的媒體類型
? 擴展:通過 cache-extension 標(biāo)記(token),可以擴展 Cache-Control 首部字段內(nèi)的指令。
2. Connection? ?逐條首部、連接的管理
(1) 控制不再轉(zhuǎn)發(fā)給代理的首部字段(即Hop-by-hop 首部)
如connection:upgrade?? 此首部字段upgrade代理接受后不再轉(zhuǎn)發(fā)
(2)管理的持久連接;
Connection: close? 默認(rèn)連接是持久連接,指定close首部字段值時斷開
3.?Date? ?創(chuàng)建 HTTP 報文的日期和時間
4.?Pragma: no-cache? ? 只存在于客戶端發(fā)送請求中,表示不接收緩存
5. Trailer? 報文末端的首部一覽
會事先說明在報文主體后記錄了哪些首部字段。該首部字段可應(yīng)用在 HTTP/1.1 版本分塊傳輸編碼時。(如首部字段包含Trailer:Expires?? 然后在報文主體后 ?Expires:xxx明細(xì))
6. Transfer-Encoding? ?規(guī)定了傳輸報文主體時采用的編碼方式
7. Upgrade? ? 用于檢測 HTTP 協(xié)議及其他協(xié)議是否可使用更高的版本進行通信
8. Via? ?追蹤傳輸路徑 各個代理服務(wù)器會往Via首部添加自身服務(wù)器的信息。
9. Warning? ?錯誤通知
請求首部字段
1. Accept? ?通知服務(wù)器,用戶代理能夠處理的媒體類型及媒體類型的相對優(yōu)先級q(范圍0-1,默認(rèn)1.0最大,可精確到小數(shù)點后3位)
2. Accept-Charset? ?可用來通知服務(wù)器用戶代理支持的字符集及字符集的相對優(yōu)先順序。應(yīng)用于協(xié)商機制
3.Accept-Encoding? ?報文主體可壓縮,告知支持的內(nèi)容編碼(可多個)及優(yōu)先級順序,如上述的gzip、deflate編碼格式。
4.Accept-Language? ?用來告知服務(wù)器用戶代理能夠處理的自然語言集(指中文或英文等)以及優(yōu)先級,可多個
5.Authorization???用來告知服務(wù)器,用戶代理的認(rèn)證信息(證書值)。
6.Expect???客戶端使用首部字段 Expect 來告知服務(wù)器,期望出現(xiàn)的某種特定行為。
7.From? ?用來告知服務(wù)器使用用戶代理的用戶的電子郵件地址 也可用User-Agent首都字段
8.Host???請求資源所在的服務(wù)器,多個虛擬主機運行在同一個 IP 上,因此使用首部字段 Host 加以區(qū)分 ?Host:主機名(主機名未設(shè)置,可為空)
(下方 If-xxx? 附請求條件,服務(wù)器判斷條件,只有為真時,才會執(zhí)行請求。)
9.If-Match? ?比較標(biāo)記實體ETag,只有當(dāng)值一致時,才會接受請求。
10.If-Modified-Since :時間? ?確認(rèn)本地資源有效性,如果在 If-Modified-Since 字段指定的日期時間后,資源發(fā)生了更新,服務(wù)器會接受請求
11.If-None-Match???只有在 If-None-Match 的字段值與 ETag 值不一致時,可處理該請求。與 If-Match 首部字段的作用相反
12.If-Range? ?它告知服務(wù)器若指定的 If-Range 字段值(ETag 值或者時間)和請求資源的 ETag 值或時間相一致時,則作為范圍請求處理。反之,則返回全體資源。
13.If-Unmodified-Since :時間?? 告知服務(wù)器,指定的請求資源只有在字段值內(nèi)指定的日期時間之后,未發(fā)生更新的情況下,才能處理請求。與If-Modified-Since相反
14.Max-Forwards : 數(shù)字???最大傳輸逐跳數(shù),每次轉(zhuǎn)發(fā)數(shù)值減 1,當(dāng)數(shù)值變 0 時返回響應(yīng)
15.Proxy-Authorization???客戶端告訴代理服務(wù)器認(rèn)證所需要的信息,客戶端與服務(wù)器之間的認(rèn)證,使用首部字段 Authorization
16.Range ??請求獲取服務(wù)器資源的指定字節(jié)范圍,服務(wù)器處理后可以206,不可以200的響應(yīng)及全部資源。
17.Referer???告知服務(wù)器原始資源的URI是從哪個web頁面發(fā)起的,如發(fā)給服務(wù)器,會有信息泄露的可能。
18.TE??傳輸編碼的優(yōu)先級
19.User-Agent? 用于傳達瀏覽器的種類、名稱等信息。
未完待續(xù)
HTTP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。