Request、Response、Session对象

Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。

一、Request对象的五个集合:

QueryString用以获取客户端附在url地址后的查询字符串中的信息。

    例如:stra=Request.QueryString ["strUserld"]

Form:用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)

    例如:stra=Request.Form["strUserld"]

Cookies:用以获取客户端的Cookie信息。

    例如:stra=Request.Cookies["strUserld"]

ServerVariables:用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。

    例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址

ClientCertificate:用以获取客户端的身份验证信息

    例如:stra=Request.ClientCertificate["VALIDFORM"],对于要求安全验证的网站,返回有效起始日期。

二、Response对象

    Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应。Response对象提供了一个数据集合cookie,它用于在客户端写入cookie值。若指定的cookie不存在,则创建它。若存在,则将自动进行更新。结果返回给客户端浏览器。

    语法格式:Response.Cookies(CookieName)[(key)|.attribute]=value。这里的CookiesName 是指定的Cookie的名称,如果指定了Key,则该Cookie就是一个字典,Attribute属性包括 Domain,Expires,HasKeys,Path,Secure。

response的方法:

    Write:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等。

    Redirect:response.redirect("url")的作用是在服务器端重定向于另一个网页。

    End:用来终止脚本程序

    Clear:要说到Clear方法,就必须提到response的Buffer属性,Buffer属性用来设置服务器端是否将页面先输出到缓冲区。语法为:Response.Buffer=True/False

    Flush:当Buffer的值为True时,Flush方法用于将缓冲区中的当前页面内容立刻输出到客户端。

 

三、 Session对象

  用户访问网站过程中的会话,Web上这种会话方式是无状态的,一般用于保存用户名等单个用户的信息,比QueryString安全,在浏览器关闭或者Session到期(默认20分钟)时关闭,Session也可以存储数组信息。

IE:同时两个会话窗口的 SessionID是不一样的,Session不会共享。所以在IE浏览器中,已经打开了一个IE浏览器输入网址认证后的信息保存在Session中后, 再重新打开一个IE浏览器会话(第一次打开的没有关闭)然后输入上面已认证的网址,会发现SessionID已改变,保存的Session值已丢失。

 

Firefox: 同时两个会话窗口的SessionID是一样的,Session会共享。所以在Firefox浏览器中,已经打开了一个firefox浏览器输入网址认证 后的信息保存在Session中后,再重新打开一个Firefox浏览器会话(第一次打开的没有关闭)然后输入上面已认证的网址,会发现 SessionID不变, Session中的值没有丢失。

 

(说明:如果是点击窗口的页面内容中的网址而打开了新的窗口,在新的窗口中SessionID是不会变的,Session中的值也不会丢失,两种浏览器都一样!跟上面的情况不要混淆了哦!)

 

2.同一浏览器,关闭打开会话窗口,再打开新的会话窗口Session的情况。

 

打开一个浏览器输入网址认证完后保存值到Session中,然后关闭浏览器,再重新打开一个浏览器会话,再输入认证完后的完址,发现SessionID已改变,值已丢失。上述情况适合IE与Firefox浏览器。

 

3.不同浏览器之间不会共享Session

 

原因:Session依懒于SessionID,SessionID保存在cookies,但IE与Firefox浏览器没有共享cookies,它们保存cookies的位置都没一样。

 

posted @ 2016-06-11 14:45  vikyliu  阅读(2880)  评论(0编辑  收藏  举报