Y a-t-il une limite à la longueur d'une requête GET ?
Réponses
Trop de publicités?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.
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.
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.
- Réponses précédentes
- Plus de réponses