Question

Je suis un étudiant en développement Web (et universitaire). Je vous prie de m'excuser si cela semble naïf et offensant, ce n'est certainement pas ce que je veux dire. Mon expérience a été avec PHP et avec un petit projet à l’horizon (un calendrier de quarts enrichi), j’espérais apprendre l’un des cadres de niveau supérieur pour alléger le fardeau du code. Jusqu'ici, j'ai examiné CakePHP Symfony Django et Rails.

Avec PHP, les URL mappées très simplement sur les fichiers, et cela "fonctionnait juste". C'était rapide pour le serveur et intuitif. Mais avec tous ces cadres, il y a cette inclination à "assez haut" les URL en les faisant mapper vers différentes fonctions et acheminer les paramètres vers différentes variables dans différents fichiers.

"The Rails Way" Le livre que je lis admet que c’est un chien lent qui est à l’origine de la plupart des douleurs de performance sur des projets de grande envergure. Ma question est "pourquoi l'avoir en premier lieu?" Existe-t-il un point spécifique dans le paradigme url-maps-to-a-file (ou mod_rewrite dans un fichier unique) qui nécessite des expressions rationnelles et des schémas de routage compliqués? Est-ce que je manque quelque chose en ne les utilisant pas?

Merci d'avance!

Était-ce utile?

La solution

  • Les URL doivent être faciles à retenir et à dire. Et l'utilisateur doit savoir à quoi s'attendre lorsqu'il voit cette URL. Mapper directement une URL sur un fichier ne le permet pas toujours.
  • Vous pouvez utiliser différentes URL pour la même information, ou du moins similaire, affichée. Si votre serveur vous oblige à utiliser 1 url < - > 1 mappage de fichier, vous devez créer des fichiers supplémentaires avec toute leur fonction étant de rediriger vers un autre fichier. Vous pouvez également utiliser des éléments tels que mod_rewrite , ce qui n’est pas plus simple que les mappages d’URL de Rails.
  • Dans l'une de mes applications, j'utilise une URL ressemblant à http://www.example.com/ nom d'utilisateur / . quelques éléments supplémentaires / . Cela peut également être fait avec mod_rewrite , mais au moins pour moi, il est plus facile de configurer les urls dans un projet django, puis dans chaque instance d'Apache où je lance l'application.

juste mes 2 cents ...

Autres conseils

La plupart d’entre elles ont déjà été couvertes, mais personne n’a encore mentionné le référencement. Google accorde beaucoup d'importance à l'URL elle-même. Si cette URL est widgets.com/browse.php?17, le référencement n'est pas très convivial. Si votre URL est widgets.com/products/buttons/, cela aura un impact positif sur le classement de votre page pour les boutons

.

Le stockage du code de l'application dans l'arborescence de documents du serveur Web est un problème de sécurité.

  • une mauvaise configuration pourrait révéler accidentellement le code source aux visiteurs
  • Les fichiers
  • injectés via une vulnérabilité de sécurité sont immédiatement exécutables par des requêtes HTTP
  • Les
  • fichiers de sauvegarde (créés par exemple par des éditeurs de texte) peuvent révéler du code ou être exécutables en cas de mauvaise configuration
  • les anciens fichiers que l'administrateur n'a pas réussi à supprimer peuvent révéler des fonctionnalités inattendues
  • Les
  • demandes aux fichiers de bibliothèque doivent être explicitement refusées
  • Les URL révèlent les détails de la mise en oeuvre (quelle langue / quel framework a été utilisé)

Notez que tout ce qui précède n’est pas un problème tant que les choses ne vont pas mal (et que certaines de ces erreurs seraient graves, même seules). Mais quelque chose ne va toujours pas, et il est bon d'avoir des lignes de défense supplémentaires.

Les URL Django sont également très personnalisables. Avec les frameworks PHP tels que Code Igniter (je ne suis pas sûr de Rails), vous êtes forcé d'entrer dans la structure / class / method / extra / URL. Même si cela peut être utile pour les petits projets et les applications, dès que vous essayez de le rendre plus grand / dynamique, vous rencontrez des problèmes et devez réécrire une partie du code de structure pour le gérer.

De plus, les routeurs ressemblent à mod_rewrite , mais sont beaucoup plus flexibles. Ils ne sont pas liés à une expression régulière et ont donc plus d'options pour différents types de routes.

Cela dépend de la taille de votre application. Nous avons une application assez grosse (plus de 50 modèles) et cela ne nous pose aucun problème. Dans ce cas, nous nous en occuperons alors.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top