写点什么

IIS URL 重写模块和 ASP.NET 路由组件比较

2008 年 11 月 06 日

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

Ruslan Yakushev 在 LearnIIS.NET 上发表了一篇很有指导意义的文章

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

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

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

来自 Ruslan 的描述如下:

  • 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 路由完全能够扩展和定制。

查看英文原文: IIS URL Rewriting vs ASP.NET Routing

2008 年 11 月 06 日 23:542140
用户头像

发布了 109 篇内容, 共 35.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Spring Cloud 微服务实践(5) - 认证中心

xiaoboey

微服务 Spring Cloud OAuth2 JWT

Spring Cloud 微服务实践(6) - 资源服务器

xiaoboey

微服务 Spring Cloud OAuth2 JWT 权限控制

Mac 系统 VS Code 设置向下复制粘贴当前行快捷键(Ctrl + D)

AlwaysBeta

ide vscode Mac

中国消费者独享长达三个月的年终跨境网购狂欢季

爱极客侠

从零开始的机器学习:免费在线教科书

计算机与AI

学习

“工业互联网+区块链”融合发展新图景

CECBC区块链专委会

区块链 互联网 信息安全

华为,与山河共舞这支芭蕾

脑极体

第二周-框架设计-学习总结

刘希文

大作业

李白

原来 8 张图,就可以搞懂「零拷贝」了

小林coding

Linux 计算机基础 高性能 零拷贝

有感-人工智能学习

superman

机器学习如何推进现代医疗护理服务的变革

Geek_b33b8e

学习 开源 跨平台 行业资讯 医疗方案

腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践

Apache Flink

flink

架构师训练营第二周学习总结

邓昀垚

2020年9月编程语言排行榜TOP20:学习Java语言的前景

Java架构师迁哥

散步罗浮山

金龟换酒

游记 旅行

学习笔记-人工智能概念(小白)

superman

北京自贸区总体方案公布:建设法定数字货币试验区

CECBC区块链专委会

金融 国内宏观

一张图揭秘在阿里、腾讯、美团工作的区别

Java架构师迁哥

按自己的逻辑,避免千篇一律的呈现品牌官方商城

boshi

产品设计 页面展示 商城

架构师训练营第 1 期第 2 周作业

好吃不贵

极客大学架构师训练营

架构师训练营第 1 期第 2 周学习总结

好吃不贵

极客大学架构师训练营

Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据

Apache Flink

flink

话题讨论 | 你的编程能力是如何突飞猛进的?

InfoQ写作平台官方

学习 写作平台 排行榜 代码

01_Eureka源码初探

阿亮

源码 微服务 SpringCloud Eureka

区块链行业简报

CECBC区块链专委会

区块链 金融 银行

Spring Cloud 微服务实践(4) - OAuth2

xiaoboey

微服务 Spring Cloud OAuth2 JWT

机器学习笔记-概念

superman

磨刀不误砍柴工,搞定云网络系统性能测试

毛爷爷

IaaS 云网络 质量保障

Apache Pulsar 社区周报|09-12~09-18

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

为什么选择敏捷软件开发-考虑敏捷开发的主要优势

小隐乐乐

敏捷开发

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

IIS URL重写模块和ASP.NET路由组件比较-InfoQ