Un usuario puede ENVIAR un documento a nuestro servicio web. Lo transmitimos a otra parte. Pero, al final de la transmisión, debemos asegurarnos de que no mintieron sobre su longitud de contenido.¿Cómo verificar la longitud real del contenido contra el encabezado Content-Length?
Supongo que si headerContentLength > realContentLength
, la solicitud simplemente esperará a que envíen el resto, con el tiempo de espera. Entonces eso es probablemente correcto.
¿Qué pasa si headerContentLength < realContentLength
? Es decir. ¿Qué pasa si siguen enviando datos después de que dijeron que habían terminado?
¿Está esto cuidado por Node.js de alguna manera? Si no, ¿cuál es una buena manera de verificar? Supongo que podría contar los bytes dentro de algunos escuchas de eventos data
--- es decir, req.on("data", function (chunk) { totalBytes += chunk.length; })
. Aunque eso parece un poco complicado.
¿No está realizando esta comprobación en el evento 'end' de la solicitud porque quiere finalizar la conexión inmediatamente en caso de que el cliente envíe más datos que el encabezado' content-length' especificado? – cjohn
Estaría encantado de realizar el control en el evento 'end', pero no sé a qué propiedad acceder para decir cuántos bytes realmente se enviaron. 'http.ServerRequest' no parece tener ninguna de esas propiedades. – Domenic