第6章:HTTP请求、响应及状态管理

本章要点:

        能理解HttpRequest对象,会熟练使用HttpRequest对象。

        能理解HttpResponse对象,会熟练运用HttpResponse对象。

        能理解HttpServerUtility对象和不同方法的页面重定向,会熟练运用HttpServerUtility对象。

        能理解跨页面提交,能知道ViewState、HiddenField得到功能,会熟练运用Cookie、

        session、application。

6.1 HTTP请求

        对ASP.NET页面而言,需要根据用户的请求来生成响应。ASP.NET通过Page类的Request属

        性能很好地控制请求数据,如访问客户端的浏览器信息、查询字符串、cookie等信息。

        HttpRequest类的数据集合:

                ①Browser:获得客户端浏览器信息

                ②cookies:获得客户端的Cookie数据

                ③QueryString:从查询字符串中读取用户提交的数据

                ④ServerVariables:获得服务器端或客户端的环境变量信息

        1.QueryString数据集合:

                获得查询字符串是指跟在URL后面的变量及值,它们以 ? 与URL间隔,不同的变量之间

                以“&”间隔。

        2.ServevrVariables数据集合:

                可以很方便的获取服务器端或客户端的环境变量信息,如客户端的IP地址等。

                常用的环境变量有:

常用的环境变量表
环境变量名 说明
LOCAL_ADDR 服务器端的IP地址
PATH_TRANSLATED 当前页面在服务器端的物理路径
REMOTE_ADDR 客户端IP地址
REMOTE_HOST 客户端计算机名
SERVER_NAME 服务器端计算机名
SERVER_PORT 服务器端网站的端口号

        3.Browser数据集合:

                用户返回用户的浏览器类型、版本等信息,以便根据不同的浏览器编写不同的页面。

                浏览器特性名如下:

浏览器特性名对应表
名称 说明
ActiveXControls 逻辑值,true表示支持ActiveX控件
Browser 浏览器类型
Cookies 逻辑值,true表示支持cookie
JavaScript 逻辑值,true表示支持JavaScript
MajorVersion 浏览器主版本号
MinorVersion 浏览器次版本号
Version 浏览器版本号

6.2 HTTP响应

        通过Page类的Response属性可以很好地控制输出的内容和方式,如页面重定向、保存cookie

        等。

HttpResponse类的常用属性和方法表
成员 说明
Cookies属性 添加或修改客户端的Cookie
AppendToLog ( )方法 将自定义日志信息添加到IIS日志文件中
End方法 终止页面的执行
Redirect方法 页面重定向,可通过URL附加查询字符串实现不同页面之间的数据传递
Write方法 在页面上输出信息

6.3 HttpServerUtility

        在ASP.NET中,Page类的Server属性封装了服务器端的一些操作,如将XHTML元素标记转换

        为字符实体,获取页面的物理路径等。

HttpServerUtility类的常用属性和方法表
属性和方法 说明
ScriptTimeOut属性 设置页面执行的最长时间,单位为秒
Execute方法 停止执行当前页面,转到并且执行新页面,执行完毕后返回原页面,继续执行后续语句
HtmlEncode方法 将字符串中的XHTML元素标记转换为字符实体
MapPath方法 获取页面的物理路径
Transfer方法 停止执行当前页面,转到并且执行新页面,执行完毕后不再返回原页面
UrlEncode方法 将字符串中某些特殊字符转换为URL编码。

6.4 跨页面提交

        在实现跨页面提交时,需要将源页面上Button类型控件的PostBackUrl属性值设置为目标页面

      路径。而在目标页面上,需要在页面头部添加@ PreviousPageType指令,并设置VirtualPath

      属性值为源页面中的数据。

        在目标页面上访问源页面中数据的方法有两种:一是利用PreviousPage.FindControl方法访问

      源页面上的控件;二是现在源页面上定义公共属性,再在目标页面上利用“PreviousPage.属性

      名”获取源页面中数据。

6.5 状态管理

        在实现页面重定向和跨页面提交时,已涉及一些数据需要从一个页面传递到另一个页面,这

      些实际上就是状态管理的一部分。

        状态管理分为两种:

                客户端:

                        客户端状态管理是将状态数据保存在客户端计算机上,当客户端向服务器端发送请

                      求时,状态数据会随之发送到服务器。

                服务器端:

                        服务器端状态管理是将状态数据保存在服务器上。

        6.5.1 ViewState:

                又称为视图状态,用于维护Web窗体自身的状态。

        6.5.2 HiddenField控件:

                HiddenField又称隐藏域,用于维护Web窗体自身的状态。作为隐藏域,它不会显示在用

              户浏览器中,但可以像设置标准控件的属性那样设置其属性。

        6.5.3 Cookie:

                是保存在客户端硬盘或内存中的一小段文本信息,如网站、用户、会话等有关的信息。

                Cookie与网站关联,而不是与特定的页面关联。

                可以在客户端修改Cookie设置和禁用Cookie。

                注意:在Windows10中,不同浏览器的Cookies文件存放于不同的路径下。

        6.5.4 session:

                session又称为会话状态,在工程项目中应用广泛,典型的应用有存储用户信息、多页面

              间的信息传递、购物车等。session产生在服务器端,只能为当前访问的用户服务。以用

              户对网站的最后一次访问开始计时,当计时达到会话设定时间并且期间没有访问操作时,

              则会话自动结束。如果同一个用户在浏览期间关闭浏览器后再访问同一个页面,服务器会

              为该用户产生新的session。

                在服务器端,用一个唯一的Session ID来标识每一个会话。

                注意:

                        不管Session ID保存在Cookie还是添加在URL中,都是明文,如果需要保护

                      Session ID,可考虑采用HTTPS通信。

        6.5.5 Application

                又称为应用程序状态,与应用于单个用户的Session状态不同,它应用于所有的用户。所以,可以将Application状态理解成公用的全局变量,网站中的每个访问者均可访问该变量。

你可能感兴趣的:(http,asp.net,后端,c#)