type que para length headers enviar ejemplo dummies data content cabeceras cabecera accept http http-headers httpwebresponse httpresponse content-disposition

que - Usos de la disposición de contenido en un encabezado de respuesta HTTP



http para dummies (6)

He encontrado que el siguiente código asp.net es muy útil cuando se sirven archivos de una base de datos:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);

Esto permite al usuario guardar el archivo en su computadora y luego decidir cómo usarlo, en lugar de que el navegador intente usar el archivo.

¿Qué otras cosas se pueden hacer con el encabezado de respuesta disposición-contenido?


Bueno, parece que el encabezado Content-Disposition fue creado originalmente para correo electrónico, no para la web. ( Enlace a la RFC correspondiente )

Supongo que los navegadores web pueden responder a

Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

al guardar, pero no estoy seguro.



Este encabezado se define en RFC 2183 , por lo que sería el mejor lugar para comenzar a leer.

Los valores permitidos son aquellos registrados en la Autoridad de números asignados de Internet (IANA); su registro de valores debe verse como la fuente definitiva.


La autoridad en el encabezado de disposición de contenido es RFC 1806 y RFC 2183. Las personas también han ideado la piratería de disposición de contenido. Es importante tener en cuenta que el encabezado content-disposition no es parte del estándar HTTP 1.1.

El estándar HTTP 1.1 ( RFC 2616 ) también menciona los posibles efectos secundarios de seguridad de la disposición del contenido:

15.5 Problemas de disposición de contenido

RFC 1806 [35], a partir de la cual el contenido-disposición a menudo implementado
(ver sección 19.5.1) se deriva el encabezado en HTTP, tiene un número muy
serias consideraciones de seguridad. Content-Disposition no es parte de
el estándar HTTP, pero dado que está ampliamente implementado, estamos
documentando su uso y riesgos para los implementadores. Ver RFC 2183 [49]
(que actualiza RFC 1806) para más detalles.

Tenga en cuenta que RFC 6266 reemplaza los RFC a los que se hace referencia a continuación. La Sección 7 describe algunas de las preocupaciones de seguridad relacionadas.


Para los usuarios de asp.net, .NET Framework proporciona una clase para crear un encabezado de disposición de contenido: System.Net.Mime.ContentDisposition

Uso básico:

var cd = new System.Net.Mime.ContentDisposition(); cd.FileName = "myFile.txt"; cd.ModificationDate = DateTime.UtcNow; cd.Size = 100; Response.AppendHeader("content-disposition", cd.ToString());