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

ASP
Asp+Sql 对数据库的各种操作
ASP:6行代码实现无组件上传
ASP中几种分页显示的比较
ASP中数据库调用中常见错误的现象和解决
ASP实用技巧:强制刷新和判断文件地址
asp全站防止注入的代码
ASP如何获取客户端真实IP地址
ASP实现可显示和隐藏的树型菜单
如何用ASP获取真实IP地址
ASP与SQL数据库连接代码
拒绝攻击 万能Asp防注入代码
草根站长成长计划:跟我学新云采集入门(2)
ASP技巧:提高使用Request集合的效率
Asp用存储过程实现数据分页
做网页时常用的ASP函数
Asp编码优化技巧八则
ASP中Cache技术的应用
用ASP封IP的方法,防止固定IP垃圾留言
ASP实现一行多列显示方法实例程序
ASP实现动态添加表单内容的实例程序

ASP 中的 Http_Referer,Server_Name和Http_Host


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 29 ::
收藏到网摘: 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