《HTTP 權威指南》筆記 第十五章 實體與編碼

2022-05-29 17:45:13 字數 1235 閱讀 1315

如果把 「http 報文」想象為網際網路貨運系統的「箱子」,那麼「http 實體」就是報文中的實際的「貨物」.

其中,實體又包含了「實體首部」 和 「實體主體」,實體首部用於描述各種引數,實體主體就是原始貨物.

報文的位元組的數量

http 的早期版本用 content-length.來判斷是否關閉連線,進而判斷報文結束.

注意:持久連線必須有 content-length ,因為連線是持久的,因此客戶端無法依賴連線關閉來判別報文的結束.

經過內容編碼之後,說明的是編碼之後的報文主體的長度.

定義:對報文主體進行 md5 演算法得到的結果

功能:防止報文被篡改

定義:主體的 mime 型別

注意:經過內容編碼之後, content-type 首部說明的仍是編碼之前實體主體的型別.

定義:報文中存在多個報文,合成乙個複雜的報文傳送

功能:支援多部分主體,常常用於填寫**

定義:為了達到減少傳輸時間的目的,對主體內容進行壓縮.

內容編碼的型別是 content-encoding 的值,有下面幾種:

gzip

compress

deflate

identity(沒有編碼,當沒有 content-encoding 時的值)

與內容編碼僅僅把報文主體內容編碼不同, 傳輸編碼將整個報文進行編碼.

定義:將報文分割為大小已知的塊,塊與塊緊挨著傳送.

格式:以長度值為 0 的塊代表主體結束.

特點:不需要知道 content-length(在主體是動態建立的情況下很實用)

定義:在不同的時間下,乙個物件可能有不同的版本.要求客戶端能夠標示它所擁有的資源的副本,並且在一定的條件下請求例項.

主要有兩種辦法進行實體操控:

範圍請求

差異編碼

允許客戶端在副本不再有效的情況下,不請求完整副本,只請求文件的乙個範圍

當頁面的內容發生變化的時候,即使改動的內容很少,也要重新請求.

差異編碼指的是客戶端願意伺服器只傳送改變的部分,以更快地得到更新的頁面.

a-im: 是 accept instance manipulation 的縮寫,其功能相當於:

客戶端說:「哦,對了,我能接受某些形式的例項操控,如果你會其中的一種的話,就不用發完整的文件給我了.」

如果乙個網頁更新比較頻繁,伺服器為了能夠更快地進行差異計算,於是需要把各個版本的文件儲存在伺服器上,導致硬碟的空間減少.

第十五章預習

public class yuxi15 else 字串的比較 字串1.equals 字串2 比較兩個字串的值是否相同,返回boolean型別的值.如果相同,則返回真值,否則返回假值.字串1.equalsignorecase 字串2 忽略大小寫比較字串1和字串2.如果都相同則返回真值 否則返回假值 改...

C primer 第十五章筆記 初稿

抽象,繼承與動態繫結都是基礎的方法。新標準新增override關鍵字,用於顯示宣告改寫基類虛函式,乙個重要的好處是讓編譯器幫助我們發現一些覆蓋時的失誤。動態繫結一般通過指標 引用 實現。虛函式派生類 final關鍵字 虛函式返回的型別通常與基函式匹配,但如果返回類本身指標可以不同,前提是派生類到基類...

UNP 學習筆記 第十五章

1.描述符傳遞 接收傳送者的憑證用到的時候再看 2.struct sockaddr un 3.socketpair 4.書上有三四個例子,跟著學習一下如何建立乙個unix域套接字1.基礎 2.socketpair 1.unix域套接字往往比通訊兩端位於同乙個主機的tcp套接字快出一倍。2.unix域...