婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別

ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別

熱門標簽:聯(lián)通官網(wǎng)400電話辦理 外呼電話機器人成本 網(wǎng)絡電話外呼系統(tǒng)上海 地圖標注軟件免費下載 蘇州如何辦理400電話 臨沂智能電話機器人加盟 百應電話機器人外呼系統(tǒng) 400電話辦理怎么樣 西寧呼叫中心外呼系統(tǒng)線路商

前言

前面有2篇帖子提到了關于URL Routing的特性,但是發(fā)現(xiàn)有很多人誤會URL Routing就是URl Rewriting,其實2個雖然都提供相似的功能(提高友好的URL方便搜索引起收錄),但是2者的原理和運行周期是完全不一樣的,本篇文章我們就來分析一下具體有什么不同。

例子

在分析原理之前,我們先來做一個例子測試一下(IIS URL Rewrite模塊需要IIS7的支持)。

1.為Customer/1的URL建立對應的MVC程序

首先建立一個普通的MVC3程序,建立一個簡單的CustomerController以及一個簡單的Detail action,代碼如下:

public class CustomerController : Controller
{
 public ActionResult Detail(string id)
 {
  ViewBag.CustomerID = id;
  return View();
 }
}

我們只是簡單的接受一個ID,然后放到ViewBag里以便在view里顯示,view的代碼如下:

@{
 Layout = null;
}
!DOCTYPE html>
html>
head>
 title>Detail/title>
/head>
body>
 div>
  MVC下運行結(jié)果:@ViewBag.CustomerID
 /div>
/body>
/html>

2.為Customer/1的URL建立對應的web form程序

在同一個解決方案的根目錄下,建立一個Customer.aspx文件,文件代碼主要是接受一個ID參數(shù)然后顯示在頁面上,代碼:

public partial class Customer : System.Web.UI.Page
{
 protected void Page_Load(object sender, EventArgs e)
 {
  this.lblId.InnerText = Request.QueryString["id"];
 }
}

html:

form id="form1" runat="server">
 div>
 asp.net web form下是:label runat="server" id="lblId">/label>
 /div>
/form>

OK,我們先在Global.asax.cs里配置Customre/1的route,代碼如下:

routes.MapRoute(
 "CustomerDetail", // Route name
 "Customer/{id}", // URL with parameters
 new { controller = "Customer", action = "Detail", id = UrlParameter.Optional }
);

編譯訪問,運行http://localhost/customer/123,頁面顯示結(jié)果是:

MVC下運行結(jié)果:123。

3.安裝IIS URL Rewrite

到如下地址下載并安裝IIS URL Rewrite,http://www.iis.net/download/URLRewrite 成功安裝以后,在MVC項目的web.config里配置一條URL重寫規(guī)則,代碼如下(注意是system.webServer節(jié)點哦):

system.webServer>
 validation validateIntegratedModeConfiguration="false"/>
 modules runAllManagedModulesForAllRequests="true"/>
 directoryBrowse enabled="true" />
 rewrite>
  rules>
  rule name="rewrite customer">
   match url="^customer/([0-9]+)" />
   action type="Rewrite" url="customer.aspx?id={R:1}" />
  /rule>
  /rules>
 /rewrite>
/system.webServer>

該規(guī)則的意思是,將customer/1類似的請求重寫到customer.aspx?id=1上,我們編譯程序再來訪問以下http://localhost/customer/123,頁面顯示結(jié)果如下:
asp.net web form下是:123

也就是說Routing在這個時候沒起作用,因為URL Rewrite是在Routing之前將Customer/123這個地址轉(zhuǎn)發(fā)到了Customer.aspx?id=123,由aspx文件接收請求了。我們來看看2者之間到底都是在什么周期處理的。
原理周期

1. URL Rewrite

