当HTML浏览器从一个URL到另外一个URL的时候,它默认地会发送一个叫做 Referer的 HTTP头给服务器,告诉它在浏览这个页面之前的那个页面。这是一个非常有用的特点,在WAP环境中同样也有。但是既然这个信息来自用户代理(浏览器)、WAP设备,通常为了节约带宽和时间,就被省略了。为了使用 Referer ,应该在<a>,<go>等标签中加入sendreferer参数,并设置为true,这样就会把参考的URL发送到服务器。
做了个测试:
a.aspx:
<%@ Page Language="C#" %><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<script runat="server">
</script>
<wml>
<card title="Wap">
<p>
<a href="b.aspx" sendreferer="true">b.aspx</a>
</p>
</card>
</wml>b.aspx:
<%@ Page Language="C#" %><?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<script runat="server">
</script>
<wml>
<card title="Wap">
<p>
<% =Request.ServerVariables["HTTP_REFERER"]%>
</p>
</card>
</wml>再使用移动设备测试,能发送REFERER了,但并不完整,在b.aspx中大都只显示"a.aspx"。Nokia5800不加sendreferer时能正常显示REFERER,加了后都显示"a.aspx"了。
这还只是单个站上测试,实际使用中我们不能保证其他WAP站链接都带sendreferer。从测试结果来看:WAP页面要像HTML那样正常获取HTTP_REFERER的值,可能性不大。
评论(0)
暂无评论。