HTTP參照位址

HTTP參照位址（referer，或HTTP referer）是HTTP表頭的一個欄位，用來表示從哪兒連結到目前的網頁，採用的格式是URL。換句話說，藉著HTTP參照位址，目前的網頁可以檢查訪客從哪裡而來，這也常被用來對付偽造的跨網站請求。

而dereferer則是將HTTP參照位址資訊剝離，所以網站將無法識別訪客從何而來。

拼写问题 
Referer的正确英语拼法是referrer。这是早期HTTP规范当中存在的拼写错误，后来为保持向下兼容将错就错。例如DOM Level 2、Referrer Policy等其他网络技术的规范曾试图修正此问题，使用正确拼法，导致目前拼法并不统一。

概念与功能 
當訪客訪問網頁時，HTTP參照位址（referer或referring page）是前一個網頁的URL。如果是圖片的話，通常指的就是圖片所在的網頁。在网页浏览器送往網頁伺服器的時候，HTTP參照位址就被包含在HTTP請求方法中。

網站會将參照位址记录以便追蹤使用者的動態或进行统计，大部分分析軟體也都會處理這個資訊。但因參照位址資訊可能會带来隐私权問題，不少网页浏览器允許使用者设置不要送出這個資訊，有些代理服务器和防火牆也會将參照位址資訊过滤掉，以避免外部获知非公開的网络地址。缺少參照位址資訊有可能會造成某些使用問題：某些伺服器會因為缺少正確的參照位址資訊而進行阻擋，以避免未經授權的圖片引用（图像防盗链）或是其他對伺服器有影響的行為。針對這樣的阻擋，有些軟體还提供了針對特定網站送出假来源位址的功能（反防盗链）。

如何取得HTTP參照位址 
ASP.NET（C#）
string strReferrer = Request.UrlReferrer.AbsolutePath.ToString();
string strReferrer = Request.ServerVariables("http_referrer");
string strReferrer = Request.UrlReferrer.ToString();

ASP
strReferrer = Request.ServerVariables("HTTP_REFERER").Item;
PHP
$strReferrer = $_SERVER["HTTP_REFERER"];
JAVA
strReferrer = request.getHeader("referer");
GO
strReferrer = http.Request.Referer()
Python
from flask import Flask,request
app = Flask(__name__)
@app.route("/")
def Get_Referer():
    Referer = request.headers.get("Referer")
    return Referer

參考與外部連結 
 RFC 2616: Hypertext Transfer Protocol – HTTP/1.1
 IRI – Internationalized Resource Identifiers

參考資料 

HTTP
非標準拼寫