Request,Response,Server對象

來源:互聯網
上載者:User

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.Execute和transfer():執行另一個頁面的指令碼

server.HtmlEncode()和HtmlDecode()方法:將文本編碼成可以在瀏覽器中科正確瀏覽的格式

server.UrlEncode方法和UrlDecode方法:URL編碼和解碼

Server.Tranfser()和ResponseRedirect()的區別:

Server.Tranfser()是伺服器內部的接管(不可以重新導向到外部網站),這個重新導向是和瀏覽器沒有任何關係的,索引瀏覽器的地址欄不會發生變化。

Response.Redirect    ()可以重新導向到外部網站

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.