質問

私はWeb開発(および大学)の学生です。そのため、これが素朴で不快な印象を与えたとしても謝罪します。確かにそういうわけではありません。私の経験は、PHPと地平線上の小さなプロジェクト(栄光のシフトカレンダー)でした。コードの負担を軽減するために、より高いレベルのフレームワークの1つを学びたいと思いました。ここまでは、CakePHP Symfony DjangoとRailsを見てきました。

PHPを使用すると、URLはファイルに非常に簡単にマッピングされ、「うまくいきました」。サーバーにとって迅速で、直感的でした。しかし、これらのすべてのフレームワークでは、「かなりアップ」する傾向があります。 URLを異なる関数にマップし、パラメーターを異なるファイルの異なる変数にルーティングすることにより、URLを作成します。

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

事前に感謝します!

役に立ちましたか?

解決

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

ちょうど2セント...

他のヒント

そのほとんどはすでに取り上げられていますが、SEOについてはまだ誰も言及していません。 Googleは、URLがwidgets.com/browse.php?17である場合、URL自体にかなりの重みを付けますが、これはあまりSEOフレンドリーではありません。 URLがwidgets.com/products/buttons/である場合、ボタンのページランクにプラスの影響があります

Webサーバーのドキュメントツリーにアプリケーションコードを保存することはセキュリティ上の問題です。

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

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

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

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

アプリケーションの大きさに依存します。かなり大きなアプリ(50以上のモデル)があり、問題は発生していません。その場合、心配します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top