2011-05-18 94 views
4
GET http://stackoverflow.com/questions HTTP/1.1 
Host: stackoverflow.com 

HTTP標準是否要求向GET請求提供絕對或相對地址?什麼時候請求是在代理中?關於http請求標準

我問這個,因爲我覺得它與Host信息重複。

回答

5
GET/HTTP/1.1 

是一個有效的請求行。完整的路徑是沒有必要的。

5.1.2 Request-URI中

請求URI是統一資源 標識符(3.2節)和 標識在其上 應用請求該資源。

Request-URI = "*" | absoluteURI | abs_path | authority 

對Request-URI中的四個選項是 取決於 請求的性質。星號「*」表示 該請求不適用於 特定資源,而是適用於服務器 本身,並且僅當使用的 方法不一定將 應用於資源時才被允許。一個示例將是

OPTIONS * HTTP/1.1 

的請求被給代理製成時,絕對URI形式是必需的。 代理被請求轉發 請求或從有效的 緩存中提供服務,並返回響應。注意 ,代理可以將請求 轉發給另一個代理或直接轉發給由absoluteURI指定的 服務器。爲了避免請求循環,代理必須能夠識別其所有服務器名稱,包括任何別名,本地 變體和數字IP 地址。一個例子請求行會 是:

GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 

要允許過渡到 absoluteURIs在未來 版本HTTP的所有請求,所有的HTTP/1.1服務器 必須接受絕對URI形式 請求,即使HTTP/1.1客戶端 只會在 代理的請求中生成它們。

+0

但是,主機頭是必需的。 – hammar 2011-05-18 06:45:58

+0

是的,我打算說'請求行'而不是'請求'。我已經更新了答案。 – SpliFF 2011-05-18 06:50:00

+0

這是標準做法,從絕對URI或使用主機頭提取主機名? – DriverBoy 2011-05-18 09:23:33

0

您可以查閱HTTP RFC

3.2.1在HTTP常規語法

的URI可以用絕對形式表示或相對於一些 已知基本URI [11],這取決於其使用的上下文。

0

主機詳細信息不是必需的。相對路徑已足夠