【Requset】
1.Request.UrlReferrer 请求的来源,可以根据这个判断从百度搜的那个关键字,防下载盗链,防图片盗链,可以伪造(比如迅雷)。
UrlRefer.aspx.cs
Response.Write(Request.Url.ToString());//获取当前请求的URL地址。
Response.Write("<hr/>");
Response.Write(Request.UrlReferrer.ToString());//请求的来源
//盗链
ShowUrl.html
<a href="UrlRefer.aspx">测试连接地址</a>
2.Request.UserHostAddress获取访问者的ip地址
3.Request.Cookies获取浏览器发过来的浏览器端的Cookie,从它里面读取Cookie值,比如,
context.Request.Cookies["mysessionid"],使用Request.Cookies的时候只是读取,将Cookie写回浏览器要用Response.Cookies
4.Request.MapPath(virtulPath)将虚拟路径转换为磁盘上的物理路径,Request.MapPath("~/a/b.aspx")就会得到D:\2008\WebSites\WebSite4\a\b.aspx
【Response】
响应的缓冲输出:为了提高服务器的性能,ASP.net向浏览器Write的时候默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据,到合适的时机或者响应结束才会将缓冲器中的数据一起发送到浏览器。
Response对象的主要成员:
1.Response.Buffer、Response.BufferOutput:经过Reflector反编译,发现两个属性是一样的,Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用形影缓存,默认是true。
2.Response.Flush()将缓冲区中的数据发送给浏览器。这在需要将Write出来的内容立即输入到浏览器的场合非常适用,案例:大批量导入数据,显示正在导入第*条数据,用Thread.Sleep模拟耗时。
3.Response.Clear()清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会发送到浏览器。
4.Response.ContentEncoding输出流的编码
5.Response.ContentType输出流的内容类型,比如是html(text/html)还是普通文本(text/plain)护士JPEG图片(image/JPEG)。
6.Response.Cookies返回给浏览器的Cookie的集合,可以通过它设置Cookie
7.Response.OutputStream输出流,在输出图片、Excel文件等非文本内容的时候要使用它
8.Response.End()终止响应,将之前缓存中的数据发给浏览器,End()之后的代码不会被继续执行,End方法里调用了Flush()方法,在终止一些非法请求的时候,比如盗链等可以用End()立即终止请求。
9.Response.Redirect(url)重定向浏览器到新的网址。即可以重定向到站外网址也可以重定向到站内网址,Response.Redirect(“http://www.rupeng.com”)、Response.Redirect(“a.htm”)。Redirect是向浏览器发挥302重定向(还有一个Location告诉浏览器要重定向导哪个页面),是通知浏览器“是从新访问url这个网址”,这个过程经历了服务器通知浏览器“请重新访问url这个网址”和浏览器接到命令范文新网址的过程。使用HTTPWatch查看整个响应过程的Http报文。用Redirect因为是浏览器自己去重新访问新网址的,所以在地址栏中是可以看到网址的变化的,后面会用来防止刷新浏览器时提示“重试”。
10.Response.SetCookie(HTTPCookie cookie),想输出流中更新写道浏览器中的Cookie,如果cookie存在就更新不存在就增加。是对Response.Cookies的简化调用。
11.Response.Write()向浏览器输出内容。