HTTP Location
HTTP Location 是在兩種情況下,因來自HTTP服務器的響應中返回頭域:
- 要求網頁瀏覽器加載其他網頁(網域名稱轉址)。在這種情況下,應該使用HTTP狀態碼3xx發送Location頭(Location header)。當請求的URI具有以下內容時,Web服務器響應傳遞:
- 臨時移動;
- 永久移動;
- 處理請求,例如一個POST表單,以一個不同的URI來提供該請求的結果。
- 提供有關新創建資源位置的信息。在這種情況下,應該使用HTTP狀態碼201或202發送Location頭。[1]
HTTP 1.1規範(IETF RFC 2616)的過時版本需要完整的重定向URI。[2] IETF HTTP工作組發現,最受歡迎的Web瀏覽器允許傳遞相對URL(relative URL)[3] 。因此,更新後的HTTP 1.1規範(IETF RFC 7231)放寬了原始的約束,允許在位置標題中使用相對URL。[4]
例子
絕對URL(Absolute URL)示例
絕對URL是一種以方案為頭的URL[5] (例如:http:,https:,telnet:,mailto:)[6] ,並符合方案特定的語法和語義。 例如HTTP URL特定於HTTP方案的語法和語義需要用「主機」(Web服務器地址)和「絕對路徑」,其中可選元件為「端口」和「查詢」。
例如,客戶端請求:
GET /index.html HTTP/1.1
Host: www.example.com
伺服器回應:
HTTP/1.1 302 Found
Location: http://www.example.org/index.php
該位置的URL被客戶端重定向到http://www.example.org/index.php.
相對URL(Relative URL)示例
相對URL是不包含方案或主機的URL。為了理解,它們必須與原始請求的URL相結合。例如,客戶端請求:
GET /blog HTTP/1.1
Host: www.example.com
伺服器回應:
HTTP/1.1 302 Found
Location: /articles/
該位置的URL被客戶端擴展為http://www.example.com/articles/.
參見
參考文獻
- ^ Richardson, Leonard. RESTful Web Services. Sebastopol: O'Reilly. 2007: 228–230. ISBN 978-0-596-52926-0.
- ^ Location. Hypertext Transfer Protocol -- HTTP/1.1. IETF. June 1999: sec. 14.30. RFC 2616.
- ^ IETF HTTPbis Working Group Ticket 185. [2017-06-30]. (原始內容存檔於2016-10-13).
- ^ Location. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. IETF. June 2014: sec. 7.1.2. RFC 7231.
- ^ Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. RFC 3986.
- ^ IANA Uniform Resource Identifer (URI) Schemes. [2014-11-21]. (原始內容存檔於2010-08-24).