Quel est l'avantage d'utiliser REST au lieu de HTTP non REST?

Réponses:

163

Je ne pense pas que vous obtiendrez une bonne réponse à cette question , en partie parce que personne n'accepte vraiment de ce que REST est . La page wikipedia est riche en mots à la mode et légère en explications. La page de discussion vaut la peine d'être parcourue juste pour voir à quel point les gens ne sont pas d'accord à ce sujet. Autant que je sache cependant, REST signifie ceci:

Au lieu d'avoir des URL setter et getter nommé de façon aléatoire et en utilisant GETpour tous les getters et POSTpour tous les setters, nous essayons d'avoir les URL identifier les ressources, puis utiliser les actions HTTP GET, POST, PUTet DELETEde faire des choses pour eux. Donc au lieu de

GET /get_article?id=1
POST /delete_article   id=1

Vous feriez

GET /articles/1/
DELETE /articles/1/

Et puis POSTet PUTcorrespondent aux opérations de «création» et de «mise à jour» (mais personne n'est d'accord dans quel sens).

Je pense que les arguments de mise en cache sont faux, car les chaînes de requête sont généralement mises en cache, et en plus vous n'avez pas vraiment besoin de les utiliser. Par exemple, django rend quelque chose comme ça très facile, et je ne dirais pas que c'était REST:

GET /get_article/1/
POST /delete_article/     id=1

Ou même simplement inclure le verbe dans l'URL:

GET /read/article/1/
POST /delete/article/1/
POST /update/article/1/
POST /create/article/

Dans ce cas, cela GETsignifie quelque chose sans effets secondaires, et POSTsignifie quelque chose qui change les données sur le serveur. Je pense que c'est peut-être un peu plus clair et plus facile, d'autant plus que vous pouvez éviter le tout PUT-vs- POST. De plus, vous pouvez ajouter plus de verbes si vous le souhaitez, de sorte que vous n'êtes pas lié artificiellement à ce que propose HTTP. Par exemple:

POST /hide/article/1/
POST /show/article/1/

(Ou peu importe, il est difficile de penser à des exemples jusqu'à ce qu'ils se produisent!)

Donc en conclusion, il n'y a que deux avantages que je peux voir:

  1. Votre API Web peut être plus propre et plus facile à comprendre / découvrir.
  2. Lors de la synchronisation des données avec un site Web, il est probablement plus facile d'utiliser REST car vous pouvez simplement dire synchronize("/articles/1/")ou quoi que ce soit. Cela dépend fortement de votre code.

Cependant, je pense qu'il y a de gros inconvénients:

  1. Toutes les actions ne sont pas facilement mappées sur CRUD (créer, lire / récupérer, mettre à jour, supprimer). Vous n'avez peut-être même pas affaire à des ressources de type objet.
  2. C'est un effort supplémentaire pour des avantages douteux.
  3. Confusion quant à quel chemin PUTet POSTsont. En anglais, ils signifient des choses similaires ("Je vais mettre / poster un avis sur le mur.").

Donc, en conclusion, je dirais: à moins que vous ne souhaitiez vraiment faire un effort supplémentaire, ou si votre service correspond vraiment bien aux opérations CRUD, enregistrez REST pour la deuxième version de votre API.


Je viens de rencontrer un autre problème avec REST: il n'est pas facile de faire plus d'une chose dans une seule demande ou de spécifier les parties d'un objet composé que vous souhaitez obtenir. Ceci est particulièrement important sur les mobiles où le temps d'aller-retour peut être important et les connexions ne sont pas fiables. Par exemple, supposons que vous recevez des messages sur une chronologie Facebook. La méthode REST "pure" serait quelque chose comme

GET /timeline_posts     // Returns a list of post IDs.
GET /timeline_posts/1/  // Returns a list of message IDs in the post.
GET /timeline_posts/2/
GET /timeline_posts/3/
GET /message/10/
GET /message/11/
....

Ce qui est un peu ridicule. L'API de Facebook est très bonne IMO, alors voyons ce qu'ils font:

Par défaut, la plupart des propriétés d'objet sont renvoyées lorsque vous effectuez une requête. Vous pouvez choisir les champs (ou connexions) que vous souhaitez renvoyer avec le paramètre de requête "champs". Par exemple, cette URL ne renverra que l'identifiant, le nom et l'image de Ben: https://graph.facebook.com/bgolub?fields=id,name,picture

