TsgcWebSocketHTTPServer › Propriétés › MaxRequestBodySize
Taille maximale en octets d'un corps de requête HTTP entrante ; protège le serveur des attaques par épuisement de mémoire.
property MaxRequestBodySize: Int64 read GetMaxRequestBodySize write SetMaxRequestBodySize;
67108864 (64 Mo). Utilisez 0 pour illimité.
MaxRequestBodySize borne la taille d'un corps de requête HTTP entrante. Sans une telle borne, un client peut déclarer un Content-Length énorme et diffuser un corps illimité vers le serveur afin d'épuiser sa mémoire. Lorsque la taille de corps déclarée d'une requête dépasse cette limite, le serveur rejette la requête avec le statut HTTP 413 (Payload Too Large) au lieu de la mettre en mémoire tampon, de sorte que la tentative est stoppée avant toute allocation importante.
La valeur par défaut de 64 Mo est sûre pour la grande majorité des applications. Augmentez-la si votre application accepte légitimement des téléversements volumineux via HTTP POST, ou réduisez-la pour resserrer la limite mémoire sur un serveur exposé publiquement. Une valeur de 0 désactive entièrement la limite (déconseillé sur un serveur accessible depuis des réseaux non fiables). Cette limite est indépendante de MaxMessageSize, qui borne les messages WebSocket entrants plutôt que les corps de requêtes HTTP.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Port := 80;
// reject any HTTP request whose body is larger than 16 MB (HTTP 413)
oServer.MaxRequestBodySize := 16 * 1024 * 1024;
oServer.Active := true;