Est-il une limite à la longueur d'une requête GET? [dupliquer]
cette question a déjà une réponse ici:
- longueur maximale de la requête HTTP GET? 7 réponses
y a-t-il une limite à la longueur d'une demande GET?
6 réponses
Pas dans le RFC , non, mais il existe des limites pratiques.
le protocole HTTP n'impose pas de limite a priori à la longueur de URI. Les serveurs doivent être capables de gérer L'URI de n'importe quelle ressource servir, et devrait être capable de manipuler des URIs de longueur illimitée si elles fournir des formulaires GET-based qui pourraient générer de tels URI. Serveur Doit retourner le statut 414 (URI de la demande trop Long) si un URI est plus long que le serveur peut gérer (voir la section 10.4.15).
Note: les serveurs doivent être prudents en fonction de la longueur des URI au-dessus de 255 octets, parce que certaines implémentations client ou proxy plus anciennes peut ne pas supporter correctement ces longueurs.
cet article résume assez bien
résumé: il est dépendant de la mise en œuvre, car il n'y a pas de limite spécifiée dans la RFC. Il serait sûr d'utiliser jusqu'à 2000 caractères (limite de IE. Si vous êtes près de cette longueur, vous devriez vous assurer que vous avez vraiment besoin URIs que long, peut-être un design alternatif pourrait obtenir autour de cela.
URIs doit être lisible, même lorsqu'il est utilisé pour envoyer des données.
comme demandé par L'utilisateur Erickson, je poste mon commentaire comme réponse:
j'ai fait plus de tests avec IE8, IE9, FF14, Opera11, Chrome20 et Tomcat 6.0.32 (nouvelle installation), Jersey 1.13 côté serveur. J'ai utilisé la fonction jQuery $.getJson et JSONP. Résultats: Tous les Navigateurs autorisés jusqu'à environ 5400 caractères. FF et IE9 ont fait jusqu'à environ 6200 chars. Tout ce qui précède a retourné "400 Bad request". Je n'ai pas cherché plus loin ce qui était responsable des 400. Je était d'accord avec le maximum que j'ai trouvé, parce que j'avais besoin d'environ 2000 chars dans mon cas.
la spécification ne limite pas la longueur D'une requête HTTP Get mais les différents navigateurs implémentent leurs propres limitations. Par exemple Internet Explorer a une limitation implémentée à 2083 caractères.
W3C décline catégoriquement cette idée comme un mythe ici
setFixedLengthStreamingMode(int) avec contentLength paramètres de définir la longueur fixe d'un corps de requête HTTP.