Referer
Definition
In the context of the web, a referer (comes from the misspelled word referrer) is the URL of the previous webpage that linked to the current webpage[1]. It is used to identify where the user came from, and can be used to track user behavior and help websites understand how they are being accessed. The referer information is sent as a header field in an HTTP request, and can be used by the server to customize the content or behavior of the webpage based on where the user came from.
Functionality
In HTML, the referer information is not directly accessible to the webpage itself. Instead, it is passed as a header field in the HTTP request that is sent from the browser to the server when the webpage is requested. The server can then use this information to customize the content or behavior of the webpage in various ways.
One way to access the referer information on the server-side is to use the $_SERVER['HTTP_REFERER'] variable in PHP, or the request.headers.referer property in Node.js. On the client-side, you can use the Document.referrer property in JavaScript to access the referer information.
Example
Here is an example of how you might use the Document.referrer property in JavaScript to display a message on a webpage depending on where the user came from:
if (document.referrer.includes("google.com")) {
document.write("Welcome! You came from Google.");
} else if (document.referrer.includes("bing.com")) {
document.write("Welcome! You came from Bing.");
} else {
document.write("Welcome! We're not sure where you came from.");
}
Note that the Document.referrer property is not always reliable, as it can be blocked or modified by the browser or by third-party extensions. In addition, it is not available for security reasons when the user navigates to a webpage using a secure (HTTPS) connection from a page with an insecure (HTTP) connection.
Preventing transmission of the referer information
There are a few ways that users can stop the transmission of the referer information:
Use a private browsing mode
Many web browsers have a "private" or "incognito" mode that prevents the browser from storing history, search queries, and other data that could be used to track the user's activity. When private browsing mode is enabled, the browser will typically not send a referer header in HTTP requests.
Use a third-party privacy extension
There are a number of browser extensions that can block or modify the referer header, as well as other headers and data that could be used to track the user's activity. Some examples of these extensions include Privacy Badger, Ghostery, and HTTPS Everywhere.
Modify the browser settings
In some cases, it may be possible to disable the referer header by modifying the browser settings. For example, in Mozilla Firefox, you can go to "Privacy & Security" in the Options menu, and then uncheck the "Send referrer header" option under the "Tracking Protection" section.
Use a different protocol
If you need to access a webpage over a secure (HTTPS) connection, but the referer header is being blocked or modified, you can try using a different protocol, such as HTTP or FTP, to access the webpage. This will bypass the referer header entirely, but it may not be possible in all cases.
Keep in mind that while these methods can help to reduce the transmission of the referer information, they may not be completely effective in all cases, and they may have other trade-offs in terms of privacy and security.