2009-10-15 11 views
19

Existe-t-il une limite de longueur pour la partie fragment d'une URL (également appelée hachage)?Longueur maximale des fragments d'URL (hachage)

+0

Il n'y a pas de standard pour le hachage car il est côté client seulement, mais la limite est généralement [très élevée] (http://stackoverflow.com/a/25759637/405550). – Zaz

Répondre

13

Le hachage est côté client uniquement, de sorte que les règles de HTTP ne peut s'y appliquer.

+0

Le "hash" est en réalité le fragment d'URL et n'est pas envoyé au serveur, par conséquent la limitation de longueur d'un point de vue serveur ne s'applique pas . –

7

Cela dépend du navigateur. J'ai trouvé que dans Safari, Chrome et Firefox, une URL avec un hachage long est légale, mais s'il s'agit d'un envoi de paramètres au serveur, le navigateur affichera une erreur 414 ou 413. Par exemple: une URL comme http://www.stackoverflow.com/?abc#{hash value with 100 thousand characters} sera OK. et vous pouvez utiliser location.hash pour obtenir la valeur de hachage en javascript mais une URL comme http://www.stackoverflow.com/?abc&{query with 100 thousand characters} sera illégale, si vous collez ce lien dans la barre d'adresse, un code d'erreur 413 sera donné et le message est the client issued a request that was too long. Si c'est un lien dans une page Web, sur mon ordinateur, Nginx répond au message d'erreur 414.

Je ne connais pas la situation dans IE. Donc, je pense que la limite de la longueur de l'URL est juste pour la transmission ou le serveur HTTP, le navigateur va le vérifier parfois, mais pas à chaque fois, et il sera toujours autorisé à être utilisé comme un hachage.

Questions connexes