Quelle est la longueur maximale d'une URL dans les différents navigateurs ? Est-elle différente d'un navigateur à l'autre ?
Le protocole HTTP l'impose-t-il ?
Si vous maintenez les URL en dessous de 2000 caractères, elles fonctionneront dans pratiquement toutes les combinaisons de logiciels clients et serveurs. Si vous ciblez des navigateurs particuliers, voir ci-dessous pour plus de détails sur les limites spécifiques.
La section 3.2.1 de la [RFC 2616][1] (Hypertext Transfer Protocol HTTP/1.1) stipule que
Le protocole HTTP n'impose aucune limite a priori sur la longueur d'un d'un URI. Les serveurs DOIVENT être en mesure de traiter l'URI de toute ressource qu'ils servent, et DEVRAI être en mesure de traiter des URI de longueur non limitée s'ils fournissent des formulaires basés sur GET qui pourraient générer de tels URI. Un serveur DEVRAIT renvoyer 414 (Request-URI Too Long) si un URI est plus long que ce que le serveur peut serveur peut gérer (voir la section 10.4.15).
Cette RFC a été remplacée par la [RFC7230][2] qui est une mise à jour de la spécification HTTP/1.1. Elle contient un langage similaire, mais poursuit également en suggérant ceci : Diverses limitations ad hoc de la longueur de la ligne de requête sont trouvées en pratique. Il est RECOMMANDÉ que tous les expéditeurs et destinataires HTTP prennent en charge, au minimum, la longueur de la ligne de requête. supportent, au minimum, une longueur de ligne de requête de 8000 octets.
...et la réalité
C'est ce que disent les standards. Pour la réalité, consultez [cette recherche sur boutell.com][3] pour voir ce que les implémentations individuelles des navigateurs et des serveurs supportent. Cela vaut la peine d'être lu, mais le résumé est le suivant : Les URL extrêmement longues sont généralement une erreur. *Les URL de plus de 2 000 caractères ne fonctionneront pas dans les navigateurs Web les plus populaires. Ne les utilisez pas si vous souhaitez que votre site fonctionne pour la majorité des internautes. si vous souhaitez que votre site fonctionne pour la majorité des utilisateurs d'Internet. (Remarque : il s'agit d'une citation d'un article écrit en 2006, mais en 2015, le déclin de l'utilisation d'IE signifie que les URL plus longues fonctionnent* pour la majorité. Cependant, IE a toujours cette limitation...)
Les limites d'Internet Explorer...
[La longueur maximale des URL d'IE8 est de 2083 caractères][4], et il semble qu'[IE9 ait une limite similaire][5]. J'ai testé IE10 et la barre d'adresse n'accepte que 2083 caractères. Vous pouvez cliquer sur une URL plus longue que celle-ci, mais la barre d'adresse n'affichera toujours que 2083 caractères de ce lien. Il y a un [bon article sur le blog IE Internals][6] qui explique en partie le contexte de ce problème. Les rapports sont mitigés : IE11 prend en charge les URL plus longues - voir les commentaires ci-dessous. Étant donné que certaines personnes signalent des problèmes, le conseil général reste valable.
Les moteurs de recherche aiment les URL < 2048 caractères...
Sachez que le [protocole sitemaps][7], qui permet à un site d'informer les moteurs de recherche sur les pages disponibles, est limité à 2048 caractères dans une URL. Si vous avez l'intention d'utiliser les sitemaps, une limite a été décidée pour vous ! (voir réponse de Calin-Andrei Burloiu ci-dessous) Des recherches ont également été menées en 2010 sur la [longueur maximale des URL que les moteurs de recherche peuvent explorer et indexer][9]. Ils ont constaté que la limite était de 2047 caractères, ce qui semble lié à la spécification du protocole sitemap. Cependant, ils ont également constaté que l'outil Google SERP ne pouvait pas gérer les URL de plus de 1855 caractères.
Tour d'horizon des navigateurs supplémentaires
J'ai testé les éléments suivants sur un serveur Apache 2.4 configuré avec des valeurs très élevées de LimitRequestLine et LimitRequestFieldSize.
Browser Address bar document.location
or anchor tag
------------------------------------------
Chrome 32779 >64k
Android 8192 >64k
Firefox >64k >64k
Safari >64k >64k
IE11 2047 5120
Edge 16 2047 10240
Voir également cette réponse de Matas Vaitkevicius ci-dessous.
C'est une question populaire, et comme la recherche originale a ~12 ans, je vais essayer de la garder à jour : En date du sept 2018, le conseil est toujours valable. Même si IE11 peut éventuellement accepter des URL plus longues, l'omniprésence des anciennes installations d'IE plus les limitations des moteurs de recherche signifient que rester en dessous de 2000 caractères est la meilleure politique générale. [1] : http://www.faqs.org/rfcs/rfc2616.html [2] : http://tools.ietf.org/html/rfc7230#section-3.1.1 [3] : http://www.boutell.com/newfaq/misc/urllength.html [4] : https://support.microsoft.com/en-us/kb/208427 [5] : https://stackoverflow.com/questions/3721034/how-long-an-url-can-internet-explorer-9-take [6] : https://blogs.msdn.microsoft.com/ieinternals/2014/08/13/url-length-limits/ [7] : http://www.sitemaps.org/protocol.html
[WWW FAQs : Quelle est la longueur maximale d'une URL ?][1] a sa propre réponse basée sur des tests et des recherches empiriques. La réponse courte est que dépasser 2048 caractères rend Internet Explorer mécontent et que c'est donc la limite à utiliser. Voir la page pour une réponse plus longue.
La [RFC URI][1] (dont les URL sont un sous-ensemble) ne définit pas de longueur maximale, mais elle recommande que la partie nom d'hôte de l'URI (le cas échéant) ne dépasse pas 255 caractères :
Les producteurs d'URI doivent utiliser des noms qui Les producteurs d'URI doivent utiliser des noms conformes à la syntaxe DNS, même si l'utilisation du DNS n'est pas immédiate. l'utilisation du DNS n'est pas immédiatement immédiatement apparente, et doivent limiter ces noms 255 caractères au maximum. 255 caractères.
Comme indiqué dans d'autres messages, certains navigateurs ont une limitation pratique de la longueur d'une URL.