在.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. dlib库使用

    最近的工作中用到了dlib这个库,该库是一个机器学习的开源库,使用起来很方便,直接包含头文件即可,并且不依赖于其他库(自带图像编解码库源码).不过由于是开源的,所以bug多少有一些,我在example ...

  2. [转]使用Xcode 4发布App 实例操作

    使用xcode 4发布app 实例操作是本文介绍的内容,不多说,我们直接进入话题. 1.iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobile ...

  3. 阿里云ubuntu环境笔记

    安装jdk8 1.下载JDK 从官网下载jdk8 jdk-8u5-linux-x64.tar.gz 2.解压 $ tar -zxvf jdk-8u5-linux-x64.tar.gz 解压出来是一个j ...

  4. 【C语言】汉诺塔问题

    之前遇见这个问题,非常费劲地理解了,并写出代码,然后过段时间,再遇见这个问题,又卡住了,如此反反复复两三次,才发现自己对递归的理解依然很肤浅.今天无聊,重温<算法:c语言实现>一书,又遇见 ...

  5. Rails4 中 因为secret key 引起在production环境下无法运行

    错误信息 Missing `secret_key_base` for 'production' environment, set this value in `config/secrets.yml` ...

  6. MyBatis知多少(16)MyBatis映射

    之前我们详细地讨论了MyBatis背后的设计理念以及iBATIS框架是如何产生的.也说明了MyBatis是一个混合型解决方案,它从处理关系数据库的其他不同方法那里借鉴了许多思想.那么MyBatis到底 ...

  7. 理解 JS 回调函数中的 this

    任何变量或对象都有其赖以生存的上下文.如果简单地将对象理解为一段代码,那么对象处在不同的上下文,这段代码也会执行出不同的结果. 例如,我们定义一个函数 getUrl 和一个对象 pseudoWindo ...

  8. (转)linux内核虚拟文件系统浅析

    转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 ###### 虚拟文件系统(VFS)在我看来, "虚拟"二字主要 ...

  9. Python - 获取帮助信息

    1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...

  10. Zookeeper集群部署

    一. 部署前的准备工作 保证各个主机之间能够正常通信,最好是在同一网段. 修改host文件,加入IP和主机名的映射.方法为修改/etc/hosts和etc/hostname文件,不同的Linux发行版 ...