WebjxCom提示:以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer以及Request.ServerVariables里Server_Name与Http_Host之间有什么区别呢? |
刚才运行了一段代码,来查看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.ServerVariable |