The HTTP referer
(a misspelling of referrer
) is an optional HTTP header field
that identifies the address of the webpage
(i.e., the URI
), which is linked to the resource being requested. By checking the referrer, the new webpage can see where the request originated.
In the most common situation, this means that when a user clicks a hyperlink
in a web browser
, the browser sends a request to the server holding the destination webpage. The request may include the referer field, which indicates the last page the user was on (the one where they clicked the link).
is used to allow websites
and web servers
to identify where people are visiting them from, for promotional or statistical purposes.
This entails a loss of privacy
for the user and may introduce a security
The default behaviour of referer leaking puts websites at risk of privacy and security breaches.
To mitigate security risks, browsers have been steadily reducing the amount of information sent in referer. As of March 2021, by default Chrome
, Safari
default to sending only the origin in cross-origin requests.
The misspelling of referrer
was introduced in the original proposal by computer scientist Phillip Hallam-Baker
to incorporate the field into the HTTP
The misspelling was set in stone by the time of its incorporation into the Request for Comments
standards document RFC 1945; document co-author Roy Fielding
has remarked that neither "referrer" nor the misspelling "referer" were recognized by the standard Unix spell checker
of the period.
"Referer" has since become a widely used spelling in the industry when discussing HTTP referrers; usage of the misspelling is not universal, though, as the correct spelling "referrer" is used in some web specifications such as the Referrer-Policy HTTP header
or the Document Object Model
When visiting a web page, the referrer or referring page is the URL of the previous webpage from which a link was followed.
More generally, a referrer is the URL of a previous item which led to this request. The referrer for an image, for example, is generally the HTML
page on which it is to be displayed. The referrer field is an optional part of the HTTP request sent by the web browser
to the web server.
Many websites log referrers as part of their attempt to track their users
. Most web log analysis software
can process this information. Because referrer information can violate privacy
, some web browsers allow the user to disable the sending of referrer information.
software will also filter out referrer information, to avoid leaking the location of non-public websites. This can, in turn, cause problems: some web servers block parts of their website to web browsers that do not send the right referrer information, in an attempt to prevent deep linking
or unauthorised use of images (bandwidth theft
). Some proxy software has the ability to give the top-level address of the target website as the referrer, which reduces these problems but can still in some cases divulge the user's last-visited webpage.
Many blogs publish referrer information in order to link back to people who are linking to them, and hence broaden the conversation. This has led, in turn, to the rise of referrer spam
: the sending of fake referrer information in order to popularize the spammer's website.
This can be used, for example, to individualize a web page based on a user's search engine query. However, the referrer field does not always include search keywords, such as when using Google Search
Most web servers maintain logs of all traffic, and record the HTTP referrer sent by the web browser for each request. This raises a number of privacy concerns, and as a result, a number of systems to prevent web servers being sent the real referring URL have been developed. These systems work either by blanking the referrer field or by replacing it with inaccurate data. Generally, Internet-security
suites blank the referrer data, while web-based servers replace it with a false URL, usually their own. This raises the problem of referrer spam. The technical details of both methods are fairly consistent – software applications act as a proxy server
and manipulate the HTTP request, while web-based methods load websites within frames, causing the web browser to send a referrer URL of their website address. Some web browsers give their users the option to turn off referrer fields in the request header.
Most web browsers do not send the referrer field when they are instructed to redirect using the "Refresh" field. This does not include some versions of Opera
and many mobile web browsers. However, this method of redirection is discouraged by the World Wide Web Consortium
If a website is accessed from a HTTP Secure
(HTTPS) connection and a link points to anywhere except another secure location, then the referrer field is not sent.
standard added support for the attribute/value rel="noreferrer"
, which instructs the user agent to not send a referrer.
Another referrer hiding method is to convert the original link URL to a Data URI scheme
-based URL containing small HTML page with a meta refresh
to the original URL. When the user is redirected from the data:
page, the original referrer is hidden.
Content Security Policy
standard version 1.1 introduced a new referrer
directive that allows more control over the browser's behavior in regards to the referrer header. Specifically it allows the webmaster to instruct the browser not to block referrer at all, reveal it only when moving with the same origin etc.
- ^ Gourley, David; Totty, Brian; Sayer, Marjorie; Aggarwal, Anshu; Reddy, Sailu (27 September 2002). HTTP:The Definitive Guide. ISBN 9781565925090.
- ^ Kyrnin, Jennifer (2012-04-10). "Referrer - What is a Referrer - How do HTTP Referrers Work?". About.com. Retrieved 2013-03-20.
- ^ a b "Does your website have a leak?". ICO Blog. 2015-09-16. Archived from the original on 2018-05-24. Retrieved 2018-08-16.
- ^ "Referrer Policy: Default to strict-origin-when-cross-origin - Chrome Platform Status". www.chromestatus.com. Retrieved 2021-03-23.
- ^ Lee, Dimi; Kerschbaumer, Christoph. "Firefox 87 trims HTTP Referrers by default to protect user privacy". Mozilla Security Blog. Retrieved 2021-03-23.
- ^ Hallam-Baker, Phillip (2000-09-21). "Re: Is Al Gore The Father of the Internet?". alt.folklore.computers. Retrieved 2013-03-20.
- ^ Fielding, Roy (1995-03-09). "Re: referer: (sic)". ietf-http-wg-old. Retrieved 2013-03-20.
- ^ "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content (RFC 7231 § 5.5.2)". IETF. June 2014. Retrieved 2014-07-26. The "referrer" [sic] header field allows the user agent to specify a URI reference for the resource from which the target URI was obtained […]
- ^ "HTML DOM Document referrer Property". w3schools.com. Retrieved 2013-03-20.
- ^ Gundersen, Bret (2011-10-19). "The Impact of Google Encrypted Search". Adobe Digital Marketing Blog. Retrieved 2021-03-17.
- ^ "HTML Techniques for Web Content Accessibility Guidelines 1.0: The META element". W3C. 2000-11-06. Retrieved 2013-03-20.
- ^ "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content: referrer (RFC 7231 § 5.5.2)". IETF. June 2014. Retrieved 2014-07-26. A user agent must not send a referrer header field in an unsecured HTTP request if the referring page was received with a secure protocol
- ^ "4.12 Links — HTML Living Standard: 220.127.116.11 Link type "noreferrer"". WHATWG. 2016-02-19. Retrieved 2016-02-19.
- ^ "Content Security Policy Level 2". W3. 2014. Retrieved 2014-12-08.
Last edited on 15 May 2021, at 12:36
Content is available under CC BY-SA 3.0
unless otherwise noted.