La limite dépend à la fois du serveur et du client utilisé (et le cas échéant, aussi du proxy utilisé par le serveur ou le client).
La plupart des serveurs et des clients ont une limite de 8192 octets (8 Ko), qui est généralement configurable quelque part dans les paramètres du serveur ou du client. La spécification HTTP recommande 8000 octets dans la section 4.1:
Il est RECOMMANDÉ que tous les expéditeurs et destinataires prennent en charge, au minimum, des URI d'une longueur de 8000 octets dans les éléments du protocole. Notez que cela implique que certaines structures et représentations sur le fil (par exemple, la ligne de requête dans HTTP/1.1) seront nécessairement plus grandes dans certains cas.
Mais ce n'est donc pas obligatoire. La limite est généralement plus basse dans les anciens clients. Par exemple, Internet Explorer avait une limite d'environ 2 Ko. La version précédente de la spécification HTTP indique même littéralement ce qui suit:
Note : les serveurs doivent être prudents en ce qui concerne la dépendance aux longueurs d'URI supérieures à 255 octets, car certaines implémentations de clients ou de proxy plus anciennes pourraient ne pas prendre en charge correctement ces longueurs.
Si la limite est dépassée dans le navigateur ou le serveur, la plupart tronqueront simplement les caractères dépassant la limite sans avertissement. Certains serveurs cependant peuvent envoyer une erreur HTTP 414 'URI Too Long'.
Si vous devez envoyer de grandes données, il vaut mieux utiliser POST au lieu de GET. Sa limite est beaucoup plus élevée, mais plus dépendante du serveur utilisé que du client. Généralement, jusqu'à environ 4 Go est autorisé par le serveur web moyen. Cela est également configurable quelque part dans les paramètres du serveur. Le serveur moyen affichera une erreur/exception spécifique au serveur lorsque la limite POST est dépassée, généralement sous la forme d'une erreur HTTP 500.
11 votes
Possible duplicate de Quelle est la longueur maximale d'une URL ?
11 votes
@KillianDS Il n'a absolument rien à voir avec la longueur maximale d'une URL. La question concerne la longueur maximale d'une requête envoyée à une URL.
2 votes
@EJP le contenu 'data' d'une requête GET n'est rien de plus qu'une URI.
1 votes
@JimAho votre commentaire est un duplicata du premier commentaire aussi.....