我想知道301重定向是否始终保留referrer.
我创建了一个名为"gotoorig_https.html"的页面,其中包含指向页面"orig_https.asp"的超链接.
"orig_https.asp"将301重定向到显示document.referrer的"dest.html".
在这种情况下,
http page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
https page(gotoorig_https.html) -> orig_https.asp(301 redirect)-> https page (dest.html) <--the referrer preserves
Run Code Online (Sandbox Code Playgroud)
我还创建了一个名为"gotoorig_http.html"的页面,其中包含指向页面"orig_http.asp"的超链接."orig_http.asp"将301重定向到"dest.html",显示document.referrer.
在这种情况下,
http page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer preserves
https page(gotoorig_http.html) -> orig_http.asp(301 redirect)-> http page (dest.html) <--the referrer DOES NOT preserve.
Run Code Online (Sandbox Code Playgroud)
为什么最后一种情况发生?
假设我有位于网页http://www.website.com用<iframe>它.像这样:
<html>
<head>...</head>
<body>
...
<iframe src="http://www.washington.edu">
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在假设某人访问www.website.com并点击iframe本身的链接(此链接位于www.washington.edu网站上).
我的问题是在这种情况下什么是HTTP Referer?
是http://www.website.com(托管iframe的页面)还是http://www.washington.edu(点击链接的页面)?
如果 Referer 标头中无论如何都有 Origin,那么同时拥有这两个标头有什么意义呢?
如果接收 HTTP 请求的服务器想知道 Origin,只需查看 Referer 标头中的域即可。
我知道如果是 HTTPS 到 HTTP 请求(以及许多其他场景),则不会发送 Referer 标头,但是为什么他们不设计它,而不是删除它,而是仍然发送它,但它只有域名(Origin 标头会有)?
注意:未定义的索引:HTTP_REFERER
$ http_referer = $ _SERVER ['HTTP_REFERER']
我在教程中使用了它.它看起来没问题
代码也是从包含文件调用它
我应该改变什么?
我添加了print_r($ _ SERVER); 现在页面给了我这个
Array ([UNIQUE_ID] => UoSxWa56310AAAwUckIAAAAA
[HTTP_HOST] => movafaghha.com
[HTTP_COOKIE] => __utma=210711305.58608218.1372977010.1372977010.1372977010.1; __utmz=210711305.1372977010.1.1.utmcsr=who.is|utmccn=(referral)|utmcmd=referral|utmcct=/whois/movafaghha.com; PHPSESSID=83eb0e2ae7ebe4b6c2eeb071d9f5de71
[HTTP_X_REAL_IP] => 109.109.41.81
[HTTP_X_FORWARDED_HOST] => movafaghha.com
[HTTP_X_FORWARDED_SERVER] => movafaghha.com
[HTTP_X_FORWARDED_FOR] => 109.109.41.81
[HTTP_CONNECTION] => close
[HTTP_CACHE_CONTROL] => max-age=0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,fa;q=0.6
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache
[SERVER_NAME] => movafaghha.com
[SERVER_ADDR] => 174.122.223.93
[SERVER_PORT] => 80 …Run Code Online (Sandbox Code Playgroud) 这可能是一个愚蠢的问题,但是有可能捕获用户键入Google搜索框的内容,以便可以在我的网站上的目标网页上生成动态页面吗?
例如,假设有人在Google上搜索"热狗",我的网站就会成为搜索结果链接之一.如果用户点击指向他们链接到我网站的链接,我是否可以以某种方式从Google搜索框中了解或捕获"热狗"文本,以便我可以调用在本地数据库中搜索内容的脚本有关热狗,然后显示?对我来说似乎完全不可能,但我真的不知道.谢谢.
我正在为电子邮件营销跟踪创建自己的电子邮件跟踪系统.我已经能够使用http referrer确定他们正在使用的每个人的电子邮件客户端,但由于某种原因,GMAIL根本不发送HTTP_REFERRER!
所以我试图找到另一种方法来识别gmail何时从我的服务器请求透明图像.我得到以下标题print_r($_SERVER);:
DOCUMENT_ROOT = /usr/local/apache/htdocs
GATEWAY_INTERFACE = CGI/1.1
HTTP_ACCEPT = */*
HTTP_ACCEPT_CHARSET = ISO-8859-1,utf-8;q=0.7,*;q=0.3
HTTP_ACCEPT_ENCODING = gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE = en-GB,en-US;q=0.8,en;q=0.6
HTTP_CONNECTION = keep-alive
HTTP_COOKIE = __utmz=156230011.1290976484.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=156230011.422791272.1290976484.1293034866.1293050468.7
HTTP_HOST = xx.xxx.xx.xxx
HTTP_USER_AGENT = Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.237 Safari/534.10
PATH = /bin:/usr/bin
QUERY_STRING = i=MTA=
REDIRECT_STATUS = 200
REMOTE_ADDR = xx.xxx.xx.xxx
REMOTE_PORT = 61296
REQUEST_METHOD = GET
Run Code Online (Sandbox Code Playgroud)
该清单中有什么用途吗?或者我还能做些什么来实际获得http推荐人,如果没有其他ESP如何设法查找是否使用gmail查看电子邮件?
顺便说一下,如果我们能够阻止这是否符合道德规范,我很感激,因为许多ESP已经这样做了,我只是不想为他们的服务买单而我想在内部做.
感谢所有实施建议.
我想我会更新这个问题,并根据赏金更清楚.
我想知道用户何时在发送到GMail收件箱时打开我的电子邮件.假设,我有通常的透明图像跟踪,用户不会阻止图像.
我想用单个请求和请求透明图像时获得的标题详细信息来执行此操作.
是否可以http-referer通过纯JS或JQuery 获取访问者?
我正在尝试使用Google Text-To-Speech播放音频.因此,我需要在Referer和User-Agent正确设置的情况下向其端点发布请求.这个电话应该返回一个我可以播放的MP3.
但是,我得到"拒绝设置不安全的标头"错误.这是我的代码.我该怎么做?
$.ajax({
url: 'http://translate.google.com/translate_tts?ie=UTF-8&q=Hello&tl=en&client=t',
beforeSend: function(xhr) {
xhr.setRequestHeader("Referer", "http://translate.google.com/");
xhr.setRequestHeader("User-Agent", "stagefright/1.2 (Linux;Android 5.0)");
}, success: function(data){
el.mp3 = new Audio(data);
el.mp3.play();
}
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试保存用户在注册时来自的网站.现在我的ApplicationController中有一个before_filter:
before_filter :save_referer
def save_referer
unless is_logged_in?
session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
end
end
Run Code Online (Sandbox Code Playgroud)
然后,当创建用户时,它会检查此会话变量并将其设置为nil.有时这不起作用,我担心使用像这样的会话可能会发生一些意想不到的事情.有没有人有更好的方法?或者也许是一些输入?
编辑:这是我用来保存引用者的逻辑:
def create
@user = User.new(params[:user])
if @user.save_with(session[:referer])
....
end
Run Code Online (Sandbox Code Playgroud)
用户
def save_with(referer)
self.referer = referer unless referer == "null"
self.save
end
Run Code Online (Sandbox Code Playgroud)
有什么理由不起作用吗?
在我的项目的消息系统,当你从一个用户的消息,你发送一个电子邮件警告说,其他用户发了一个信息给这里查看邮件点击(即帖子的网址),所以如果用户没有在系统登录他重定向到登录页面,登录后它应该回到referer url.我在核心文件夹中创建了一个basecontoller并扩展了CI_controller,验证代码如下所示.
function authenticate($type = 'user')
{
if($type == 'user')
{
if($this->user_id)
{
// user is logged in. check for permissions now
}
else
{
// user isnt logged in. store the referrer URL in a var.
if(isset($_SERVER['HTTP_REFERER']))
{
$redirect_to = str_replace(base_url(),'',$_SERVER['HTTP_REFERER']);
}
else
{
$redirect_to = $this->uri->uri_string();
}
redirect('user/login?redirect='.$redirect_to);
exit;
}
}
if($type == 'admin')
{
if($this->session->userdata('admin_id') && $this->session->userdata('user_type') ==5)
{
// Admin is logged in
}
else
{
redirect('admin/login');
exit;
}
}
}
Run Code Online (Sandbox Code Playgroud)
引荐网址为"http://example.com/project/pm/view_conversation?id=11"现在的问题是我得到引荐来源网址,直到view_conversation并没有能够得到的ID部分.
有什么建议吗?
谢谢.
http-referer ×10
php ×4
html ×2
http ×2
javascript ×2
ajax ×1
codeigniter ×1
email ×1
gmail ×1
http-headers ×1
iframe ×1
indexing ×1
jquery ×1
redirect ×1
search ×1
session ×1
undefined ×1
user-agent ×1