關于URL Rewrite最早見于apache web server,當時風靡一時的url重寫讓一大批使用php的人欣喜若狂啊,可惜之前由于asp.net下的實現(xiàn)方式特別復雜,所以很多站的基本上都沒怎么用,自從IIS.net推出正式的IIS URL Rewrite模塊以來,徹底解決了這一問題。

URL Rewrite是在request-processing pipeline的早期階段執(zhí)行的,一般一個地址進來以后,該模塊會根據(jù)規(guī)則來映射到同一服務器上的另外一條新的地址,新地址在處理的時候所接受的參數(shù)和數(shù)據(jù)都是一句新地址的參數(shù)來判斷的,就比如customer.aspx?id=123,而 request里的url也是新的地址,而不是重寫之前的地址,不過用戶本身感覺不到變化,因為瀏覽器上顯示的一直是舊URL,我們來看一下他的周期圖。

URL Rewrite module是一個native的模塊,從圖可以看到他的運行周期是在Pre-begin Rquest和Begin Request之間,該模塊在根據(jù)請求的URL進行規(guī)則匹配之后,最終處理新的URL以便進入IIS pipeline的剩余周期里進行處理,就是說處理請求的HttpHandler是根據(jù)重寫以后的新URL來決定的。

2. URL Routing

URL Routing的原理是根據(jù)現(xiàn)有的URL來定義規(guī)則,定義每個規(guī)則所對應的HttpHandler,其本質(zhì)和URL是否友好沒有關系,只是按照統(tǒng)一的規(guī)則去調(diào)用相對應的HttpHandler而已,找到對應的HttpHandler,處理完以后就返回結(jié)果,找不到就暴資源錯誤。

Routing是托管代碼模塊,是在Resolve Cache周期( PostResolveRequestCache事件)里注冊,然后在MapHandler周期內(nèi)處理的。在PostResolveRequestCache事件里,該模塊查詢靜態(tài)集合routing表里的所有記錄里聲明的URL匹配規(guī)則,如果當前URL對應到了一個匹配的Handler,然后就使用該Handler處理結(jié)果并輸出。
兩者之間的不同

    URL Rewrite是在request處理之前修改相應的URL,URL Rewrite模塊本身不知道哪個HttpHandler處理這個請求,并且處理請求的HttpHandler也不知道自己處理的URL是原來的URL還是被重寫過的地址。
    和URL Rewrite正好相反,URL Routing是根據(jù)規(guī)則為URL來指定HttpHandler的,可以看做Routing是handler的高級映射。
    IIS URL Rewrite可以用于任何web程序的映射處理,包括但不限于asp.net,php,asp和靜態(tài)文件等,但Routing只能處理基于.net的web程序。
    IIS URL Rewrite在IIS集成模式和經(jīng)典模式都可以用,但默認情況下Routing只能用在集成模式下,經(jīng)典模式的話需要使用擴展名或者通配符將程序映射到IIS上(其實.net有另外一個組件aspnetfilter已經(jīng)幫我們做好了)。
    IIS URL Rewrite可以根據(jù)域名,路徑,Http Header,server變量等處理重寫規(guī)則,但Routing只能按照請求的URL路徑和HTTP-Method header來處理。
    IIS URL Rewrite可以執(zhí)行處理HTTP跳轉(zhuǎn),處理自定義的Status Code以及Abort請求,但Routing做不到這些。
    IIS URL Rewrite的擴展只能擴展自己的Provider來自定義規(guī)則的存儲,但Routing的擴展相對來說就非常強大了,MVC就是其中一種。

總結(jié)

兩者之間有這么多不同,那我們到底該用哪一個呢?

如果你的程序是用asp.net之外的平臺構(gòu)建的,那你只能使用IIS URL Rewrite了,否則,我們建議的規(guī)則是:

    如果你在用asp.net構(gòu)建新的asp.net web程序,那就使用Routing,因為現(xiàn)在Routing不僅支持MVC了,也支持web form了。
    如果你的asp.net web form程序已經(jīng)是現(xiàn)成的了,并且不想修改了,那就使用URL Rewrite,它可以幫你改善搜索引擎優(yōu)化。

