Codes HTTP

  • Auteur de la discussion Auteur de la discussion RiPSO
  • Date de début Date de début
WRInaute impliqué
Salut,

Je suis à la recherche de traductions du w3c sur les codes HTTP ainsi que les variables de retour.

Je suis tombé sur ça : -http://fr.wikipedia.org/wiki/Liste_des_codes_HTTP

j'ai besoin de comprendre chaque code et c'est loin d'être le cas que ce soit en anglais ou en traduit (oui j'appelle ça une traduction et non du français :lol: )

Par exemple :

Code 303 : La réponse à cette requête est ailleurs... Vous trouvez pas que ça fait un peu xfiles?? :mrgreen:
Code 300 : L'URI demandée se rapporte à plusieurs ressources... Mais dans quel cas on peut avoir ça?

Bref je suis loin de comprendre tout ça, quelqu'un est-il expert en codes http??
 
WRInaute accro
Tu peux lire le dossier WebRankInfo des codes HTTP

Sinon il suffit d'aller lire la RFC (2616):

10.3.1 300 Multiple Choices

The requested resource corresponds to any one of a set of representations, each with its own specific location, and agent-driven negotiation information (section 12) is being provided so that the user (or user agent) can select a preferred representation and redirect its request to that location.

Unless it was a HEAD request, the response SHOULD include an entity containing a list of resource characteristics and location(s) from which the user or user agent can choose the one most appropriate. The entity format is specified by the media type given in the Content-Type header field. Depending upon the format and the capabilities of the user agent, selection of the most appropriate choice MAY be performed automatically. However, this specification does not define any standard for such automatic selection.

If the server has a preferred choice of representation, it SHOULD include the specific URI for that representation in the Location field; user agents MAY use the Location field value for automatic redirection. This response is cacheable unless indicated otherwise.

En clair, c'est utilisé pour de la négociation de contenu quand plusieurs versions sont dispo (par exemple plusieurs langues possibles, plusieurs formats...).

et

10.3.4 303 See Other

The response to the request can be found under a different URI and SHOULD be retrieved using a GET method on that resource. This method exists primarily to allow the output of a POST-activated script to redirect the user agent to a selected resource. The new URI is not a substitute reference for the originally requested resource. The 303 response MUST NOT be cached, but the response to the second (redirected) request might be cacheable.

The different URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).
Note: Many pre-HTTP/1.1 user agents do not understand the 303
status. When interoperability with such clients is a concern, the
302 status code may be used instead, since most user agents react
to a 302 response as described here for 303.

En clair: utilisé pour faire un PRG: Post/Redirect/Get. Quand ton serveur reçoit un POST (ou un GET qui agit réellement comme un POST, i.e. qui fait des modifications, genre création/suppression de quelque chose), il est fortement recommandé de ne pas afficher un résultat et de s'arrêter là, mais de faire un redirect vers un GET qui ne fera rien (normalement une requête GET doit être idempotente, i.e. l'exécuter plusieurs fois ne doit rien changer). Ca évite les trucs genre "plusieurs réservations ont été créées parce que l'utilisateur a fait un reload sur la page de confirmation". Normalement tu devrais utiliser un 303 pour le Redirect au milieu, mais pour compatibilité tu peux très bien utiliser un 302, ce qui est à ma connaissance le cas le plus fréquent.

Jacques.
 
WRInaute impliqué
Merci :)

euh... si j'ai bien compris donc sur la 300 tu peux rediriger en fonction du user agent?

Par contre pour la 303 je ne comprend toujours pas. Pourquoi utiliser celle là plutôt qu'une 301 ou 302?
Je ne comprend pas trop la différence... c'est juste une redirection?
 
WRInaute accro
RiPSO a dit:
euh... si j'ai bien compris donc sur la 300 tu peux rediriger en fonction du user agent?

Pas tout à fait non. C'est prévu pour le cas où il y a plusieurs versions d'une même ressource (une page en plusieurs langues, par exemple), mais que la sélection n'est pas faite par le serveur (en utilisant les headers Accept-Language envoyés par le browser par exemple), mais qu'on veut laisser le choix à l'user-agent (le browser) ou à l'utilisateur. On lui renvoie alors une réponse 300 avec la liste des choix (à ma connaissance il n'y a pas de spécification permettant de décrire les différents choix pour que le user-agent puisse faire le choix tout seul, donc ce sera toujours l'utilisateur qui choisira, via un menu en HTML par exemple). Tout ça est expliqué ici:

http://www.w3.org/Protocols/rfc2616/rfc ... ml#sec12.2

RiPSO a dit:
Par contre pour la 303 je ne comprend toujours pas. Pourquoi utiliser celle là plutôt qu'une 301 ou 302?
Je ne comprend pas trop la différence... c'est juste une redirection?

C'est une question de sémantique. Un 301 ou un 302 implique qu'on indique qu'il y a une équivalence entre les deux ressources (qui pourrait dans certains cas être mise en cache, voire entraîner une mise à jour de bookmarks etc.). Un 303 indique qu'il n'y a aucune équivalence entre les deux, mais qu'il faut aller là-bas. C'est un redirect, mais avec des implications différentes. Un peu comme il y a une différence entre un 301 et un 302. En pratique, il y a peu de différence entre un 302 et un 303 à ma connaissance.

Jacques.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut