惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

博客园 - RicoRui

【转让】看看有你喜欢的书籍嘛?--都是我翻过的。 TFS --- GrantBackup Plan Permissions Error 用户界面草图设计工具-工具包和资源 Entity Framework 4 & 4.1 [转] LINQ Method cannot be translated into a store expression. Script# C# + Html5 =C3 [转]qUIpt:JavaScript Cache Library Project Calculation Rules Proposal for Delayed Script Execution 10个有用的网站访问分析工具 20个免费的seo页面分析工具 网站流量统计定义 Minify JavaScript On the Fly Agile -- Scrum Resource UML with VS2010 Ultimate [转]探究TFS 2010中的测试功能 技术债务 Windows Phone 7 Jump Start
IIS URL Rewrite Model & ASP.NET Route Component ‘s Diff
RicoRui · 2011-10-10 · via 博客园 - RicoRui

针对IIS 7.0的URL重写模块,以及在.NET框架3.5 SP1中包含了ASP.NET路由(Routing),许多ASP.NET开发人员开始质问这两种特性彼此间的关系,以及应该何时使用。

二者本质的区别在于:IIS URL重写的处理方式比ASP.NET路由在层次上更低,对于客户端是不可见的。

Ruslan给出了IIS 7 URL重写过程的可视化工作流。你可以看到URL重写模块是在请求被传递到请求处理器(Handler),例如ASP.NET管理的ASPX处理器之前被激活的。IIS URL重写并不知道具体的请求处理器。

他同时还给出了ASP.NET路由过程的可视化工作流。可以看到ASP.NET路由就是一个请求分发器,它必须明确地获知一个特定的请求究竟应途经哪个处理器。

  • URL重写通常被用于在Web服务器处理请求之前操作URL路径。URL重写模块并不知道处理器实际处理URL重写的任何内容。此外,实际的请求处理器并不知道URL是否已被重写。
  • ASP.NET路由通常根据请求的URL路径将请求分发到处理器。与URL重写相反,路由组件知道处理器,并能够选择可以为请求的URL生成反应的处理器。你可以将ASP.NET路由看作是一个高级的处理器映射机制。
  • IIS URL重写模块能够用于任何类型的Web应用程序,包括ASP.NET,PHP,ASP和静态文件。ASP.NET路由只能用于基于.NET框架的Web应用程序。
  • 在用于应用程序池方面,不管是集成的还是经典的IIS管道模式,IIS URL重写模块的工作方式都是相同的。而ASP.NET路由则会优先选择使用集成管道模式。ASP.NET路由也可以工作于经典模式,但是在这种情况下,应用程序的URL必须包含文件扩展名,或者应用程序必须在IIS中使用“*”配置处理器。
  • URL重写模块可以根据域名、HTTP标头和服务器变量进行重写判断。默认情况下,ASP.NET路由只能使用URL路径以及标头的形式。
  • 除了重写功能,URL重写模块能够执行HTTP重定向,确定自定义状态码以及取消请求。ASP.NET路由则不具有这些功能。
  • URL重写模块在当前版本中是不能扩展的。ASP.NET路由完全能够扩展和定制。

左:IIS7 URL Rewrite

右:ASP.Net Route

imageimage