HTTP Location

(重定向自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).