ASP.NET本质论第一章网站应用程序学习笔记3-对象化的Http
在.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的更多相关文章
- ASP.NET本质论第一章网站应用程序学习笔记2
1.初步走进ASP.NET 上篇笔记我们讲述了服务器监听问题,这篇我们就要讲述具体的请求处理了,ASP.NET所涉及的类大多数定义在System.Web程序集中. 在.NET中,程序集管理的最小逻辑单 ...
- ASP.NET本质论第一章网站应用程序学习笔记1
1.统一资源标示符 1) 格式:协议://主机[.端口号][绝对路径[?参数]],在Http://www.kencery.com/hyl/index/login中,http表示协议的名称,www.ke ...
- ASP.NET本质论第二章应用程序对象学习笔记1
1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...
- 0001-20180421-自动化第一章-python基础学习笔记
======================学习python==================介绍: python种类: cpython(*),jpython,ironpython,rubypyth ...
- 01.第一章_C++ Primer学习笔记_开始
1.2 初始输入输出 iostream库里面包含两个基础类型istream和ostream,分别表示输入流和输出流,一个流就是一个字符序列,从IO设备读出或者写入IO设备. 标准的输入输出对象 标准库 ...
- C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
- 《算法》第一章部分程序 part 2
▶ 书中第一章部分程序,加上自己补充的代码,包括简单的计时器,链表背包迭代器,表达式计算相关 ● 简单的计时器,分别记录墙上时间和 CPU 时间. package package01; import ...
- 《算法》第一章部分程序 part 1
▶ 书中第一章部分程序,加上自己补充的代码,包括若干种二分搜索,寻找图上连通分量数的两种算法 ● 代码,二分搜索 package package01; import java.util.Arrays; ...
- windows核心编程-第一章 对程序错误的处理
第一章-对程序错误的处理 在开始介绍Microsoft Windows 的特性之前,必须首先了解 Wi n d o w s的各个函数是如何进行错误处理的. 当调用一个Wi n d o w s函数时,它 ...
随机推荐
- [z] 人工智能和图形学、图像处理方面的各种会议的评级
转载自:『http://www.cvchina.info/2010/08/31/conference-ranking-byar/』 澳大利亚政府和澳大利亚研究理事会做的,有一定考价值. 会议名称 会议 ...
- centos 7 卸载 mariadb 的正确命令
#列出所有被安装的rpm package rpm -qa | grep mariadb #卸载 rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64 错误:依赖检测失败: ...
- 使用Python画ROC曲线以及AUC值
from:http://kubicode.me/2016/09/19/Machine%20Learning/AUC-Calculation-by-Python/ AUC介绍 AUC(Area Unde ...
- 【解析 . PPT版】干货:阿里全息大数据构建与应用(包括:互联网金融、互联网+、精准营销...)
作者:毛波,阿里巴巴资深数据专家,阿里数据管理平台(DMP)产品负责人. 摘要: 回顾传统数据仓库.商业智能到大型分布式数据平台的进化历程,深入阐述阿里的数据发展历史和数据观,以阿里DMP平台为例深入 ...
- Unity 坐标系
Unity 使用的是左手坐标系
- UML系列01之 UML和绘图工具Visio介绍
概要 UML,全称是Unified Modeling Language,中文是"统一建模语言".通俗点说,UML是一种创建模型的语言.UML是在开发阶段,说明,可视化,构建和书写一 ...
- 关于VR技术和未来发展---转
原文地址:http://mp.weixin.qq.com/s?__biz=MzA4MTIwNTczMQ==&mid=2651345594&idx=3&sn=2741ab7321 ...
- 解决安装office2013时提示已安装相同版本的office
例如出现如上所示的图: ------------------------------------------------------------------ 在尝试使用官方的卸载清理工具无果后, 终极 ...
- Android 学习笔记之Volley开源框架解析(三)
学习内容: 1.CacheDispatcher缓存请求调度... 2.Cache缓存数据的保存... 3.DiskBasedCache基于磁盘的缓存类实现方式... 前面说到使用Volley发 ...
- 如何用参数化SQL语句污染你的计划缓存
你的SQL语句的参数化总是个好想法.使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddW ...