- ベストアンサー
URLの動的、静的の違いについて。
URLの動的、静的の違いについて。 現在勤めている会社のwebサイトで『mod_rewrite』というものが使用されていると聞きました。 そこで『mod_rewrite』というキーワードを調べていたところ、説明に「最近では動的ページのURLを静的ページのURLに見せかけるといった用途にも使用されています。」とあったのですが、この動的と静的の違いが分からず困っています。 自分なりに調べてもみたのですが、まだこの仕事を始めたばかりで探し方が悪いのか、しっくりくる答えがなかったので質問させて頂きました。 ご存じの方がいらっしゃいましたら、宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
静的URLが http://○○○.com/××.html などときちんとファイル名で終わっているのに対し、動的URLは http://○○○.com/××.cgi?lang=ja&dataNo=123 のように後ろに引数が入っているものをいいます。?以降はクエリやパラメータとよばれ、その値に応じて何らかの処理をして、ページを動的に生成して表示します。 長所は、パラメータ次第でいくらでもページが生成できますし、修正時は、××.cgiだけで済むので管理が楽です。(Yahooが検索単語ごとにページを用意するとしたら大変なことになるでしょう。) 短所は、パラメータが多いと、グーグル等の検索エンジンが追いかけてきてくれない、つまりそのページは無視されSEO上不利と言われています。 「URLは静的に、実際には動的に生成したい」を実現する方法の代表格が mod_rewrite を使用する方法です。たとえば表面上は、「 ~/ja123.html 」と静的URLにして、それを内部で 「 ××.cgi?lang=ja&dataNo=123 」に変換し、実際には ××.cgiを動かす、という手法が取られています。(なのでja123.html というファイルは実際には存在しないことになります。たぶんこのOKwaveさんもそうだと) ちなみにPerlやPHP等の言語で書かれていても、パラメータがなければURLは「静的」です。 また、SEO上有効かどうかは諸説あり「信頼性の高そうなうわさ」といった風です。Googleでは「クエリが長すぎてはいけない」との記述に留まり、クエリの長さの基準は明記されていません。 まぁ対策しておけば間違いない、といったところでしょうか。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>「動的ページのURLを静的ページのURLに見せかける」とはどういうこと ロボットへの解釈のさせ方の問題ですね。 動的なページでGETで処理する場合たとえば・・ http://example.com/hoge.php?page=aaa などとするとhoge.phpというファイルが、pageというパラメータでaaaを受け取っている と解釈されます。パラメータが渡されるということは返ってくる値が不定であると 判断されることからSEO的に不利だというのが一般的な見方です。 これをrewriteすることでたとえば http://example.com/hoge/aaa のように書き換えることができれば、/hoge/aaaという静的なディレクトリにアクセス しているように見た目上なります。 ただ、このような書き換えが厳密にSEOに有利かどうかは絶対であるとはいえません。
お礼
サンプルのURLまで書いて頂いたおかげで、大変分かりやすく理解出来ました。 初心者プログラマなので本当に助かります。 ありがとうございました。
- shippo
- ベストアンサー率38% (1216/3175)
その静的、動的ということですと、、、 静的はページのリクエストがきたらそのままページの情報を返すだけ。 つまり、見る側からすればサーバーに置かれている状態のまま見られるもの。 動的はページのリクエストに対して何かしらの処理をしてからページ情報を生成し、その生成した情報をアクセスした人に見せるもの。 といった感じですかね。 動的なページにはCGIで記述したものやPHPなどで記述したものがあり、サーバーで何かしら処理をして実際に見せるための情報は別に作ってあげているという点が静的なページと異なるところだと思います。
お礼
ありがとうございました。 わかりやすい回答で大変参考になりました。
補足
回答ありがとうございます。 では簡単に言うと、 HTMLのみで表示しているものが静的。 CGIやPHP(JavaScriptも?)を絡めているものが動的ということですね。 ではその場合「動的ページのURLを静的ページのURLに見せかける」とはどういうことなのでしょうか? また別途質問になってしまい申し訳ございません。
お礼
ここまで詳細に説明して頂きありがとうございます。 どこのサイトを見てもしっくりくる回答が無かったので、本当に質問して良かったです。 単純な違いとしてはパラメータのやりとりをしているかどうかということですね。 本当にありがとうございました。