6

私は Web 開発 (および大学) の学生なので、これがナイーブで不快に聞こえる場合は申し訳ありませんが、そのように言っているわけではありません。私の経験はPHPであり、地平線上にある小さなプロジェクト(輝かしいシフトカレンダー)で、コードの負担を軽減するためのより高いレベルのフレームワークの1つを学びたいと思っていました. ここまで、CakePHP Symfony Django と Rails を見てきました。

PHP では、URL は非常に単純にファイルにマップされ、「問題なく機能しました」。サーバーにとっては高速で、直感的でした。しかし、これらすべてのフレームワークでは、URL をさまざまな関数にマップし、パラメーターをさまざまなファイルのさまざまな変数にルーティングすることで、URL を「きれいに」する傾向があります。

私が読んでいる「The Rails Way」という本は、これが非常に遅く、大規模なプロジェクトでのほとんどのパフォーマンス低下の原因であることを認めています。私の質問は、「そもそもなぜそれを持っているのですか?」? url-maps-to-a-file パラダイム (または単一ファイルへの mod_rewrite) に、正規表現と複雑なルーティング スキームを必要とする特定のポイントはありますか? それらを使用しないことで何かを逃していますか?

前もって感謝します!

4

6 に答える 6

6

そのほとんどはすでにカバーされていますが、誰もまだ SEO について言及していません。Google は URL 自体にかなりの重みを置いています。その URL が wi​​dgets.com/browse.php?17 の場合、それは SEO フレンドリーではありません。URL が wi​​dgets.com/products/buttons/ の場合、ボタンのページ ランクにプラスの影響を与えます。

于 2009-01-02T12:52:44.283 に答える
6
  • URL は覚えやすく、言いやすいものにする必要があります。そして、ユーザーはその URL を見たときに何を期待できるかを知っている必要があります。URL をファイルに直接マッピングしても、常に許可されるとは限りません。
  • 表示される同じ情報、または少なくとも類似した情報に対して、異なる URL を使用したい場合があります。サーバーが 1 URL <-> 1 ファイル マッピングの使用を強制する場合は、すべての機能が他のファイルにリダイレクトされる追加のファイルを作成する必要があります。またはmod_rewrite、Rails の URL マッピングよりも簡単ではないようなものを使用します。
  • 私のアプリケーションの 1 つで、http://www.example.com/username /some additional stuff/のような URL を使用しています。これは で作成することもできますmod_rewriteが、少なくとも私にとっては、アプリケーションを実行するすべての apache インスタンスで、django プロジェクトで URL を構成する方が簡単です。

ちょうど私の2セント...

于 2008-12-31T07:49:30.600 に答える
3

Web サーバーのドキュメント ツリーにアプリケーション コードを格納することは、セキュリティ上の懸念事項です。

  • 設定ミスにより、訪問者にソースコードが誤って公開される可能性があります
  • セキュリティの脆弱性を介して挿入されたファイルは、HTTP リクエストによって即座に実行可能
  • バックアップ ファイル (テキスト エディタなどで作成) は、設定ミスの場合にコードを明らかにしたり、実行可能になったりする可能性があります
  • 管理者が削除に失敗した古いファイルは、意図しない機能を明らかにする可能性があります
  • ライブラリ ファイルへの要求は明示的に拒否する必要があります
  • URL は実装の詳細 (使用された言語/フレームワーク) を明らかにします

上記のすべては、他のことがうまくいかない限り問題ではないことに注意してください (これらの間違いのいくつかは、単独でも深刻です)。しかし、何かがうまくいかないことは常にあります。

于 2009-01-02T12:33:37.970 に答える
2

Django の URL も非常にカスタマイズ可能です。Code Igniter (Rails についてはよくわかりません) のような PHP フレームワークでは、/class/method/extra/ URL 構造に強制されます。これは小さなプロジェクトやアプリには適しているかもしれませんが、より大きく/より動的にしようとするとすぐに問題が発生し、それを処理するためにフレームワーク コードの一部を書き直す必要があります。

于 2009-01-01T03:08:54.643 に答える
0

また、ルーターは に似mod_rewriteていますが、はるかに柔軟です。それらは正規表現にバインドされていないため、さまざまなタイプのルートに対してより多くのオプションがあります。

于 2008-12-31T07:53:22.497 に答える
0

アプリケーションの大きさによって異なります。かなり大きなアプリ (50 以上のモデル) がありますが、問題は発生していません。そうなったら、その時は心配します。

于 2008-12-31T10:42:34.103 に答える