当前位置: 首页 > 图文教程 > 网络编程 > ASP > Http_Referer,Server_Name和Http_Host

ASP
ASP中遍历和操作Application对象的集合
ASP 实例教程:FileSystemObject 对象
制作WEB在线编辑器-插入HTML标签
ASPJPEG综合操作的CLASS
ASP设计常见问题及解答精要
如何用ASP实现电子贺卡一例
ASP生成静态Html文件技术
ASP编程技术学习:Cookie集合
解决ASP中Connection对像封装dll问题
巧解Session cookie
用asp判断某IP是否属于某网段的另类算法
ASP入门:Global.asa文件技巧用法
教程/ASP 十天学会ASP之第三天
推荐:ASP初学者常用源代码总结篇
ASP生成静态Html文件技术杂谈
收集整理ASP的常用内置函数
用ASP动态生成JS的表单验证代码
教程/ASP 十天学会ASP之第一天
在asp聊天室里实现房间功能和用户显示
ASP快速开发方法之数据操作

ASP 中的 Http_Referer,Server_Name和Http_Host


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 54 ::
收藏到网摘: n/a

刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个!
代码<%=Request.ServerVariables.count%>
以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer
首先,我们先知道HTTP_Referer最常用的应用就是能够防止外部提交

下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_REFERER"):
1)  直接用<a href="">
2)   用Submit或<input type="image">提交的表单(POST或GET)
3)   使用JAvaScript提交的表单(POST或GET)

下面我们再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情况:
1)   从收藏夹链接
2)   单击主页或自定义的地址
3)   在浏览器中直接输地址
4)   使用JavaScript的Location.href或者是Location.replace()
5)   <%Response.Redirect%>
6)   <%Response.AddHeader%>或者是<mete http-equiv="refresh">转向
7)   用XML加载地址

显然,Request.ServerVariables("HTTP_REFERER")在多数情况下是不能正常工作的。关于它的具体用法我会在以后的文章中详细的介绍,同时还会介绍Request.ServerVariables("HTTP_HOST")Request.ServerVariables("SERVER_NAME")之间的区别。
敬请关注!

Request.ServerVariables里Server_Name与Http_Host之间有什么区别呢?
如果不仔细看,您应该看不出它们之间的区别。在网上搜了很多,还是也没有看懂,不过最后还是有一句话很是明白:Http_Host可以Request出非80的Server_Port,简单地说就是,Http_Host=Server_Name:Server_Port。

在以前发表过关于Http_Referer作用的文章,现在结合它来写一个ASP防止外部提交的函数

function ChkPost()
  dim server_v1,server_v2
  chkpost=false
  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
  server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
  If Mid(server_v1,8,Len(server_v2))<>server_v2 then
    chkpost=False
  else
   chkpost=True
  end If
end function