Quelle est la limite de caractères sur l’URL

Quelle est la limite de caractères pour une URL, en particulier si l’URL est formée à partir d’une méthode GET d’un formulaire.

Selon Microsoft, c’est en 2048. Depuis qu’ils ont inventé Internet (et aussi la lumière, l’obscurité et Linux), ils ont raison. 🙂 …. ou .. et comme IE force cette valeur inférieure, c’est le plus petit dénominateur commun.

http://support.microsoft.com/kb/208427

Sous Firefox, je vois des personnes sur les URL de rapport net de 0xFFFF fonctionnant: http://forums.mozillazine.org/viewtopic.php?f=38&t=155648&start=0&st=0&sk=t&sd=a

Voici un autre article qui en parle: http://hiox.org/index.php?id=425


EDIT: c’est très sortingste que presque 5 ans après avoir écrit cette réponse – c’est toujours vrai. Si vous le pouvez, regardez l’historique de cette réponse.

EDIT2: J’ai trouvé une meilleure réponse sur StackOverflow – Quelle est la longueur maximale d’une URL dans différents navigateurs?

Il n’y a pas de maximum publié, mais la limite effective est d’environ 2 000 caractères car c’est ce qu’Internet Explorer (version 4 et supérieure) prend en charge. Voir http://www.boutell.com/newfaq/misc/urllength.html

Explication

Il n’y a pas de règle de pouce pour la taille d’URL maximale de HTTP Get Request selon RFC 2616 (Hypertext Transfer Protocol – HTTP / 1.1 – Section 3.2.1).

Les limites sont imposées par différents navigateurs et serveurs respectifs.
Ces limites doivent être sockets en compte collectivement lors du passage de la chaîne de requête transmise dans l’URL dans l’une des requêtes HTTP.

Si la taille de l’URL dépasse la limite de taille de l’URL imposée par le navigateur respectif, la demande ne sera pas transmise au serveur et des efforts inutiles seront nécessaires pour déboguer et gérer cette situation.


Taille maximale de l’URL par …

Navigateur

  1. Internet Explorer

    2048 B

    Microsoft Internet Explorer a une longueur maximale de 2 083 caractères . Internet Explorer a également une longueur de chemin maximale de 2 048 caractères. Cette limite s’applique à la fois aux URL de demande POST et de demande GET. Si vous utilisez la méthode GET, vous êtes limité à 2 048 caractères au maximum, moins le nombre de caractères du chemin réel.

  2. Mozilla Firefox

    100 Ko

    La barre d’adresse ne montre aucun caractère au-delà de 65 536 caractères. Mais la taille de l’URL peut être supérieure à cela , même si vous ne pouvez pas l’afficher dans la barre d’adresse. Cela vaut pour FireFox 1.5 jusqu’à la version actuelle de FireFox

  3. Opéra

    200 Ko

    L’URL est complètement visible dans la barre d’adresse, même à une si grande distance.

  4. Chrome, Safari

    100 Ko

    Les deux navigateurs sont basés sur Webkit et semblent avoir presque la même limite que Firefox


Serveur

  1. Apache

    128 Ko

    La taille est modifiée à l’aide du paramètre LimitRequestLine du serveur

  2. IIS

    16 Ko

    La valeur par défaut est 16 Ko et la limite maximale est 16 Mo

  3. Lotus Notes

    4 Ko


Informations complémentaires

Les très longues URL ne sont pas recommandées du tout.
Pour qu’une application Web soit compatible avec plusieurs navigateurs, la méthode Get ne doit pas être utilisée pour transmettre des chaînes très longues contenant plus de 2000 caractères.

Si vous êtes confronté à une situation où vous devez utiliser des URL pour contenir un grand nombre de caractères, réfléchissez-y.

IE plus récent: 2048 caractères Certaines plates-formes ne prennent en charge que 255.

Différents navigateurs ont des limites différentes. Mais généralement, la limite est d’environ 2 000 caractères pour la méthode GET d’une URL. Vous pouvez utiliser une page proxy qui effectue une méthode POST (si votre API le prend en charge) et qui a une limite supérieure à 5 000 caractères. Nous étudions actuellement l’utilisation d’une page de proxy avec l’API Google Map car nous sums tombés dans la limite de 2 000 caractères.