- HTTP 教程
- HTTP - 首頁
- HTTP - 概述
- HTTP - 引數
- HTTP - 訊息
- HTTP - 請求
- HTTP - 響應
- HTTP - 方法
- HTTP - 狀態碼
- HTTP - 報頭欄位
- HTTP - 快取
- HTTP - URL 編碼
- HTTP - 安全性
- HTTP - 訊息示例
- HTTP 有用資源
- HTTP - 快速指南
- HTTP - 有用資源
HTTP - 引數
本章將列出一些重要的 HTTP 協議引數及其語法,以及它們在通訊中的使用方法。例如,日期格式、URL 格式等。這將有助於您在編寫 HTTP 客戶端或伺服器程式時構建請求和響應訊息。在後續章節中學習 HTTP 請求和響應的訊息結構時,您將看到這些引數的完整用法。
HTTP 版本
HTTP 使用<主版本>.<次版本>編號方案來指示協議的版本。HTTP 訊息的版本由第一行中的 HTTP-Version 欄位指示。以下是指定 HTTP 版本號的一般語法
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
示例
HTTP/1.0 or HTTP/1.1
統一資源識別符號
統一資源識別符號 (URI) 只是格式化的、不區分大小寫的字串,包含名稱、位置等,用於識別資源,例如網站、Web 服務等。HTTP 使用的 URI 的一般語法如下
URI = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
這裡,如果埠為空或未給出,則假設 HTTP 的埠為 80,並且空絕對路徑等效於“/”的絕對路徑。除保留和不安全集中的字元外,其他字元等效於其“%”十六進位制編碼。
示例
以下三個 URI 等效
http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7esmith/home.html
日期/時間格式
所有 HTTP 日期/時間戳都必須以格林威治標準時間 (GMT) 表示,絕無例外。HTTP 應用程式允許使用以下三種日期/時間戳表示形式中的任何一種
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123 Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
字元集
我們使用字元集來指定客戶端首選的字元集。可以使用逗號分隔多個字元集。如果未指定值,則預設為 US-ASCII。
示例
以下是有效的字元集
US-ASCII or ISO-8859-1 or ISO-8859-7
內容編碼
內容編碼值表示在透過網路傳遞內容之前已使用編碼演算法對其進行編碼。內容編碼主要用於允許壓縮文件或以其他有用的方式轉換文件,而不會丟失其身份。
所有內容編碼值都不區分大小寫。HTTP/1.1 在 Accept-Encoding 和 Content-Encoding 報頭欄位中使用內容編碼值,我們將在後續章節中看到。
示例
以下是有效的編碼方案
Accept-encoding: gzip or Accept-encoding: compress or Accept-encoding: deflate
媒體型別
HTTP 在Content-Type和Accept報頭欄位中使用 Internet 媒體型別,以便提供開放且可擴充套件的資料型別和型別協商。所有媒體型別值均在網際網路號碼分配機構 (IANA) 中註冊。指定媒體型別的一般語法如下
media-type = type "/" subtype *( ";" parameter )
型別、子型別和引數屬性名稱不區分大小寫。
示例
Accept: image/gif
語言標籤
HTTP 在Accept-Language和Content-Language欄位中使用語言標籤。語言標籤由一個或多個部分組成:一個主語言標籤和一個可能為空的子標籤序列
language-tag = primary-tag *( "-" subtag )
標籤內不允許使用空格,所有標籤都不區分大小寫。
示例
示例標籤包括
en, en-US, en-cockney, i-cherokee, x-pig-latin
其中任何兩個字母的主標籤是 ISO-639 語言縮寫,任何兩個字母的初始子標籤是 ISO-3166 國家程式碼。