我有一个记录用户访问的应用程序。这些访问都不是直接访问的,这些访问中有 100% 是从另一个站点引用的。
我正在通过$_SERVER['HTTP_REFERER']
数据库。大约 35% 的登录主菜通过了推荐人,其余的都是空白的。
是否有一个原因?
HTTP_REFERER
可能是空白的原因有很多。
window.open
,window.location
甚至设置target="_blank"
在锚点或meta refresh
.file_get_contents
和fopen
其他类似功能可能不会设置引用请求。可能有更多情况可能发生这种情况,如果我能想到任何似乎合理的事情,我会更新。
如果用户直接访问您的网站,则没有推荐人。他们也可能已经设置了它,因此他们的浏览器永远不会发送推荐人。
根据这个答案,浏览器在进行元刷新时不一定会发送引荐来源网址。
浏览器有时会referer
在请求中包含 。但这不是强制性的(这referer
是 100% 自愿的)。实际上,围绕 HTTPS 站点存在各种隐私和安全问题referer
(例如,如果 HTTPS 站点将您引至 HTTP 站点,则浏览器不应将引荐站点包含为referer
)。所以不要依赖它。
在 Internet Explorer 4.0 和更高版本中从一个文档链接到另一个文档时,如果链接是从 HTTPS 页面到非 HTTPS 页面,则不会发送 Referer 标头。当链接来自非 HTTP(S) 协议(例如 file://)到另一个页面时,Referer 标头也不会被发送。欲了解更多信息,请访问此链接
当您找不到它丢失的原因时,这是很常见的: - 有时您的引荐来源是 https 而您在 http 上,它会丢失。
否则: - 用户通过直接输入 url 访问。- 用户已添加书签并来自书签。- 有时用户保留浏览器的默认 URL(类似于书签) - 代理浏览可能会删除推荐人。- 作为机器人访问网站(搜索引擎)