BT

IIS URL書き換え vs ASP.NETルーティング

| 作者: Al Tenhundfeld フォローする 0 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2008年11月7日. 推定読書時間: 3 分 |

IIS 7.0用URL書き換え(リライト)モジュール(リンク)の最新リリースと、.NET Framework 3.5 SP1へのASP.NETルーティング(リンク)の統合により、多くのASP.NET開発者が、この2つの機能がどのように相互に関連し合い、それぞれをいつ使用すべきかについて質問している。

Ruslan Yakushev氏は、有益な記事をLearnIIS.net上に掲載している(リンク)。 

本質的な違いは、IIS URL書き換えはASP.NETルーティングよりも低いレベルで処理され、クライアントには見えないという点である。

Ruslan氏は、IIS 7 URL書き換えプロセスのビジュアルワークフローを(リンク)提供している。URL書き換えモジュールはリクエストがリクエストハンドラ(ASP.NETで管理されたASPXハンドラなど)に渡される前に起動するということが分かる。IIS URL書き換えは、特定のリクエストハンドラについて認識していない。

彼は、ASP.NETルーティングプロセスのビジュアルワークフロー(リンク)も提供している。ASP.NETルーティングはリクエストディスパッチャであり、特定のリクエストがどのハンドラにルーティングされるべきかを十分に認識しているということが分かる。

下記は、Yakushev氏の説明からの引用である。

  • 1. URL書き換えは、リクエストがWebサーバーによって処理される前にURLパスを操作するために使われます。URL書き換えモジュールは、書き換えられたURLをどのハンドラが最終的に処理するのかについて何も知りません。また、実際のリクエストハンドラは、URLが書き換えられたことを知らない場合もあります。
  • 2. ASP.NETルーティングは、リクエストされたURLパスに基づいてリクエストをハンドラにディスパッチするために使われます。URL書き換えとは対照的に、ルーティングコンポーネントはハンドラについて認識しており、リクエストされたURLに対する応答を生成すべきハンドラを選択します。ASP.NETルーティングを、高度なハンドラマッピングメカニズムとして考えることができます。
     
  • IIS URL書き換えモジュールは、どのようなタイプのWebアプリケーションでも使用できます。これには、ASP.NET、PHP、ASP、静的ファイルが含まれます。ASP.NETルーティングは、.NET FrameworkベースのWebアプリケーションでのみ使用できます。
  • IIS URL書き換えモジュールは、アプリケーションツールに使用されているIISパイプラインモードが統合であるかクラシックであるかに関係なく、同じように機能します。ASP.NETルーティングの場合は、統合パイプラインモードを使用することが望ましいとされます。ASP.NETルーティングはクラシックモードでも機能できますが、その場合、アプリケーションURLにファイル拡張子を含める必要があるか、IISで「*」ハンドラマッピングを使用するようにアプリケーションを設定する必要があります。
  • URL書き換えモジュールは、ドメイン名、HTTPヘッダー、サーバー変数に基づいて書き換えの決定を行うことができます。デフォルトでは、ASP.NETルーティングはURLパス、およびHTTP-Methodヘッダーとのみ機能します。
  • 書き換えのほかに、URL書き換えモジュールは、HTTPリダイレクトの実行、カスタムステータスコードの発行、リクエストの中止を行うことができます。ASP.NETルーティングはこれらのタスクを実行しません。
  • URL書き換えモジュールは、現在のバージョンでは拡張可能ではありません。ASP.NETルーティングは十分に拡張可能で、かつカスタマイズ可能です。
     

 

原文はこちらです:http://www.infoq.com/news/2008/10/urlrewriting

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT