• Request,Response,Server对象


    Request成员:

    1.Request.UrlReferer 请求的来源,可以根据这个判断从百度搜的哪个关键词,防下载盗链,防图片盗链,可以伪造(比如迅雷)。

    2.Request.UserHostAddress获得访问者的IP地址

    3.Request.MapPath(virtualPath):将虚拟路径转换为磁盘上的物理路径。

     

     

        图片防盗链的思想就是将客户端上次请求的URL信息和当前客户请求的URL信息进行比较,如果同在一个域名下或同一个IP地址下,

        就说明是自己网站内部的页面   在申请自己网站内部的图片。在一般处理程序中,简单代码如下:

         Uri uri1 = context.Request.UrlReferrer;

            Uri uri2 = context.Request.Url;

            if (Uri.Compare(uri1, uri2, UriComponents.HostAndPort, UriFormat.SafeUnescaped, StringComparison.OrdinalIgnoreCase) != 0)

            {

                       context.Response.Clear();

                       context.Response.Close();

       

            }

            else

            {

            }

     

     

      Response对象成员

      响应的缓冲输出:为了提高服务器的性能,ASP.Net向浏览器Write的时候默认并不会没Write一次

      都会立即输出到浏览器,而是会缓存数据,到合适的时机或是响应结束才能将缓冲区的数据一起发送到浏览器。

      Response对象的主要成员:

      Response.Buffer,Response,BuffetOutput:这两个其实是一样,用来控制是否采用响应缓存,默认是true;

      Response.Flush()将缓冲区中的数据发送给浏览器。这在需要将write出来的内容立即输出到浏览器的场合非常的使用。

     例如:我们可以使用一个小例子来模拟Response.Flush()的效果:

           在一般处理程序中:

            public void ProcessRequest (HttpContext context) {

             context.Response.ContentType = "text/html";

             for (int i = 0; i < 20; i++)

             {

                context.Response.Write(i);

                context.Response.Flush();

                System.Threading.Thread.Sleep(500);

                

                }

               }

         使用response.flush那么数字是一个一个蹦出来的。

         如果不适用,数字一口气会都加载下来。

         Response.Clear()清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会被发送到浏览器。

         Response.ContentEncoding输出流的编码。

         Resoponse.ContentType输出流的内容类型。比如是html(text/html)还是普通文本(text/plain)还是JPEG图片(image/JPEG);

         Response.OutputStream输出流,在输出图片。Excel文件等非文本内容的时候也要使用它。

         Response.End()终止响应,将之前缓存中的数据发给浏览器,End()之后的代码不会被继续执行,在反编译器内部,End方法调用了Flush()方法,

         在终止一些非法请求的时候,可用End()终止请求。

     

     

    Server属性:

    Server属性是HttpServerHtility的一个实例,它对工队服务器上的方法和属性的访问。

    Server.MapPath():获取文件的物理路径

    Server.Executetransfer():执行另一个页面的脚本

    server.HtmlEncode()HtmlDecode()方法:将文本编码成可以在浏览器中科正确浏览的格式

    server.UrlEncode方法和UrlDecode方法:URL编码和解码

    Server.Tranfser()ResponseRedirect()的区别:

    Server.Tranfser()是服务器内部的接管(不可以重定向到外部网站),这个重定向是和浏览器没有任何关系的,索引浏览器的地址栏不会发生变化。

    Response.Redirect    ()可以重定向到外部网站

         

  • 相关阅读:
    康威定律和系统设计——《微服务设计》读书笔记
    安全——《微服务设计》读书笔记
    监控——《微服务设计》读书笔记
    测试——《微服务设计》读书笔记
    [转]Linux 系统挂载数据盘
    部署:持续集成(CI)与持续交付(CD)——《微服务设计》读书笔记
    拆分:分解单块系统——《微服务设计》读书笔记
    Unused Method(不再使用的方法)——Dead Code(死亡代码)
    使用Fortify进行代码静态分析(系列文章)
    NEUACM1132: Renew MST Quickly 增量最小生成树
  • 原文地址:https://www.cnblogs.com/hanwenhuazuibang/p/2972269.html
Copyright © 2020-2023  润新知