2015年11月27日金曜日

ASP.NETでのURLリライトの流れ


こんにちは山田です。
長年の疑問のURLリライトについてわかってきたので
その覚書です。 

開発環境:ASP.NET2.0
開発言語:C#
IIS:6.1

■URLリライトの別名
URLリライト=URL書き換え
日本語だとURL書き換えとなります。

■そもそもURLリライトは必要なの?
個人的な疑問としてページリライトの技術はURLから判断して、
IISのサーバーのファイルディレクトリ(どの階層にいるのか)がわかりにくくなるし、
今見ているページの関連する記事を探したい場合、URLの法則性がわからないのでなんと打ち込めばよいのかわからない等の感想を持っていました。(こんな使われ方は想定されていいないと思いますが、、、)

一般的にどういう目的で使われているかと
  • URLが短い。
  • URL入力が簡単になる。
  • URL を見ると、サイトの構造がわかる。
  • "短縮可能 (hackable)" である。つまり、ユーザーが URL の一部分を入力すれば、そのサイトを表示して目的のページに移動できる。
というメリットがあるので、やはり必要な技術のようです。
特にURLが短い場合、気軽にそのwebページにアクセスしやすくなりますね。

ASP.NET での URL 書き換え

↑ここをざっと読んでみたのですが。
Umm...よくわからない。

■自分なりに実装したページリライトの流れをまとめてみました。

・実態のURL:/contentDetail.aspx
・必要な引数: userID=yamada&contentID=101
・リライト後のURL: http://blog.jp/yamada0101/

URLで
http://blog.jp/yamada0101/ → とアクセスさせたかった場合
   ↓
web.configにリライトルールを記述する(事前に)
   ↓
IISがリライトルールにそって、そのURLから実態のURLに直す
(/yamada0101/→/contentDetail.aspx?userID=yamada&contentID=101)
    ↓
IISが実態のファイルのページを判定する
(/contentDetail.aspx)
   ↓
クエリスストリングの必要なIDをRequestで取得する
   ↓
取得したuserIDとcontentIDから目的のブログ記事を
DBから取り出してページをレンダリングする
   ↓
  終わり

この流れがわからなくて、もやもやしていました。
他の言語や、開発環境だとまた違うのかな?
またふと疑問に思ってしまいました。

Related Posts:

  • ASP.NETでのURLリライトの流れ こんにちは山田です。 長年の疑問のURLリライトについてわかってきたので その覚書です。  開発環境:ASP.NET2.0 開発言語:C# IIS:6.1 ■URLリライトの別名 URLリライト=URL書き換え 日本語だとURL書き換えとなります。 ■そもそもURLリライトは必… Read More
  • ページのリダイレクト方法 web.configページのリダイレクト方法 こんにちは山田です。 リダイレクトについてまとめました。(action type="Rewrite"でリライトも設定できます。) 開発環境:ASP.NET 使用言語:C# リダイレクトの書き方ですが いくつか方法があるようなのですが、 今回はWeb.configに記述… Read More
  • IISのログの見方こんにちはグリーンスムージ≠青汁ということを知った山田です。 本日は IISのアクセスログの見方を知ったのでまとめました。 どういう時に必要なログかはまだわかっていないのですが、 その入り口として 各属性の内容を調べてみました。 ■アクセスログの場所 初期設定では C:\inetpub\log… Read More
  • URL最後のスラッシュとはURL最後のスラッシュがない こんにちは山田です。 雑誌とかテレビを見ているときに気になってURLをアクセスしてみると あれ、NotFound… ないじゃんということが、、、あるかもしれませんね。 さて、 お客さんに印刷して渡したURLに最後スラッシュがついていなかったということになっており… Read More
  • 404.1、404.2という状態コードとは?こんにちは山田です。  Webサイトの運用や開発者なら誰でも、 「404 - ファイルが見つかりません」や 「401 - 権限がありません」 などのエラー メッセージを見たことがあると思います。 この時、特定のHTTP状態コードが出たときに、 自分で作成したエラー画面を指定してあげるこ… Read More

0 コメント:

コメントを投稿