萬維網使用超文本傳輸協議HTTP(HyperText Transfer Protocol)來實現各種鏈接。
HTTP報文格式
HTTP請求報文和響應報文都是由三個部分組成的。
1. 開始行,用於區分是請求報文還是響應報文。請求報文中開始行叫“Request-line”,響應報文中叫“Status-Line”。
2. 首部行,用於在客戶端和服務器端之間交換附加信息,可以有好幾行,也可以沒有。每個首部行由一個首部名、一個冒號、一個空格和一個首部值組成。
3. 實體主體,在請求報文中一般不用這個字段。
現在來分析一下,請求報文和響應報文的細節或不同之處。
HTTP版本:HTTP1.1、HTTP1.0、HTTP0.9
狀態碼:3位十進制的狀態編碼
狀態短語:對狀態碼的文字解釋
狀態編碼 | 含義 |
100-199 | 信息 |
200-299 | 成功 |
300-399 | 重定向 |
400-499 | 客戶端出錯 |
500-599 | 服務器端出錯 |
下面是幾個例子:
代碼 | 短語 | 說明 |
100 | Continue | 請求的開始部分已經收到,客戶可以繼續它的請求 |
200 | Ok | 請求成功 |
202 | Accepted | 請求被接受,但還沒有馬上起作用 |
304 | Not modified | 文檔還沒有被修改 |
首部分爲四類:通用(一般)首部(general-header)、實體首部(entity-header)、請求首部(request-header)、響應首部(response-header)。
通用首部給出請求和響應報文中的用於描述報文的一般信息
cache-control 高速緩存
Connection 指出是否連接應當關閉或不要關閉
Date 給出當前日期
MIME-version 給出所使用的MIME版本
upgrade 指明優先使用的通信協議
請求首部只能出現在請求報文中。它指明客戶的配置和客戶優先使用的文檔格式。
Accept-charset 給出客戶端能夠處理的字符集
From 給出用戶的電子郵件地址
響應首部,只能出現在響應報文中。它指明服務器的配置和關於請求的特殊信息。
Accept-range 給出若服務器接受客戶所請求的範圍
Age 給出文檔的使用期限
Public 給出可支持的方法清單
實體首部,給出關於文檔主題的信息。雖然它主要出現在響應報文中,某些包含主體的請求報文,如POST或PUT方法,也使用這種類型的首部。
Allow 列出URL可以使用的合法的方法
Content-language 指明語言
Content-encoding 指明編碼方案
HTTP 1.1 正被定義爲新的HTTP協議的標準。一些新特性已被增加到最新版本的HTTP協議中,主要包括以下幾個方面。
- 固定的鏈接。HTTP1.1允許在同一個連接中完成多重服務請求。以往協議要求爲一個web頁上的每一個圖像建立一個獨立的連接。
- 流水線技術。允許給一個web服務器發送附加的請求,可在初始請求的回答信號到達之前發送。
- 緩衝去指針。允許客戶好服務器的默認緩衝區算法被調用或優化。
- 主機標題。HTTP1.1允許多重主機名與一個單獨的IP地址相關聯。因此,解決了給一個駐留許多虛擬服務器的web服務器配置多個IP地址的需要,可用主機標題來確定請求應該被導向哪個虛擬服務器。
- PUT和DELETE選項。允許一個遠程管理者通過使用一個標準的web瀏覽器來計入或刪除一些內容。
- HTTP重定向。當原始的主頁不能訪問或被刪除時,HTTP重定向允許一個管理者將一個用戶重定向到一個備選的主頁或web站點。