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

ASP
ASP编程菜鸟易犯的一个错误
ASP申请单动态添加实现方法及代码
经验总结:ASP与存储过程解析
学以致用 驳“ASP低能论”
使用ASP脚本技术
ASP、Request对象与SQL注入
判断访问是否来自搜索引擎的ASP函数
ASP判断数据库值是否为空的通用函数
大刀阔斧扔掉ASP,充分准备学习ASP.NET
关于创建多级文件夹的ASP函数实例
ASP正则判断取出HTML的图片地址的函数
网页不存在自动给管理员发邮件的ASP代码
ASP教程:等差数列和等比数列通项公式
Recordset对象和Command对象的区别
Filter与updatebatch混合使用实现批量更新
ASP实例:检测整数和长整数的函数
在不支持FSO的服务器上使用XMLDOM创建HTML文件
汉字转拼音ASP函数
网页输出N行N列表格的ASP实现方法
ASP操作数据库的类

ASP 中的 Http_Referer,Server_Name和Http_Host


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