Jul 20

ASP- Request对象,教程写的比较失败!太长了 多云

, 08/07/20 22:39 , 技术开发 » ASP , 评论(0) , 引用(0) , 阅读(3446) , Via 本站原创 | |
两天没出门,在家闭门修炼,想修得正果。
有点郁闷……在写教程的时候,真是很矛盾!如果写的细的化,内容太多了。别人会看的累;
如果写的太简单或少的话,觉得对不起观众,怕掌握不够。
刚写到ASP内置对象:Request对象,结果还是写详细了,就当参考手册来学习吧。我觉得很有好处。
Array
中国传统礼尚往来,如果Response对象负责“送礼”,当然会有对象来接收礼物的。在ASP中,Request对象就是专门接受“礼物”的。在HTTP请求期间,接受所有从浏览器提交到服务器的请求内的所有信息。下面就来学习其是如何接受这些信息的。
  Array
z.1 Collection集合
【本节示例参考:\源代码\C5\Example_Request】
因为这里的集合比较多,为了便于掌握,一样按重要程度分开解释:常用和扩展。
  常规
Form HTTP请求表单元素的值。如:用户注册功能,就会用到获取用户输入的用户名。
<%
‘ login 就是表单中的login元素
Request.form(“login”)
%>

QueryString HTTP中查询字符串中变量的值。可以获得表单中以Get方式提交的参数。
技巧:
  如何区分何时使用Form与QueryString:
当表单方法使用post(
),在接受页面请使用Request.Form;
当表单方法使用Get(),会发现接收页面中参数会附加在url中:request_reg.asp?login=zz&pass=zz,这就需要使用Request.QueryString查询字符串中的值。

Cookies HTTP请求中被发送的cookie的值。
  扩展
ServerVariables 预定的服务器环境变量的值。
用法:Response.write Request.ServerVariables("变量名")
根据指定服务器变量名,获取服务器信息,可以使用以下值:
变量名  说明
ALL_HTTP  客户端发送的所有 HTTP 标题
ALL_RAW  检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的。使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现。
APPL_MD_PATH  检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。
APPL_PHYSICAL_PATH  检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理(目录)路径以返回值。
AUTH_PASSWORD  该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。
AUTH_TYPE  这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。
AUTH_USER  未被鉴定的用户名。
CERT_COOKIE  客户端验证的唯一 ID,以字符串方式返回。可作为整个客户端验证的签字。
CERT_FLAGS   如有客户端验证,则 bit0 为 1。如果客户端验证的验证人无效(不在服务器承认的 CA 列表中),bit1 被设置为 1。
CERT_ISSUER   用户验证中的颁布者字段(O=MS,OU=IAS,CN=user name,C=USA)。
CERT_KEYSIZE   安全套接字层连接关键字的位数,如 128。
CERT_SECRETKEYSIZE  服务器验证私人关键字的位数。如 1024。
CERT_SERIALNUMBER  用户验证的序列号字段。
CERT_SERVER_ISSUER  服务器验证的颁发者字段。
CERT_SERVER_SUBJECT  服务器验证的主字段。
CERT_SUBJECT  客户端验证的主字段。
CONTENT_LENGTH  客户端发出内容的长度。
CONTENT_TYPE  内容的数据类型。同附加信息的查询一起使用,如HTTP查询GET、POST和PUT。
GATEWAY_INTERFACE  服务器使用的 CGI 规格的修订。格式为 CGI/revision。
HTTP_  注意 服务器将 HeaderName 中的下划线(_)解释为实际标题中的破折号。例如,如果您指定 HTTP_MY_HEADER,服务器将搜索以 MY-HEADER 为名发送的标题文件。
HTTPS   如果请求穿过安全通道(SSL),则返回 ON。如果请求来自非安全通道,则返回 OFF。OFF。
HTTPS_KEYSIZE  安全套接字层连接关键字的位数,如 128。
HTTPS_SECRETKEYSIZE  服务器验证私人关键字的位数。如 1024。
HTTPS_SERVER_ISSUER  服务器验证的颁发者字段。
HTTPS_SERVER_SUBJECT  服务器验证的主字段。
INSTANCE_ID  文本格式 IIS 实例的 ID。如果实例 ID 为 1,则以字符形式出现。使用该变量可以检索请求所属的(元数据库中)Web 服务器实例的 ID。
INSTANCE_META_PATH  响应请求的 IIS 实例的元数据库路径。
LOCAL_ADDR  返回接受请求的服务器地址。如果在绑定多个 IP 地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要。
LOGON_USER  用户登录 Windows NT® 的帐号。
PATH_INFO  客户端提供的额外路径信息。可以使用这些虚拟路径和 PATH_INFO 服务器变量访问脚本。如果该信息来自 URL,在到达 CGI 脚本前就已经由服务器解码了。
PATH_TRANSLATED  PATH_INFO 转换后的版本,该变量获取路径并进行必要的由虚拟至物理的映射。
QUERY_STRING  查询 HTTP 请求中问号(?)后的信息。
REMOTE_ADDR  发出请求的远程主机的 IP 地址。
REMOTE_HOST  发出请求的主机名称。如果服务器无此信息,它将设置为空的 MOTE_ADDR 变量。
REMOTE_USER  用户发送的未映射的用户名字符串。该名称是用户实际发送的名称,与服务器上验证过滤器修改过后的名称相对。
REQUEST_METHOD  该方法用于提出请求。相当于用于 HTTP 的 GET、HEAD、POST等。
SCRIPT_NAME  执行脚本的虚拟路径。用于自引用的 URL。
SERVER_NAME  出现在自引用 UAL 中的服务器主机名、DNS 化名或 IP 地址。
SERVER_PORT  发送请求的端口号。
SERVER_PORT_SECURE  包含 0 或 1 的字符串。如果安全端口处理了请求,则为 1,否则为 0。
SERVER_PROTOCOL  请求信息协议的名称和修订。格式为 protocol/revision 。
SERVER_SOFTWARE   应答请求并运行网关的服务器软件的名称和版本。格式为 name/version。
URL  提供 URL 的基本部分。
看到这里,已经可以根据ServerVariables所提供的百宝箱,获取想知道的服务器信息了,现在看来原来想了解一台服务器信息,不是那么神秘哟!也可以用这些参数编写一个ASP探针程序了。使用方法:
<%
' 输出获取到的值
Response.write Request.ServerVariables("ALL_HTTP")
%>

