在.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. c++ 状态模式(state)

    /************************************************************************/ /* 状态模式 */ /************* ...

  2. dlib库使用

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

  3. ux.plugin.ConTpl 模版元素监听扩展

    /* *tpl模版加入按钮 *<div class="x-button-normal x-button x-iconalign-center x-layout-box-item x-s ...

  4. 转载好文:如何进行基于情境数据的个性化EDM数据营销

    根据Adobe和DMA(Direct Marketing Association)的<实时营销洞察报告> (Real-Time Marketing Insights Study),77%的 ...

  5. 通过RFC给SAP新建用户

    1.首先引用dll,然后在程序开头:using SAP.Middleware.Connector; 2.接下去就是设置登陆参数了,以前相关博文都有说明: public class MyBackendC ...

  6. Eclipse启动分析

    最近研究了一下Eclipse的启动过程,查了点资料,也有点收获.下面是搜集到的一个比较好的说明,共享下... 在Eclipse启动过程中,Eclipse.exe负责启动,也就是把startup.jar ...

  7. 【开源】EFW框架系列文章索引

    开源轻量级.Net框架EnterpriseFrameWork详解 ——自己动手写框架 ——适合中小企业的开发框架 ——Ajax+JqueryEasyUI+NotNetBar+MVC+WebServic ...

  8. nginx url自动加斜杠的问题

    nginx url自动加斜杠问题及301重定向 时间:2016-02-04 15:14:28来源:网络 导读:nginx url自动加斜杠问题及301重定向,URL指向一个目录并且在最后没有包含斜杠, ...

  9. 关于异步Promises

    英文原文:What's The Point Of Promises? 迄今为止,可能每个JavaScript开发者和他们的祖母都听说过Promises.如果你没有,那么你即将会.promises的概念 ...

  10. LoRaWAN协议(一)--架构解析

    LoRaWAN 分层 总体架构一共分为4部分: LoRaWAN从底层到最后用户拿到数据的通讯过程通讯大致可分为三段: MOTE <---> GW (MAC层) GW <---> ...