我與我的團隊圍繞使用HttpRequest.UrlReferrer進行了一次有趣的討論,並希望徵求來自社區的反饋。根據W3C spec:我應該在確定轉介時使用Request.UrlReferrer
引薦[原文如此]請求頭字段 允許客戶端指定,對於 服務器的益處,地址的 (URI)從中 Request-URI中是資源獲得(該 「引薦」,雖然頭字段 拼寫錯誤。)引薦 請求頭允許服務器 產生的反向鏈接列表來 資源利益,日誌, 優化高速緩存等,還允許 過時或錯誤輸入鏈接爲 追蹤維修。如果 請求URI是從源 獲得的,並且沒有自己的URI,例如從用戶鍵盤輸入的用戶鍵盤輸入 ,則不應發送Referer 字段。
Request.UrlReferrer對象執行將包含格式正確的URI的引用字符串轉換爲每個請求上具有屬性的對象的工作。
根據我們的記錄有一些進來包含在轉診無效數據,如請求:
localhost
app:/BeamBackTest.swf
app:/multtiple.swf
app:/AFriendFeed.swf
ALToolBar
app:/index.html
mhtml:file://C:\Documents+and+Settings\User\Desktop\oracle\What+is+a+View+in+Oracle+-+Stack+Overflow.mht
使用Request.UrlReferrer將意味着上述情況將是NULL。儘管數據可能很有趣,但可能無用,但使用Request.UrlReferrer丟棄基於W3C規範的無效數據還是使用Request.ServerVariables [「HTTP_REFERER」]保留它是更好的方法。