HTTP location

The HTTP Location header field is returned in responses from an HTTP server under two circumstances:

  1. To ask a web browser to load a different web page (URL redirection). In this circumstance, the Location header should be sent with an HTTP status code of 3xx. It is passed as part of the response by a web server when the requested URI has:
    • Moved temporarily;
    • Moved permanently; or
    • Processed a request, e.g. a POSTed form, and is providing the result of that request at a different URI
  2. To provide information about the location of a newly created resource. In this circumstance, the Location header should be sent with an HTTP status code of 201 or 202.[1]

An obsolete version of the HTTP 1.1 specifications (IETF RFC 2616) required a complete absolute URI for redirection.[2] The IETF HTTP working group found that the most popular web browsers tolerate the passing of a relative URL[3] and, consequently, the updated HTTP 1.1 specifications (IETF RFC 7231) relaxed the original constraint, allowing the use of relative URLs in Location headers.[4]

Examples

Absolute URL example

Absolute URLs are URLs that start with a scheme[5] (e.g., http:, https:, telnet:, mailto:)[6] and conform to scheme-specific syntax and semantics. For example, the HTTP scheme-specific syntax and semantics for HTTP URLs requires a "host" (web server address) and "absolute path", with optional components of "port" and "query".

A client requesting https://www.example.com/index.html using

GET /index.html HTTP/1.1
Host: www.example.com

may get the server response

HTTP/1.1 302 Found
Location: https://www.example.org/index.php

Relative URL absolute path example

Relative URLs are URLs that do not include a scheme or a host. In order to be understood they must be combined with the URL of the original request.

A client request for https://www.example.com/blog/all may get a server response with a path that is absolute because it starts with a slash:[7]

HTTP/1.1 302 Found
Location: /articles/

The URL of the location is expanded by the client to https://www.example.com/articles/.[8]

Relative URL relative path example

A client request for https://www.example.com/blog/latest may get a server response with a path that is relative because it doesn't start with a slash:[7]

HTTP/1.1 302 Found
Location: 2020/zoo

The client removes the path segment after the last slash of the original URL and appends the relative path resulting in https://www.example.com/blog/2020/zoo.[9][8]

See also

References

  1. ^ Richardson, Leonard (2007). RESTful Web Services. Sebastopol: O'Reilly. pp. 228–230. ISBN 978-0-596-52926-0.
  2. ^ "Location". Hypertext Transfer Protocol -- HTTP/1.1. IETF. June 1999. sec. 14.30. doi:10.17487/RFC2616. RFC 2616.
  3. ^ IETF HTTPbis Working Group Ticket 185
  4. ^ "Location". Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. IETF. June 2014. sec. 7.1.2. doi:10.17487/RFC7231. RFC 7231.
  5. ^ Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. doi:10.17487/RFC3986. RFC 3986.
  6. ^ "IANA Uniform Resource Identifier (URI) Schemes". Retrieved 2014-11-21.
  7. ^ a b "Relative Reference". Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. sec. 4.2. doi:10.17487/RFC3986. RFC 3986. Retrieved 2020-11-22.
  8. ^ a b "Normal Examples". Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. sec. 5.4.1. doi:10.17487/RFC3986. RFC 3986. Retrieved 2020-11-22.
  9. ^ "Merge Paths". Uniform Resource Identifier (URI): Generic Syntax. IETF. January 2005. sec. 5.2.3. doi:10.17487/RFC3986. RFC 3986. Retrieved 2020-11-22.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.