asp Http_Referer,Server_Name和Http_Host

来源:asp之家 时间:2011-03-29 11:12:00 

刚才运行了一段代码,来查看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

 Select Case
假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:
代码如下:

 

select case payment 
case "Cash" 
msgbox "You are going to pay cash" 
case "Visa" 
msgbox "You are going to pay with visa" 
case "AmEx" 
msgbox "You are going to pay with American Express" 
case Else 
msgbox "Unknown method of payment" 
end select

以上代码的工作原理:首先,我们需要一个简单的表达式(常常是一个变量),并且这个表达式会被做一次求值运算。然后,表达式的值会与每个 case 中的值作比较,如果匹配,被匹配的 case 所对应的代码会被执行。

标签:asp,Http_Referer,Server_Name,Http_Host
0
投稿

猜你喜欢

  • 在Python中使用Neo4j的方法

    2023-01-16 04:12:39
  • Python中表达式x += y和x = x+y 的区别详解

    2022-02-24 04:11:19
  • Python Tkinter之事件处理详解

    2021-06-08 07:19:53
  • python爬取亚马逊书籍信息代码分享

    2021-03-25 09:38:14
  • 简单获取键盘的KeyCode

    2008-04-18 12:37:00
  • asp如何使用MsChart制图工具?

    2010-06-05 12:40:00
  • python实现指定字符串补全空格、前面填充0的方法

    2022-04-06 21:13:58
  • javascript的var与let,const之间的区别详解

    2024-05-09 15:06:41
  • python数学建模之Numpy 应用介绍与Pandas学习

    2022-09-13 07:39:32
  • python数据类型bytes 和 bytearray的使用与区别

    2021-08-26 05:51:48
  • Python Opencv实现最强美颜滤镜效果

    2021-11-09 11:23:15
  • 利用python和百度地图API实现数据地图标注的方法

    2023-01-30 11:59:43
  • Python中for循环和while循环的基本使用方法

    2021-02-21 01:29:48
  • Go语言的互斥锁的详细使用

    2024-03-11 04:04:30
  • pymssql ntext字段调用问题解决方法

    2022-04-22 06:55:06
  • git push 本地项目推送到远程分支的方法(git命令版)

    2022-06-16 02:03:13
  • 彻底弄懂CSS盒子模式之一(DIV布局快速入门)

    2007-05-11 17:03:00
  • Python数据可视化之环形图

    2022-03-26 04:24:12
  • 一文带你深入理解Golang中的RWMutex

    2024-02-08 11:31:30
  • python range实例用法分享

    2021-09-28 02:54:46
  • asp之家 网络编程 m.aspxhome.com