http協議標頭檔案的控制資訊

2021-05-25 01:45:34 字數 3128 閱讀 4179

http訊息包括客戶機向伺服器的請求訊息和伺服器向客戶機的響應訊息。這兩種型別的訊息由乙個 起始行,乙個或者多個頭域,乙個只是頭域結束的空行和可選的訊息體組成。http的頭域包括通用頭,請求頭,響應頭和實體頭四個部分。每個頭域由乙個域 名,冒號(:)和域值三部分組成。網域名稱是大小寫無關的,域值前可以新增任何數量的空格符,頭域可以被擴充套件為多行,在每行開始處,使用至少乙個空格或製表 符。

通用頭域

通用頭域包含請求和響應訊息都支援的頭域,通用頭域包含cache-control、 connection、date、pragma、transfer-encoding、upgrade、via。對通用頭域的擴充套件要求通訊雙方都支援此擴 展,如果存在不支援的通用頭域,一般將會作為實體頭域處理。下面簡單介紹幾個在upnp訊息中使用的通用頭域。

cache-control頭域

cache-control指定請求和響應遵循的快取機 制。在請求訊息或響應訊息中設定cache-control並不會修改另乙個訊息處理過程中的快取處理過程。請求時的快取指令包括no-cache、no -store、max-age、max-stale、min-fresh、only-if-cached,響應訊息中的指令包括public、 private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、 max-age。各個訊息中的指令含義如下:

public指示響應可被任何快取區快取。

private指示對於單個使用者的整個或部分響應訊息,不能被共享快取處理。這允許伺服器僅僅描述當使用者的部分響應訊息,此響應訊息對於其他使用者的請求無效。

no-cache指示請求或響應訊息不能快取

no-store用於防止重要的資訊被無意的發布。在請求訊息中傳送將使得請求和響應訊息都不使用快取。

max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。

min-fresh指示客戶機可以接收響應時間小於當前時間加上指定時間的響應。

max-stale指示客戶機可以接收超出超時期間的響應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出超時期指定值之內的響應訊息。

date頭域

date頭域表示訊息傳送的時間,時間的描述格式由rfc822定義。例如,date:mon,31dec200104:25:57gmt。date描述的時間表示世界標準時,換算成本地時間,需要知道使用者所在的時區。

pragma頭域

pragma頭域用來包含實現特定的指令,最常用的是pragma:no-cache。在http/1.1協議中,它的含義和cache-control:no-cache相同。

請求訊息

請求訊息的第一行為下面的格式:

methodsprequest -urisphttp-versioncrlfmethod表示對於request-uri完成的方法,這個欄位是大小寫敏感的,包括options、 get、head、post、put、delete、trace。方法get和head應該被所有的通用web伺服器支援,其他所有方法的實現是可選的。 get方法取回由request-uri標識的資訊。head方法也是取回由request-uri標識的資訊,只是可以在響應時,不返回訊息體。 post方法可以請求伺服器接收包含在請求中的實體資訊,可以用於提交表單,向新聞組、bbs、郵件群組和資料庫傳送訊息。

sp 表示空格。request-uri遵循uri格式,在此字段為星號(*)時,說明請求並不用於某個特定的資源位址,而是用於伺服器本身。http- version表示支援的http版本,例如為http/1.1。crlf表示換行回車符。請求頭域允許客戶端向伺服器傳遞關於請求或者關於客戶機的附加 資訊。請求頭域可能包含下列欄位accept、accept-charset、accept-encoding、accept-language、 authorization、from、host、if-modified-since、if-match、if-none-match、if- range、if-range、if-unmodified-since、max-forwards、proxy-authorization、 range、referer、user-agent。對請求頭域的擴充套件要求通訊雙方都支援,如果存在不支援的請求頭域,一般將會作為實體頭域處理。

典型的請求訊息:

gethost:download.microtool.de

accept:*/*

pragma:no-cache

cache-control:no-cache

referer:

資訊。此域能包含多個產品標識和注釋,產品標識一般按照重要性排序。

實體請 求訊息和響應訊息都可以包含實體資訊,實體資訊一般由實體頭域和實體組成。實體頭域包含關於實體的原資訊,實體頭包括allow、content- base、content-encoding、content-language、content-length、content-location、 content-md5、content-range、content-type、etag、expires、last-modified、 extension-header。extension-header允許客戶端定義新的實體頭,但是這些域可能無法未接受方識別。實體可以是乙個經過編 碼的位元組流,它的編碼方式由content-encoding或content-type定義,它的長度由content-length或content -range定義。

content-type實體頭

content-type實體頭用於向接收方指示實體的介質型別,指定head方法送到接收方的實體介質型別,或get方法傳送的請求介質型別content-range實體頭

content-range實體頭用於指定整個實體中的一部分的插入位置,他也指示了整個實體的長度。在伺服器向客戶返回乙個部分響應,它必須描述響應覆蓋的範圍和整個實體長度。一般格式:

content-range:bytes-unitspfirst-byte-pos-last-byte-pos/entity-legth

例 如,傳送頭500個位元組次字段的形式:content-range:bytes0-499/1234如果乙個http訊息包含此節(例如,對範圍請求的響 應或對一系列範圍的重疊請求),content-range表示傳送的範圍,content-length表示實際傳送的位元組數。

last-modified實體頭

last-modified實體頭指定伺服器上儲存內容的最後修訂時間。

HTTP協議資訊頭

accept charset 瀏覽器告訴其他伺服器它採用的字符集 accept encoding 瀏覽器告訴伺服器所支援的壓縮格式 accept language 瀏覽器告訴伺服器所採用的語言 host 想訪問伺服器的哪台主機 if modified since 瀏覽器快取資料的時間 referer...

http協議頭資訊的作用

請求頭 accept charset 用於告訴瀏覽器。客戶機採用的編碼 accept encoding 用於告訴伺服器,客戶機支援的資料壓縮格式 accept language 客戶機的語言環境 host 客戶機通過這個頭告訴伺服器,想訪問的主機名 if modified since 客戶機通過這個...

http標頭檔案User Agent詳解

什麼是user agent user agent中文名為使用者 簡稱 ua,它是乙個特殊字串頭,使得伺服器能夠識別客戶使用的作業系統及版本 cpu 型別 瀏覽器及版本 瀏覽器渲染引擎 瀏覽器語言 瀏覽器外掛程式等。一些 常常通過判斷 ua 來給不同的作業系統 不同的瀏覽器傳送不同的頁面,因此可能造成...