web-dev-qa-db-fra.com

Limite de la longueur des données qu'un serveur Web peut renvoyer en réponse à une demande GET

J'ai RESTE service en cours d'exécution sur le serveur de la jetée qui répond à OBTENIR demandes avec certains données sur les ressources. Jusqu'à présent, les données que je récupère étaient de l'ordre de quelques ko. Je cherche à utiliser un service REST similaire qui pourrait éventuellement renvoyer d'énormes données, peut atteindre 100 Mo ou plus. les processus clients ont été configurés avec suffisamment de mémoire.

Je me demande si jetty ou n'importe quel serveur Web en général impose une restriction sur la longueur des données qu'il peut retourner au client en réponse à un GET. Si oui, est-il configurable en jetée?

26
techuser soma

Réponse originale:

Il n'y a pas de limites sur la quantité de données retournées sur une réponse HTTP de Jetty.

Vous pouvez renvoyer des données au client jusqu'à peu de temps avant le mort thermique de l'univers .

Techniquement parlant, vous pouvez avoir une réponse HTTP sans Content-Length spécifié, qui peut être renvoyé en utilisant Chunked Transfer-Encoding , ou juste un flux brut d'octets avec un Connection: close indiquant quand les données sont terminées (en cours d'envoi) par une fermeture de la connexion sous-jacente. Les deux sont essentiellement sans limite.

Si vous utilisez une réponse HTTP avec Content-Length en-tête, sachez que Content-Length est, en pratique, un nombre 32 bits, mais les navigateurs plus modernes prennent en charge les versions 64 bits .

Mise à jour (août 2019):

Jetty 9.4.20.v20190813 peut désormais gérer Content-Length en-têtes de taille maximale Long.MAX_VALUE ( 9 223 372 036 854 775 807 octets)

47
Joakim Erdfelt