ClientCertificate  浏览器发布请求中获取验证字段(由 X.509 标准指定)。如果 Web 浏览器使用 SSL3.0/PCT1 协议(也就是说,它使用以 https:// 开头的 URL,而不是 http://)连接服务器及服务器请求验证,则浏览器将发送验证字段。
用法:Request.ClientCertificate(key[SubField])
参数key 指定要获取的验证字段名称。客户端验证可包括下列字段:
Certificate 按ASN.1格式的二进制流字符串,其中包括完整的验证内容。
Flags 一组标志,提供其他客户端验证信息。可以设置下面的标志:
ceCertPresent - 当前的客户端验证。
ceUnrecognizedIssuer - 该链上来自未知的发布者的最后一个验证。

注意:
要使用以上标志,必须在ASP中包含客户端验证包含文件。若使用VBScript,则应包含 cervbs.inc。通常这些文件安装在\Inetpub\ASPSamp\Samples目录下。
Issuer 包含子字段值的列表的字符串,此列表包含验证发布者的信息。若该值在无 SubField 项的情况下指定,则 ClientCertificate 集合返回一个以逗号分隔的子字段列表。例如:C=US, O=Verisign 等。
SerialNumber 包含验证的序列号的字符串,序列号以连字符 (-) 分隔的 16 进制 ASCII 码表示。例如:04-67-F3-02。
Subject 包含子字段值的列表的字符串,此列表包含有关验证的主题信息。若该值在无 SubField项的情况下指定,则ClientCertificate集合返回一个以逗号分隔的子字段列表。例如:C=US, O=Verisign等。
ValidFrom 指定验证何时有效。此日期遵循 VBScript 格式并随国家(地区)设置而变化。例如:在美国可表示为 9/26/96 11:59:59 PM。
ValidUntil 指定验证何时到期。

[SubField]可选参数,用于按 Subject 或 Issuer 关键字检索单独的字段。此参数作为一个后缀添加到 Key 参数中。例如:IssuerO 或 SubjectCN。列出了一些通用的SubField值。
C 指定原国家(地区)名。
CN 指定公用用户名。(此子字段仅同 Subject 关键字一起使用。)
GN 指定给定的名称。
I 指定一组首字母。
L 指定所在地。
O 指定公司或组织名称。
OU 指定机构的名称。
S 指定州或省。
T 指定此人或组织的头衔。
z2 property属性
TotalBytes 只读属性,指定客户端在请求正文中发送的总字节数。
使用方法:Request.TotalBytes

z3 method方法
BinaryRead 检索从客户端发送到服务器作为 POST 请求的一部分的数据。
注意:
  如果已经引用Request.Form集合,就不可以使用此方法;同时,如果用了BinaryRead方法,就不能访问Request.Form集合。
z4 Variable
如果指定的变量不是上述的五个集合中的一个,Request对象返回EMPTY。

可以通过调用Request(variable)直接使用所有的变量,而不需要集合的名称。服务器将按照下面的顺序搜索集合。QueryString、Form、Cookies、ClientCertificate、ServerVariables。

唉,先就罗嗦这些,待我整理思路,从头再来。
到现在还没有吃饭,解决温饱问题,再来继续奋斗!

作者:@Everyday NetLog
地址:http://log.zhoz.com/read.php?371
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

Tags:
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]