J'ai entendu dire que HTTP POST n'a pas de limite de spécification dans la taille des données, il peut être envoyé par. Est-ce vrai ou y a-t-il juste une limite vraiment élevée?
EDIT (2019) Cette réponse est maintenant assez redondante mais il y a ne autre réponse avec des informations plus pertinentes.
Cela dépend plutôt du serveur Web et du navigateur Web:
Internet Explorer Toutes les versions 2GB-1
Mozilla Firefox Toutes les versions 2GB-1
[~ # ~] iis [~ # ~] 1-5 2 Go-1
[~ # ~] iis [~ # ~] 6 4 Go-1
Bien que IIS ne prenne en charge que 200 Ko par défaut, la métabase doit être modifiée pour l'augmenter.
http://www.motobit.com/help/scptutl/pa98.htm
La méthode POST elle-même n'a pas de limite sur la taille des données.
Tout à fait incroyable de voir comment toutes les réponses parlent d'IIS, comme si c'était le seul serveur Web qui comptait. Même en 2010, lorsque la question a été posée, Apache avait entre 60% et 70% de la part de marché . En tous cas,
min(serverMaximumSize, clientMaximumSize)
.Voici les tailles de corps POST pour certains des serveurs HTTP les plus populaires:
Il n'y a pas de limite selon le protocole HTTP lui-même, mais les implémentations auront une limite supérieure pratique. J'ai envoyé des données dépassant 4 Go en utilisant POST à Apache, mais certains serveurs avaient une limite de 4 Go à l'époque.
POST permet d'envoyer une longueur arbitraire de données à un serveur, mais il existe des limitations basées sur les délais d'attente/la bande passante, etc.
Je pense qu'en gros, il est plus sûr de supposer qu'il est pas correct d'envoyer beaucoup de données.
Différents IIS serveurs Web peuvent traiter différentes quantités de données dans l'en-tête, selon cet article (maintenant supprimé); http://classicasp.aspfaq.com/forms/what-is-the-limit-on-form/post-parameters.html;
Notez qu'il n'y a pas de limite sur le nombre d'éléments FORM que vous pouvez passer via POST, mais uniquement sur la taille agrégée de toutes les paires nom/valeur. Alors que GET est limité à 1 024 caractères, POST sont limitées à 2 Mo sur IIS 4.0 et 128 Ko sur IIS 5.0. Chaque nom/valeur est limité à 1024 caractères, comme imposé par la spécification SGML. Bien sûr, cela ne s'applique pas aux fichiers téléchargés en utilisant enctype = 'multipart/form-data' ... Je n'ai eu aucun problème téléchargement de fichiers dans la plage de 90 à 100 Mo en utilisant IIS 5.0, en plus d'avoir à augmenter la valeur server.scriptTimeout ainsi que ma patience!
HTTP peut ne pas avoir de limite supérieure, mais les serveurs Web peuvent en avoir une. Dans ASP.NET, il existe une limite d'acceptation par défaut de 4 Mo, mais vous (le développeur/webmaster) pouvez la modifier pour qu'elle soit supérieure ou inférieure.
Dans une application que je développais, je suis tombé sur ce qui semblait être une limite POST d'environ 2 Ko. Il s'est avéré que j'encodais accidentellement les paramètres dans l'URL au lieu de les transmettre dans le Donc, si vous rencontrez un problème là-bas, il y a certainement une très petite limite sur la taille des données POST que vous pouvez envoyer encodées dans l'URL.