2010-07-21 10 views
19

¿Es posible establecer el encabezado de longitud de contenido y también usar la codificación de transferencia fragmentada? y, al hacerlo, ¿resuelve el problema de no saber la duración de la respuesta en el lado del cliente cuando se utiliza fragmentado?Codificación fragmentada y encabezado de longitud de contenido

el escenario en el que estoy pensando es cuando tienes un archivo grande para transferir y no hay problema en determinar su tamaño, pero es demasiado grande para ser almacenado por completo. (Si no está usando fragmentado, ¿la respuesta completa debe almacenarse primero en el búfer? ¿De acuerdo?)

gracias.

+3

Si usted podría mencionar cualquier referencia RFC o algo así, sería muy bueno. – p00ya00

Respuesta

22

1) No: "Los mensajes NO DEBEN incluir un campo de encabezado de longitud de contenido y una codificación de transferencia no de identidad. Si el mensaje incluye una codificación de transferencia de identidad, la longitud de contenido DEBE ignorarse. " (RFC 2616, Section 4.4)

2) Y no, usted puede utilizar Content-Length y transmitir; el protocolo no restringe cómo funciona su implementación.

+0

Espero que la codificación de transferencia fragmentada sea un ejemplo de transmisión; usted ha mencionado aquí, ¿no? también puede incluir solicitudes de rango. estoy en lo correcto? –

7

Bueno, siempre puede enviar un encabezado que indique el tamaño del archivo. Algo así como response.addHeader("File-Size","size of the file");
E ignore el encabezado Content-Length.

aplicación El cliente tiene que ser ajustado para leer este valor, pero bueno se puede lograr tanto las cosas que quiere :)

+0

Las soluciones simples son las mejores :-) – EZDsIt

+1

La convención es usar un prefijo 'X-' en cualquier encabezado no estándar. Un proxy HTTP puede decidir eliminar su encabezado no estándar no X. – MSalters

+0

Gracias MSalters, acaba de hacer referencia a una guía similar en otro lugar, lo aprecio. – Gyan

Cuestiones relacionadas