asp.net 内置对象Request和Response
Request
1.Request.AppRelativeCurrentExecutionFilePath,获取当前执行请求相对于应用根目录的虚拟路径,以~开头,比如“~Handler.ashx”.
2.Request.PhysicalApplicationPath,获取当前应用的物理路径,比如D:\我的文档\VisualStudio 2012\WebSites\WebSite\
3.Request.PhysicalPath,获取当前请求的物理路径。比如D:\我的文档\VisualStudio 2012\WebSites\WebSite\Handler.ashx
4.Request.UrlReferrer 网页的来源,可以据此判断搜索关键词,防下载盗链,防图片盗链
,可以伪造(迅雷)。
5.Request.RawUrl,获得原始请求URL
6.Request.Cookies(一般只是读取) 获取浏览器发过来的浏览器Cookie,从它里面读取Cookies 值,将Cookie写回浏览器要用Response.Cookies
9.Request.MapPath(virtualPath)将虚拟路径转换为磁盘上的物理路径。
Response
1.Response对象是httpResponse类的一个实例,httpResponse类用户封装页面操作的HTTP相应信息
2.常用属性和方法
BufferOutput 获取或设置一个值,该值指示是否缓冲区输出,并在完成处理整个页面之后将其发送。BufferOutput属性默认为true.当页面被加载,要输出到客户端的数据都暂时存到服务器的缓冲区内并等待页面所有事件程序,以及所有的页面对象全部被浏览器解释完毕后,才将所有在缓冲区中的数据发送到客户端浏览器。
Response.Cookies返回给浏览器的Cookie的集合,可以通过它设置Cookie
Response.OutputStream输出流,在输出图片,excel文件等非文本内容的时候要使用它
Response.End() 终止响应,将之前缓冲区中的数据发给浏览器,End()之后的代码不会被继续执行,在终止一些非法请求的时候,比如盗链等可以用End()立即终止请求。
Response.Redirect(url) Redirect是向浏览器发回302重定向。
Response.WriteFile(filename)向浏览器输出文件
Response.SetCookie(HttpCookie cookie) 向输出流中更新写到浏览器中的Cookie,如果Cookie存在就更新不存在就增加,是对Response.Cookes的简化调用。
3.响应的缓冲输出:为了提高服务器的性能,asp.net向浏览器Write的时候默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据,到合适的时机或者响应结束才会将缓冲区的数据一起发送到浏览器。