78 votes

Y a-t-il une limite à la longueur d'une requête GET ?

Y a-t-il une limite à la longueur d'une requête GET ?

49voto

Ed Guiness Points 21866

Pas dans le RFC non, mais il y a des limites pratiques.

Le protocole HTTP n'impose aucune limite a priori à la longueur d'un d'un URI. Les serveurs DOIVENT être en mesure de traiter l'URI de toute ressource qu'ils ressources qu'ils servent, et DEVRAI être en mesure de traiter des URI de longueur illimitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT renvoyer le statut 414 (Request-URI Too Long) si un URI est plus long que le serveur peut traiter (voir la section 10.4.15).

Remarque : les serveurs doivent être prudents lorsqu'ils dépendent de longueurs d'URI supérieures à 255 octets, car certaines anciennes implémentations de clients ou de mandataires peuvent ne pas supporter correctement ces longueurs.

33voto

Vinko Vrsalovic Points 116138

Cet article résume assez bien la situation

Résumé : Cela dépend de l'implémentation, car il n'y a pas de limite spécifiée dans la RFC. Il serait prudent d'utiliser jusqu'à 2000 caractères (la limite d'IE). Si vous êtes proche de cette longueur, vous devriez vous assurer que vous avez vraiment besoin d'URIs aussi longs, peut-être qu'une conception alternative pourrait contourner cela.

Les URI doivent être lisibles, même lorsqu'ils sont utilisés pour envoyer des données.

10voto

Joakim Karlsson Points 699

La spécification ne limite pas la longueur d'une requête HTTP Get, mais les différents navigateurs mettent en œuvre leurs propres limitations. Par exemple, Internet Explorer a une limite fixée à 2083 caractères.

8voto

Chillie B Points 132

Le W3C a déclaré sans équivoque qu'il s'agissait d'un mythe.

http://www.w3.org/2001/tag/doc/get7#myths

4voto

OneWorld Points 6140

Comme demandé par l'utilisateur Erickson, je poste mon commentaire comme réponse :

J'ai effectué d'autres tests avec IE8, IE9, FF14, Opera11, Chrome20 et Tomcat 6.0.32 (nouvelle installation), Jersey 1.13 du côté serveur. J'ai utilisé la fonction jQuery $.getJson et JSONP. Résultats : Tous les navigateurs autorisent jusqu'à environ 5400 caractères. FF et IE9 ont permis jusqu'à environ 6200 caractères. Tous les navigateurs ci-dessus ont renvoyé "400 Bad request". Je n'ai pas cherché à savoir ce qui était à l'origine de ce 400. Le maximum que j'ai trouvé me convenait, car j'avais besoin d'environ 2000 caractères dans mon cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X