Je ne sais pas comment vous feriez quelque chose comme ça avec REST, et si vous le faisiez, cela compterait toujours comme REST. J'ignorerais certainement quiconque essaie de vous dire que vous ne devriez pas faire ça (surtout si la raison est "parce que ce n'est pas REST")!

Timmmm
la source
4
POST et PUT sont destinés à être utilisés selon la RFC HTTP. Dans ce cas, PUT signifie créer / mettre à jour quelque chose à un emplacement spécifique - ce qui se produit dépend de si quelque chose est déjà présent à l'URI (et c'est également idempotent) tandis que POST signifie que vous demandez au service Web de déterminer où mettre ce que vous êtes l'envoyer - puis il vous renvoie l'URI (donc c'est créer uniquement). Je ne peux pas vraiment me plaindre de l'anglais, pas quand il est complètement désactivé d'utiliser DELETE pour faire référence à quoi que ce soit en dehors de l'ordinateur. Je me demande cependant quoi faire en ce qui concerne le problème soulevé dans votre modification: P
Nan L
7
L'exemple de l'API Facebook ressemble à REST pour moi (en fait beaucoup plus que vos exemples utilisant des verbes dans les URL). Il n'y a aucune raison pour laquelle les paramètres de requête ne peuvent pas être RESTful, il est simplement recommandé d'utiliser des chemins où les données peuvent être organisées en hiérarchie.
Justin Emery
5
Les chaînes de requête sont parfaitement RESTful tant que vous ne faites pas référence aux ressources qu'elles contiennent. J'ai tendance à les considérer plus comme des filtres qui peuvent modifier le comportement du point de terminaison.
Sinaesthetic
3
-1, REST est quelque chose de très spécifique - comme l'a décrit Roy Fielding quand il l'a inventé. Voyez cette réponse . en particulier: "Le client n'a besoin que de connaître l'URI initial, et choisit ensuite parmi les choix fournis par le serveur pour naviguer ou effectuer des actions." . Fondamentalement, si une partie d'une API documente les points de terminaison, par exemple, dit "étant donné un identifiant d'utilisateur, vous pouvez obtenir des informations sur l'utilisateur /user/{id}, alors ce n'est pas reposant. Considérez: votre navigateur doit-il être préprogrammé en sachant comment obtenir le HTML pour une question de stackoverflow page?
Claudiu
1
(suite ...) Que d'autres personnes abusent du terme ne change pas ce qu'il est. Clause de non-responsabilité, cependant: je suis encore en train d'apprendre ce qu'est REST et c'est ce qui a cliqué pour moi récemment.
Claudiu
47

En termes simples, REST signifie utiliser HTTP comme il se doit.

Jetez un œil à la thèse de Roy Fielding sur REST . Je pense que chaque personne qui fait du développement Web devrait le lire.

À noter, Roy Fielding est également l'un des principaux moteurs du protocole HTTP.

Pour citer quelques-uns des avantages:

  • Facile.
  • Vous pouvez faire bon usage du cache HTTP et du serveur proxy pour vous aider à gérer une charge élevée.
  • Il vous aide à organiser même une application très complexe en ressources simples.
  • Cela permet aux nouveaux clients d'utiliser facilement votre application, même si vous ne l'avez pas conçue spécifiquement pour eux (probablement, car ils n'étaient pas là lorsque vous avez créé votre application).
Emil Ivanov
la source
11
"Simple": Pourquoi REST est-il plus simple que HTTP?
Dimitri C.
5
"vous aide à vous organiser": cette organisation est donc plus difficile en utilisant simplement GET et POST?
Dimitri C.
1
"Cela permet aux nouveaux clients d'utiliser facilement votre application": il s'agit de REST par rapport à HTTP ordinaire, n'est-ce pas?
Dimitri C.
23
Se conformer aux contraintes REST n'est certainement pas simple. Il est parfois très difficile de regrouper des opérations commerciales complexes en quatre verbes standard. Cependant, lorsqu'il est bien fait, le résultat final peut être simple à comprendre, mais y arriver est tout sauf.
Darrel Miller
6
@Dimitri: "Simple" car cela vous donne un cadre simple avec lequel travailler. REST est HTTP! C'est beaucoup plus simple que SOAP (qui a même simple dans son nom). "vous aide à vous organiser" - le concept n'est pas très difficile à comprendre et, une fois mis en œuvre correctement, il fait très bien les choses. REST peut être un moyen de concevoir l'application, plutôt qu'un détail d'implémentation. Comme le souligne Darrel, la mise en œuvre n'est peut-être pas facile, mais le résultat est gratifiant. «Cela permet aux nouveaux clients d'utiliser facilement votre application» - Encore une fois: REST est HTTP.
Emil Ivanov
32

En termes simples: AUCUN .

N'hésitez pas à voter contre, mais je pense toujours qu'il n'y a pas de réels avantages par rapport au HTTP non REST. Toutes les réponses actuelles sont invalides. Arguments de la réponse actuellement la plus votée:

  • Facile.
  • Vous pouvez faire bon usage du cache HTTP et du serveur proxy pour vous aider à gérer une charge élevée.
  • Il vous aide à organiser même une application très complexe en ressources simples.
  • Cela permet aux nouveaux clients d'utiliser facilement votre application, même si vous ne l'avez pas conçue spécifiquement pour eux (probablement, car ils n'étaient pas là lorsque vous avez créé votre application).

1. Simple

Avec REST, vous avez besoin d'une couche de communication supplémentaire pour vos scripts côté serveur et côté client => c'est en fait plus compliqué que l'utilisation de HTTP non REST.

2. Mise en cache

La mise en cache peut être contrôlée par des en-têtes HTTP envoyés par le serveur. REST n'ajoute aucune fonctionnalité manquante dans non-REST.

3. Organisation

REST ne vous aide pas à organiser les choses. Cela vous oblige à utiliser l'API prise en charge par la bibliothèque côté serveur que vous utilisez. Vous pouvez organiser votre application de la même manière (ou mieux) lorsque vous utilisez une approche non REST. Par exemple, voir Model-View-Controller ou routage MVC .

4. Facile à utiliser / mettre en œuvre

Pas vrai du tout. Tout dépend de la manière dont vous organisez et documentez votre candidature. REST n'améliorera pas comme par magie votre application.

Petr Peller
la source
3
les apis restants sont généralement plus faciles à mettre en cache car vous séparez les données en ressources qui ont le même cycle de vie (sont créées et mises à jour en même temps) afin que vous puissiez mettre en cache et mettre en cache de manière fiable - tandis que les apis non-rest renvoient souvent des données qui ont a été fortement post-traité ou est un conglomérat de plusieurs entités rendant plus difficile la mise en cache
Scott Schulthess
2
correct ce n'est pas mutuellement exclusif (vous pouvez avoir une api non-rest qui peut être mise en cache) mais adopter une approche repos de la conception des api encourage et en pratique, c'est définitivement pertinent car il encourage diverses meilleures pratiques (découvrabilité, interfaces génériques, cachabilité, modélisation intelligente des ressources )
Scott Schulthess
4
"REST ne vous aide pas à organiser les choses. Il vous oblige à utiliser l'API prise en charge par la bibliothèque côté serveur que vous utilisez." Je ne sais pas ce que vous entendez par là. Il est parfaitement possible (et pas plus difficile que de construire une API non REST) ​​de créer une API RESTful sans utiliser un framework supplémentaire côté serveur.
Michael O.
2
"Avec REST, vous avez besoin d'une couche de communication supplémentaire" - humbug, vous pouvez très bien utiliser votre bibliothèque HTTP existante.
Søren Boisen
1
@ SørenBoisen Cette réponse est un peu ancienne. Je devrais probablement le mettre à jour pour refléter davantage l'état actuel des choses.
Petr Peller
23

À mon humble avis, le plus grand avantage de REST est celui de réduire le couplage client / serveur. Il est beaucoup plus facile de faire évoluer une interface REST au fil du temps sans casser les clients existants.

Darrel Miller
la source
4
Pouvez-vous donner un exemple? Merci!
Jan Żankowski
3
Cela ne dépendrait-il pas de l'abstraction de votre API non REST?
johnny
@johnny C'est possible, mais peu probable. Les contraintes de REST ont été choisies pour permettre explicitement une évolution indépendante des composants. Si vous avez trouvé un moyen de mieux faire cela sans appliquer les mêmes contraintes, alors je suis sûr que beaucoup de gens aimeraient en entendre parler.
Darrel Miller
@DarrelMiller Pouvez-vous expliquer comment REST réduit le couplage client / serveur mieux que l'approche http non REST? Je crois que vous indiquez le point que Timmmm a dit dans sa réponse. S'il vous plaît voir mon dernier commentaire sous la réponse de
Timmmm
Les systèmes @emilly REST ne reposent pas sur des informations hors bande pour pouvoir traiter la réponse. Il n'y a aucune hypothèse à faire sur ce qui pourrait résulter d'une demande particulière. La réponse vous dit tout ce que vous devez savoir. Cela permet à un serveur de modifier son comportement et le client peut être informé de ces changements.
Darrel Miller
15

Découvrabilité

Chaque ressource a des références à d'autres ressources, que ce soit dans la hiérarchie ou les liens, il est donc facile de naviguer. C'est un avantage pour l'humain qui développe le client, lui évite de consulter constamment la documentation et de proposer des suggestions. Cela signifie également que le serveur peut changer unilatéralement les noms de ressources (tant que le logiciel client ne code pas en dur les URL).

Compatibilité avec d'autres outils

Vous pouvez CURL votre chemin dans n'importe quelle partie de l'API ou utiliser le navigateur Web pour naviguer dans les ressources. Rend le débogage et le test de l'intégration beaucoup plus faciles.

Noms de verbes normalisés

Vous permet de spécifier des actions sans avoir à rechercher la formulation correcte. Imaginez si getters POO et setters ne sont pas standardisés, et certaines personnes ont utilisé retrieveet à la defineplace. Vous devrez mémoriser le verbe correct pour chaque point d'accès individuel. Sachant qu'il n'y a qu'une poignée de verbes disponibles, ce problème est résolu.

Statut normalisé

Si vous avez GETune ressource qui n'existe pas, vous pouvez être sûr d'obtenir une 404erreur dans une API RESTful. Comparez-le avec une API non RESTful, qui peut retourner {error: "Not found"}enveloppée dans Dieu sait combien de couches. Si vous avez besoin d'espace supplémentaire pour écrire un message au développeur de l'autre côté, vous pouvez toujours utiliser le corps de la réponse.

Exemple

Imaginez deux API avec la même fonctionnalité, l'une suivant REST et l'autre non. Imaginez maintenant les clients suivants pour ces API:

Reposant:

GET /products/1052/reviews
POST /products/1052/reviews       "5 stars"
DELETE /products/1052/reviews/10
GET /products/1052/reviews/10

HTTP:

GET /reviews?product_id=1052
POST /post_review?product_id=1052                  "5 stars"
POST /remove_review?product_id=1052&review_id=10
GET /reviews?product_id=1052&review=10

Pensez maintenant aux questions suivantes:

  • Si le premier appel de chaque client a fonctionné, comment pouvez-vous être sûr que le reste fonctionnera également?

  • Il y a eu une mise à jour majeure de l'API qui peut ou non avoir changé ces points d'accès. Combien de documents devrez-vous relire?

  • Pouvez-vous prédire le retour de la dernière requête?

  • Vous devez modifier l'avis publié (avant de le supprimer). Pouvez-vous le faire sans consulter les documents?

BoppreH
la source
Cette liste n'est pas censée être exhaustive et ne contient que des avantages très pratiques.
BoppreH
C'est une réponse très intelligente, j'applaudis.
EralpB
10

Je recommande de jeter un œil à Comment j'ai expliqué REST à ma femme de Ryan Tomayko

Modification tierce

Extrait du lien waybackmaschine:

Que diriez-vous d'un exemple. Vous êtes enseignant et souhaitez gérer des élèves:

  • dans quelles classes ils sont,
  • quelles notes ils obtiennent,
  • contacts d'urgence,
  • des informations sur les livres que vous enseignez, etc.

Si les systèmes sont basés sur le Web, alors il y a probablement une URL pour chacun des noms impliqués ici: student, teacher, class, book, room, etc. ... S'il y avait une représentation lisible par machine pour chaque URL, alors il serait trivial de verrouiller de nouveaux outils sur le système car toutes ces informations seraient consommables de manière standard. ... vous pourriez créer un système à l'échelle du pays capable de parler à chacun des systèmes scolaires individuels pour recueillir les résultats des tests.

Chacun des systèmes obtiendrait des informations les uns des autres en utilisant un simple HTTP GET. Si un système a besoin d'ajouter quelque chose à un autre système, il utilise un HTTP POST. Si un système souhaite mettre à jour quelque chose dans un autre système, il utilise un HTTP PUT. Il ne reste plus qu'à savoir à quoi devraient ressembler les données.

Marcgg
la source
6
Épouse: Est-ce une autre chose de robot?
Tobu
4
C'est un bon texte, mais il ne donne aucun exemple de pourquoi il serait mauvais d'utiliser GET et POST pour tout.
Dimitri C.
9
C'est pourquoi j'essaye de découvrir pourquoi c'est mieux :-)
Dimitri C.
7
L'écriture a été supprimée.
surfen
2
@surfen waybackmachine
felickz
5

Je suggère à tout le monde, qui cherche une réponse à cette question, de passer par ce "diaporama" .

Je ne pouvais pas comprendre ce qu'est REST et pourquoi il est si cool, ses avantages et ses inconvénients, ses différences avec SOAP - mais ce diaporama était si brillant et facile à comprendre, donc il est beaucoup plus clair pour moi maintenant qu'avant.

DreifGenov
la source
3

Mise en cache.

Il existe d'autres avantages plus détaillés de REST qui tournent autour de la capacité d'évolution via un couplage lâche et l'hypertexte, mais les mécanismes de mise en cache sont la principale raison pour laquelle vous devriez vous soucier de RESTful HTTP.

Mike
la source
3
Pouvez-vous donner un exemple de ce qui pourrait être mis en cache et pourquoi la mise en cache ne se produirait pas avec une solution non REST?
Dimitri C.
2
@Dimitri C .: Un lien wikipedia.org/article?id=19 ne serait pas mis en cache par un proxy, car il ignore les paramètres passés dans l'url. Par contre un lien wikipedia.org/REST serait mis en cache, compris?
VP.
6
Si la mise en cache était le principal avantage de REST, je peux vous assurer que je n'aurais pas passé les deux dernières années à créer des services RESTful.
Darrel Miller
Darrel, vous construisez peut-être des systèmes qui sont à une échelle de distribution dans laquelle le couplage lâche est de la plus haute importance (intéressé à savoir de quel type de systèmes il s'agit), mais la plupart des gens ne le sont pas - ou utilisent des technologies (c.-à-d. navigateurs et html) dans lesquels une grande majorité du travail est effectué pour eux.
Mike
1
Alors pourquoi ne pas simplement utiliser GET /get_article/19/et POST /update_articlesi la mise en cache est votre préoccupation. Vous pouvez toujours tout faire avec juste GETet POSTet je crois que des RESTmoyens « Utiliser GET, POST, PUTet DELETEseulement. » et pas seulement "N'utilisez pas de chaînes de requête". donc ce que j'ai suggéré ne le serait pas REST. Là encore, personne ne peut vraiment être d'accord sur ce que REST c'est donc je le mets dans un seau avec "Web 2.0".
Timmmm
3

C'est écrit dans la thèse de Fielding . Mais si vous ne voulez pas beaucoup lire:

  • une évolutivité accrue (en raison des contraintes du système sans état, de cache et en couches)
  • client et serveur découplés (en raison de contraintes d'interface sans état et uniformes)
    • clients réutilisables (le client peut utiliser les navigateurs REST généraux et la sémantique RDF pour décider quel lien suivre et comment afficher les résultats)
    • clients non cassants (les clients ne cassent que par des changements de sémantique spécifiques à l'application, car ils utilisent la sémantique au lieu de certaines connaissances spécifiques à l'API)
inf3rno
la source
0
  • Donnez à chaque «ressource» un identifiant
  • Liez les choses ensemble
  • Utilisez des méthodes standard
  • Ressources avec plusieurs représentations
  • Communiquer de manière apatride

Est-il possible de tout faire simplement avec POST et GET? Oui, est-ce la meilleure approche? Non pourquoi? parce que nous avons des méthodes standards. Si vous réfléchissez encore, il serait possible de tout faire en utilisant simplement GET .. alors pourquoi devrions-nous même prendre la peine d'utiliser POST? À cause des normes!

Par exemple, en pensant aujourd'hui à un modèle MVC, vous pouvez limiter votre application pour qu'elle ne réponde qu'à des types spécifiques de verbes tels que POST, GET, PUT et DELETE. Même si sous le capot, tout est émulé pour POST et GET, cela n'a pas de sens d'avoir des verbes différents pour différentes actions?

VP.
la source
1
"il serait possible de tout faire en utilisant simplement GET": j'ai déjà fait quelques expériences avec HTTP GET dans Silverlight. Ma conclusion était que les messages GET sont considérablement limités en taille, alors que les messages POST peuvent être plus gros (encore une fois: dans le paramètre Silverlight). Par conséquent, je choisirais d'utiliser HTTP POST pour tout! :-)
Dimitri C.
les deux solutions sont contraires aux normes. Tout faire via POST n'est pas bon, spécialement pour les requêtes. Notez que ces dernières années, tous les moteurs de recherche qui fonctionnaient sous GET fonctionnent désormais sous GET. Pourquoi? parce que la méthode «get» a cette capacité à se faire repérer ...
VP.
0

La découverte est beaucoup plus facile dans REST. Nous avons des documents WADL (similaires à WSDL dans les services Web traditionnels) qui vous aideront à faire connaître votre service dans le monde. Vous pouvez également utiliser les découvertes UDDI. Avec HTTP POST et GET, les personnes peuvent ne pas connaître vos schémas de demande de message et de réponse pour vous appeler.

Balaji
la source
1
Décrire un service Web RESTful avec un document WADL va à l'encontre de l'un des principaux avantages de REST, en particulier tous les avantages tirés de l'hypermédia.
Thomas Eizinger
@ThomasEizinger Un WADL est-il vraiment une si mauvaise chose? Actuellement, nous travaillons avec une autre société qui n'a pas fourni de WADL en plus, elle retourne des objets json en fonction de ce que contient notre requête. Je suppose que WADL serait utile pour clarifier les idées.
surfmuggle
WADL fait un excellent travail pour décrire une API HTTP, car c'est pour cela qu'elle a été conçue. Selon le service fourni par cette société, un WADL peut être une bonne idée ou non. Si le service ne profite pas de l'hypermédia et sérialise simplement certains objets en JSON, ils doivent également fournir une documentation (WADL, Swagger, etc.) sur le fonctionnement de leur service et ce qu'il attend / renvoie. WADL en soi n'est pas du tout mauvais, ce n'est tout simplement pas le bon outil pour un webservice (vraiment) RESTful.
Thomas Eizinger
0

Un avantage est que nous pouvons traiter de manière non séquentielle des documents XML et des données XML démarsales provenant de différentes sources comme un objet InputStream, une URL, un nœud DOM ...

Vijay Jana
la source
0

@Timmmm, à propos de votre modification:

GET /timeline_posts     // could return the N first posts, with links to fetch the next/previous N posts

Cela réduirait considérablement le nombre d'appels

Et rien ne vous empêche de concevoir un serveur qui accepte les paramètres HTTP pour désigner les valeurs de champ souhaitées par vos clients ...

Mais c'est un détail.

Beaucoup plus important est le fait que vous n'avez pas mentionné d'énormes avantages du style architectural REST (bien meilleure évolutivité, en raison de l'apatridie du serveur; bien meilleure disponibilité, en raison de l'apatridie du serveur également; une bien meilleure utilisation des services standard, tels que la mise en cache pour exemple, lors de l'utilisation d'un style architectural REST; couplage beaucoup plus faible entre le client et le serveur, en raison de l'utilisation d'une interface uniforme; etc. etc.)

Quant à votre remarque

"Toutes les actions ne sont pas facilement mappées à CRUD (créer, lire / récupérer, mettre à jour, supprimer)."

: un SGBDR utilise également une approche CRUD (SELECT / INSERT / DELETE / UPDATE), et il existe toujours un moyen de représenter et d'agir sur un modèle de données.

Concernant votre peine

"Vous n'avez peut-être même pas affaire à des ressources de type objet"

: une conception RESTful est, par essence, une conception simple - mais cela ne signifie PAS que sa conception est simple. Voyez-vous la différence ? Vous devrez beaucoup réfléchir aux concepts que votre application représentera et traitera, à ce qui doit être fait par elle, si vous préférez, afin de la représenter au moyen de ressources. Mais si vous le faites, vous vous retrouverez avec une conception plus simple et plus efficace.

Quel Qun
la source
-1

Les chaînes de requête peuvent être ignorées par les moteurs de recherche.

mélancolique
la source
8
L'utilisation de la chaîne de requête est totalement REST.
Emil Ivanov
Dimitri, certains moteurs de recherche ignorent les liens dynamiques. Pas tellement plus, mais c'est toujours mal vu. Si vous exécutez un petit site, il se peut que googlebot n'indexe pas toutes vos pages s'il y a un point d'interrogation dans le chemin.
wisty
3
... ce qui est tout simplement faux, lorsque vous mentionnez Google: googlewebmastercentral.blogspot.com/2008/09/…
Boldewyn
-1 pour les chaînes de requête n'est pas ignoré par les moteurs de recherche. webmasters.googleblog.com/2008/09/…
homme de bronze