在.NET环境下,万物皆对象,在HttpRuntime收到请求之后,立即将通过HttpWorkerRequest传递的参数进行分析和分解,创建方便用于网站应用程序处理用的对象,其中主要涉及到两个对象类型:HttpRequest类型和HttpResponse类型。

1 请求参数的对象类型 HttpRequest

  1) 对于每一个请求参数,HttpRuntime将创建一个类型为HttpRequest的对象实例,这个类型定义在命名空间System.Web中,定义如下:

      public sealed class HttpRequest

  2) HttpRequest的属性查看网址:http://msdn.microsoft.com/zh-cn/library/system.web.httprequest(v=vs.100).aspx

2 处理回应的对象类型 HttpResponse

  1) 为了向客户端返回请求的回应内容,同样定义代表回应的类型:HttpResponse类,他也是定义在System.Web命名空间下,提供向客户端回应的方法和属性,定义如下:

    public sealed class HttpResponse

  2) HttpResponse的属性查看网址:http://msdn.microsoft.com/zh-cn/library/system.web.httpresponse(v=vs.110).aspx

  3) 注解:在使用HTTP下载的时候,需要设置Content-Disposition回应头,但是,在HttpResponse中并没有对应的属性,那么我们可以通过这个方法完成:

    this.Response.AddHeader("Content-Disposition","attachment;filename:download.zip");

3.辅助的常用工具类HttpServerUtility

  1)除了上面我们介绍的两个类之外,在ASP.NET服务器还提供了一个辅助工具类HttpServerUtility。关于此类的属性查看网址是:

    http://msdn.microsoft.com/zh-cn/LIBRARY/system.web.httpserverutility.ASPX

4.编码和解码

  在Web开发中,编码与解码涉及几个不同的场景,有的用于HTML的编码和解码,也有的用于URL的编码和解码,在不同的场景下都有一些符号不能直接使用,这些问题通过编码和解码来解决。

  1) HTML编码与解码

    a. HtmlEncode 方法用于对文本中的<、>、"、&等字符进行编码,以避免与HTML的标记发生冲突,导致文本内容被浏览器解释为网页标记。

    b. HtmlDecode方法是将编码过得文本内容进行解码。

  2) URL编码和解码

    a. URL编码要做的就是将URL转换为有效的ASCII字符格式。用法类似于HTML的编码和解码,方法如下:URLEncode,URLDecode。

  3) URL Path编码和解码

    a. UrlPathEncode 仅仅编码Url的Path部分。在通过HTTP下载的时候,我们会遇到下载的文件是乱码的情况,这就是由于没有正确编码造成的,我们可以使用这个属性里对要下载的文件进行编码。

  4) UrlToken编码和解码

5.浏览器类型

  1) 在HTTP协议中,通过User-Agent请求头来说明用户浏览器的类型,操作系统,浏览器内核等信息的标示。

  2) HttpBrowserCapabilities 提供了大量的只读属性,通过这些属性我们可以获得关于浏览器的能力特征,滚与这个类的参考资料:

    http://msdn.microsoft.com/zh-cn/library/system.web.httpbrowsercapabilities(v=vs.110).aspx

ASP.NET本质论第一章网站应用程序学习笔记3-对象化的Http的更多相关文章

  1. ASP.NET本质论第一章网站应用程序学习笔记2

    1.初步走进ASP.NET 上篇笔记我们讲述了服务器监听问题,这篇我们就要讲述具体的请求处理了,ASP.NET所涉及的类大多数定义在System.Web程序集中. 在.NET中,程序集管理的最小逻辑单 ...

  2. ASP.NET本质论第一章网站应用程序学习笔记1

    1.统一资源标示符 1) 格式:协议://主机[.端口号][绝对路径[?参数]],在Http://www.kencery.com/hyl/index/login中,http表示协议的名称,www.ke ...

  3. ASP.NET本质论第二章应用程序对象学习笔记1

    1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...

  4. 0001-20180421-自动化第一章-python基础学习笔记

    ======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...

  5. 01.第一章_C++ Primer学习笔记_开始

    1.2 初始输入输出 iostream库里面包含两个基础类型istream和ostream,分别表示输入流和输出流,一个流就是一个字符序列,从IO设备读出或者写入IO设备. 标准的输入输出对象 标准库 ...

  6. C语言编程入门之--第一章初识程序

    第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...

  7. 《算法》第一章部分程序 part 2

    ▶ 书中第一章部分程序,加上自己补充的代码,包括简单的计时器,链表背包迭代器,表达式计算相关 ● 简单的计时器,分别记录墙上时间和 CPU 时间. package package01; import ...

  8. 《算法》第一章部分程序 part 1

    ▶ 书中第一章部分程序,加上自己补充的代码,包括若干种二分搜索,寻找图上连通分量数的两种算法 ● 代码,二分搜索 package package01; import java.util.Arrays; ...

  9. windows核心编程-第一章 对程序错误的处理

    第一章-对程序错误的处理 在开始介绍Microsoft Windows 的特性之前,必须首先了解 Wi n d o w s的各个函数是如何进行错误处理的. 当调用一个Wi n d o w s函数时,它 ...

随机推荐

  1. SZ,RZ传送文件

    linux 和window之间通过xshell的命令 SZ,RZ传送文件:

  2. Powerdesigner 16.5 从SQL Server 2012做逆向工程时提示:Unable to list tables问题

    公司深圳团队开发有一套系统在华北区这边推向客户,在一次更新补丁时,由于发生了数据字典的变更,但深圳团队并未给出数据库的更新脚本,只给了新版本的数据库创建脚本,为了保证客户方系统中已有数据不丢失,只能自 ...

  3. url rewrite

    http://www.microsoft.com/taiwan/technet/iis/expand/URLRewrite.aspx http://www.iis.net/learn/extensio ...

  4. Shell之数学计算

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 数学计算是Shell中比较常用的一种操作,  但是因为shell中所有的变量都默认为字符串, ...

  5. mysql数据库事件调度(Event)

    mysql中的事件调度器可以定时对数据库增加,删除和执行操作,相当于数据库中的临时触发器,与Linux系统中的执行计划任务一样,这样就可以大大降低工作量. 1.开启事件调度器 [root@node1 ...

  6. Sass学习之路:注释、变量以及导入

    前言 由于.sass不兼容CSS代码,所以以下内容完全使用.scss的语法. Sass注释 Sass中除了提供CSS中的标准注释之外,还提供了一种静默注释: /* 我是标准注释 */ // 我是静默注 ...

  7. [转载]部署Office Web Apps Server并配置其与SharePoint 2013的集成

    Office Web Apps Server 是新的 Office 服务器产品,它提供 Word.PowerPoint.Excel 和 OneNote 的基于浏览器的版本.单个 Office Web ...

  8. Hadoop入门进阶课程1--Hadoop1.X伪分布式安装

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  9. Hadoop第13周练习—HBase作业

    1    :举例子说明HBase相对简单 1.1 1.2     回答 2    :设计HBase存储站内短信 2.1 2.2     回答 书面作业1:举例子说明HBase相对简单 请举出一例子,使 ...

  10. IOS7中自动计算label的宽度和高度的方法

    #import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super vie ...