當然,你也可以兩者結(jié)合起來一起用,但是用之前一定要記得上面的圖里所說明的內(nèi)容:他們的執(zhí)行周期不一樣。

參考地址:http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/

以上這篇ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 在ASP.NET中用MSDNURLRewriting實現(xiàn)Url Rewriting
  • 在IIS7中應用Application Request Routing配置反向代理的圖文教程
  • 解讀ASP.NET 5 & MVC6系列教程(11):Routing路由
  • 解讀ASP.NET 5 & MVC6系列教程(12):基于Lamda表達式的強類型Routing實現(xiàn)
  • ASP.NET MVC3 SEO優(yōu)化:利用Routing特性提高站點權重

標簽:聊城 中衛(wèi) 清遠 慶陽 海西 臨夏 甘肅 巨人網(wǎng)絡通訊聲明:本文標題《ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別》,本文關鍵詞  ASP.NET,中,URL,Routing,和,IIS,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。

  • 相關文章
  • 下面列出與本文章《ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別》相關的同類信息!
  • 本頁收集關于ASP.NET中URL Routing和IIS上URL Rewriting的區(qū)別的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩高清在线观看| 日韩视频一区二区三区在线播放| 国产一区二区三区| 7799精品视频| 亚洲一区二区三区小说| 国产在线精品一区二区| 日韩视频国产视频| 免费观看久久久4p| 成人精品一区二区三区四区| 成人的网站免费观看| 国产精品天美传媒| 一区二区三区在线观看动漫| 国产一区二区三区综合| 日本一区免费视频| 99久久精品一区| 一区二区日韩av| 欧美一区二区不卡视频| 国产一区二区免费视频| 亚洲欧洲www| 欧美三级日韩在线| 狠狠色综合播放一区二区| 国产精品人成在线观看免费| 欧洲一区二区av| 全国精品久久少妇| 国产精品久久影院| 欧美另类z0zxhd电影| 国产成人精品www牛牛影视| 亚洲永久免费视频| 久久丝袜美腿综合| 色婷婷国产精品| 精品一区二区精品| 亚洲综合久久久| 久久久久久久一区| 在线观看网站黄不卡| 久久99国产精品成人| 亚洲品质自拍视频| 欧美大片一区二区三区| 不卡的av网站| 日韩精品免费专区| 亚洲丝袜制服诱惑| 久久综合一区二区| 欧日韩精品视频| 成人福利在线看| 久久99国产精品免费| 亚洲成人三级小说| 中文字幕欧美日韩一区| 日韩欧美国产1| 91官网在线免费观看| 成人av午夜电影| 久草中文综合在线| 亚洲色图在线视频| 久久久一区二区| 欧美精品高清视频| 97精品电影院| 奇米影视在线99精品| 亚洲午夜久久久久中文字幕久| 国产欧美日韩三级| 久久综合视频网| 91福利视频网站| 99久久久无码国产精品| 国产乱妇无码大片在线观看| 亚洲成av人片在线观看无码| 国产精品乱码一区二三区小蝌蚪| 欧美曰成人黄网| 91婷婷韩国欧美一区二区| 成人毛片视频在线观看| 美女一区二区在线观看| 男人的j进女人的j一区| 日本v片在线高清不卡在线观看| 椎名由奈av一区二区三区| 国产精品网站在线播放| 国产精品美女视频| 2023国产一二三区日本精品2022| 欧美性受xxxx| 国产91丝袜在线播放九色| 久久 天天综合| 七七婷婷婷婷精品国产| 日韩黄色在线观看| 日韩精品欧美成人高清一区二区| 奇米精品一区二区三区在线观看| 黄色资源网久久资源365| 免费在线看成人av| 蜜桃精品视频在线| 偷拍日韩校园综合在线| 亚洲综合视频网| 久久精品人人爽人人爽| 精品美女被调教视频大全网站| 99精品欧美一区二区蜜桃免费 | 亚洲国产精品久久艾草纯爱| 亚洲另类一区二区| 亚洲精品欧美激情| 亚洲一区在线看| 亚洲主播在线播放| 香蕉av福利精品导航| 一区二区三区中文免费| 亚洲成人综合网站| 国产欧美精品区一区二区三区 | 91精品国产欧美一区二区18| 91精品麻豆日日躁夜夜躁| 91麻豆精品国产自产在线观看一区 | 极品销魂美女一区二区三区| 国产一区二区三区香蕉| 国产成人小视频| 在线观看日韩国产| 色哟哟精品一区| 5566中文字幕一区二区电影 | 在线观看91精品国产麻豆| 久久久久久久久久久99999| 久久婷婷一区二区三区| 中文字幕一区三区| 五月婷婷激情综合网| 亚洲愉拍自拍另类高清精品| 日本欧美加勒比视频| 成人综合在线观看| 91在线精品一区二区三区| 欧美无人高清视频在线观看| 日韩美女天天操| 亚洲天堂成人网| 日韩精品欧美精品| 福利一区在线观看| 欧美日韩久久久| 国产精品网曝门| 日韩电影免费在线看| 国产suv精品一区二区三区| 欧美日韩国产小视频| 国产片一区二区三区| 日本伊人精品一区二区三区观看方式| 久久草av在线| 在线观看91av| 亚洲精品久久7777| av在线播放一区二区三区| 日韩欧美一区二区久久婷婷| 亚洲精品成人在线| 国产馆精品极品| 日韩三级中文字幕| 午夜电影网一区| 国产美女精品一区二区三区| 欧美妇女性影城| 亚洲品质自拍视频| 亚洲男同性恋视频| 91婷婷韩国欧美一区二区| 精品日韩一区二区三区免费视频| 亚洲视频一区在线| 国产伦精一区二区三区| www.亚洲人| 日本一二三不卡| 精品一二三四区| 精品国产伦一区二区三区观看体验 | 色婷婷国产精品久久包臀| 久久久综合网站| 韩国视频一区二区| 日韩久久久精品| 亚洲国产成人va在线观看天堂| 色婷婷av一区二区三区大白胸| 国产精品高潮久久久久无| 高清国产午夜精品久久久久久| 日韩欧美一区二区久久婷婷| 91蜜桃免费观看视频| 精品久久久久久综合日本欧美| 久久成人久久鬼色| 精品欧美一区二区久久 | 美女任你摸久久| 欧美在线免费视屏| 午夜视频在线观看一区二区| 制服丝袜亚洲网站| 激情文学综合插| 久久久亚洲国产美女国产盗摄 | 欧美一级一区二区| 久久精品国产99久久6| 日韩一卡二卡三卡国产欧美| 欧美国产一区在线| 99久久久无码国产精品| 亚洲精品国产无套在线观| 91麻豆视频网站| 亚洲高清一区二区三区| 欧日韩精品视频| 国产在线国偷精品免费看| 中文字幕欧美国产| 欧美日韩中文另类| 韩国三级在线一区| 中文字幕av一区二区三区| 亚洲国产高清在线| 成人一区二区三区在线观看| 国产午夜亚洲精品不卡| 国产成人综合亚洲网站| 精品成人a区在线观看| av在线不卡网| 激情综合网激情| 亚洲色欲色欲www在线观看| 欧美日韩午夜精品| 国产综合一区二区| 亚洲午夜精品在线| 久久综合久久久久88| 在线观看成人小视频| 99久久精品免费看国产 | 91丝袜美腿高跟国产极品老师| 亚洲大型综合色站| 国产精品传媒在线| 欧美男同性恋视频网站| 天堂在线亚洲视频|