跳至內容

HTTP Location

維基百科,自由的百科全書

HTTP Location 是在兩種情況下,因來自HTTP服務器的響應中返回頭域

  1. 要求網頁瀏覽器加載其他網頁(網域名稱轉址)。在這種情況下,應該使用HTTP狀態碼3xx發送Location頭(Location header)。當請求的URI具有以下內容時,Web服務器響應傳遞:
    • 臨時移動;
    • 永久移動;
    • 處理請求,例如一個POST表單,以一個不同的URI來提供該請求的結果。
  2. 提供有關新創建資源位置的信息。在這種情況下,應該使用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/.

參見

參考文獻

  1. ^ Richardson, Leonard. RESTful Web Services. Sebastopol: O'Reilly. 2007: 228–230. ISBN 978-0-596-52926-0. 
  2. ^ Location. Hypertext Transfer Protocol -- HTTP/1.1. IETF. June 1999: sec. 14.30. RFC 2616. 
  3. ^ IETF HTTPbis Working Group Ticket 185. [2017-06-30]. (原始內容存檔於2016-10-13). 
  4. ^ Location. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. IETF. June 2014: sec. 7.1.2. RFC 7231. 
  5. ^ Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. RFC 3986. 
  6. ^ IANA Uniform Resource Identifer (URI) Schemes. [2014-11-21]. (原始內容存檔於2010-08-24).