Para aprender de tipo contenido, debe saber de antemano qué es y para qué sirve.
El protocolo HTTP (RFC2616) adopta un modelo de solicitud/respuesta. El cliente envía una solicitud al servidor, y el encabezado de solicitud contiene el método solicitado, URI, versión de protocolo y una estructura de mensajes de MIME que contiene el modificador de solicitud, la información del cliente y el contenido. El servidor responde con una línea de estado, y el contenido correspondiente incluye la versión del protocolo de mensajes, la codificación de éxito o error más la información del servidor, la meta información de la entidad y el posible contenido de la entidad.
Por lo general, un mensaje HTTP consiste en una línea de inicio, uno o más campos de encabezado, una línea en blanco que termina con el campo de encabezado y un cuerpo de mensaje opcional. El campo de encabezado de HTTP incluye cuatro partes: encabezado general, encabezado de solicitud, encabezado de respuesta y encabezado de entidad. Cada campo de encabezado consta de tres partes: un nombre de dominio, un colon (:) y un valor de dominio. Los nombres de dominio son independientes de la caja, se pueden agregar cualquier número de caracteres espaciales antes del valor del dominio, y los campos de encabezado se pueden ampliar a múltiples líneas, utilizando al menos un carácter de espacio o tabulación al comienzo de cada línea.
Tanto el mensaje de solicitud como el mensaje de respuesta pueden contener información de entidad, que generalmente consisten en el campo y la entidad del encabezado de entidad. El campo de encabezado de entidad contiene información original sobre la entidad. El encabezado de la entidad incluye permitir, base de contenido, codificación de contenido, lenguaje de contenido, longitud de contenido, ubicación de contenido, contenido-MD5, rango de contenido, tipo de contenido, ETAG, expirada, último modificado y encabezado de extensión.
El tipo de contenido es un contenido muy importante en el mensaje de retorno, lo que indica a qué tipo MIME le pertenece el documento posterior. Content-type: [type]/[subtype]; parámetro. Por ejemplo, el más común es Text/HTML, lo que significa que el contenido devuelto es el tipo de texto, y el texto está en formato HTML. En principio, el navegador decidirá cómo mostrar el contenido del cuerpo del mensaje devuelto basado en el tipo de contenido.
El tipo tiene el siguiente formularioTexto: Información de texto Para representación estandarizada, el mensaje de texto puede ser de múltiples conjuntos de caracteres o en múltiples formatos;
Multipart: utilizado para conectar varias partes del cuerpo del mensaje para formar un mensaje, y estas partes pueden ser diferentes tipos de datos;
Aplicación: Se utiliza para transmitir datos de aplicación o datos binarios;
Mensaje: Se usa para envolver un mensaje de correo electrónico;
Imagen: se usa para transmitir datos de imagen estática;
Audio: utilizado para transmitir datos de audio o audio;
Video: utilizado para transmitir datos de imagen dinámica, que pueden ser un formato de datos de video editado con audio.
El subtipo se usa para especificar la forma detallada del tipo. El conjunto de pares de tipo de contenido/subtipo y los parámetros asociados con esto crecerán con el tiempo. Para garantizar que estos valores se desarrollen en un estado público y ordenado, MIME utiliza la Autoridad de números asignados por Internet (IANA) como el mecanismo de registro central para administrar estos valores.
El parámetro se puede utilizar para especificar información adicional, y en más casos es un parámetro de charset utilizado para especificar métodos de codificación de texto como texto/simple y texto/htm. MIME ha establecido el subtipo predeterminado en función del tipo. Cuando el cliente no puede determinar el subtipo del mensaje, el mensaje se trata como el subtipo predeterminado para el procesamiento. El texto es texto/simple de forma predeterminada, la aplicación es la aplicación/octet-stream de forma predeterminada, y el multipart se considera multipart/mezclado de forma predeterminada. Para los navegadores IE6, si el tipo de contenido de tipo de contenido es inconsistente con el tipo de cuerpo de mensaje real, analizará qué tipo debe estar basado en el tipo en el contenido, y puede identificar correctamente los formatos de imagen comunes como JPG y GIF, independientemente de lo que se escriba en el tipo de contenido.
Si el tipo especificado en el tipo de contenido es un tipo que el navegador puede abrir directamente, entonces el navegador abrirá su contenido y lo mostrará. Si se trata de un tipo asociado con otras aplicaciones, debe buscar el estado de registro de este tipo en el registro. Si se le permite abrir directamente sin preguntar, se llamará a la aplicación asociada para abrir el archivo, pero si no se le permite abrir directamente, preguntará si debe abrirlo. Para los tipos que no están asociados con ninguna aplicación, el navegador IE no sabe cómo se debe abrir, e IE6 intentará abrirlo como XML.
Si desea implementar la descarga de archivos, puede agregarlo en el encabezado de http:fprintf (archivo, contenido-disposición: adjunto; nombre de archivo =/%s//r/n, nombre de archivo);
Después de las pruebas, HTML, PDF, GIF y otros archivos abridos en páginas web se pueden descargar normalmente.
'HQX' => 'Application/Mac-Binhex40',
'cpt' => 'Application/Mac-CompactPro',
'doc' => 'aplicación/msword',
'bin' => 'aplicación/octet-stream',
'dms' => 'aplicación/octet-stream',
'lha' => 'aplicación/octet-stream',
'lzh' => 'aplicación/octet-stream',
'exe' => 'Application/Octet-Stream',
'class' => 'aplicación/octet-stream',
'SO' => 'Application/Octet-Stream',
'dll' => 'aplicación/octet-stream',
'Oda' => 'Application/Oda',
'PDF' => 'Aplicación/PDF',
'ai' => 'aplicación/postscript',
'EPS' => 'Aplicación/PostScript',
'PS' => 'Aplicación/PostScript',
'smi' => 'aplicación/smil',
'Smil' => 'Application/Smil',
'mif' => 'aplicación/vnd.mif',
'xls' => 'aplicación/vnd.ms-excel',
'Ppt' => 'Application/VND.MS-PowerPoint',
'wbxml' => 'aplicación/vnd.wap.wbxml',
'wmlc' => 'aplicación/vnd.wap.wmlc',
'wmlsc' => 'aplicación/vnd.wap.wmlscriptc',
'bcpio' => 'aplicación/x-bcpio',
'VCD' => 'Application/X-Cdlink',
'PGN' => 'Aplicación/X-CHESS-PGN',
'CPIO' => 'Aplicación/X-CPIO',
'CSH' => 'Aplicación/X-CSH',
'DCR' => 'Aplicación/X-Director',
'Dir' => 'Application/X-Director',
'dxr' => 'Application/X-Director',
'DVI' => 'Aplicación/X-DVI',
'Spl' => 'Application/X-FuturesPlash',
'gtar' => 'aplicación/x-gtar',
'hdf' => 'aplicación/x-hdf',
'JS' => 'Aplicación/X-JavaScript',
'Skp' => 'Application/X-Koan',
'Skd' => 'Application/X-Koan',
'Skt' => 'Application/X-Koan',
'skm' => 'aplicación/x-koan',
'latex' => 'Application/X-Latex',
'NC' => 'Application/X-NetCDF',
'CDF' => 'Application/X-Netcdf',
'sh' => 'aplicación/x-sh',
'Shar' => 'Aplicación/X-Shar',
'swf' => 'aplicación/x-shockwave-flash',
'Sit' => 'Application/X-Stuffit',
'SV4CPIO' => 'Aplicación/X-SV4CPIO',
'SV4CRC' => 'Aplicación/X-SV4CRC',
'Tar' => 'Application/X-Tar',
'tcl' => 'aplicación/x-tcl',
'Tex' => 'Application/X-Tex',
'Texinfo' => 'Application/X-Texinfo',
'Texi' => 'Application/X-Texinfo',
't' => 'aplicación/x-toff',
'tr' => 'aplicación/x-toff',
'Roff' => 'Application/X-TOFFT',
'Man' => 'Application/X-Troff-Man',
'Me' => 'Aplicación/X-Troff-Me',
'MS' => 'Aplicación/X-Troff-MS',
'usstar' => 'aplicación/x-usstar',
'Src' => 'Application/X-Wais-Source',
'xhtml' => 'aplicación/xhtml+xml',
'xht' => 'aplicación/xhtml+xml',
'Zip' => 'Application/Zip',
'au' => 'audio/básico',
'snd' => 'audio/básico',
'Mid' => 'audio/midi',
'Midi' => 'audio/midi',
'kar' => 'audio/midi',
'mpga' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'mp3' => 'audio/mpeg',
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'aifc' => 'audio/x-aiff',
'm3u' => 'audio/x-mpegurl',
'Ram' => 'Audio/X-PN-Realudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'Ra' => 'Audio/X-Realudio',
'wav' => 'audio/x-wav',
'PDB' => 'Chemical/X-PDB',
'xyz' => 'químico/x-xyz',
'BMP' => 'Image/BMP',
'gif' => 'Image/gif',
'IEF' => 'Image/IEF',
'jpeg' => 'Image/jpeg',
'jpg' => 'imagen/jpeg',
'jpe' => 'Image/jpeg',
'png' => 'imagen/png',
'tiff' => 'Image/tiff',
'tif' => 'Image/tiff',
'djvu' => 'imagen/vnd.djvu',
'djv' => 'imagen/vnd.djvu',
'wbmp' => 'imagen/vnd.wap.wbmp',
'Ras' => 'Imagen/X-CMU-Raster',
'PNM' => 'Imagen/X-Portable-AnyMap',
'PBM' => 'Imagen/X-Portable-BitMap',
'PGM' => 'Imagen/X-Portable-GrayMap',
'PPM' => 'Image/X-Portable-PixMap',
'rgb' => 'Image/x-rgb',
'xbm' => 'imagen/x-xbitmap',
'xpm' => 'Image/x-xpixmap',
'XWD' => 'Imagen/x-xwindowdump',
'igs' => 'modelo/iges',
'iges' => 'modelo/iges',
'msh' => 'modelo/malla',
'Mesh' => 'Model/Mesh',
'silo' => 'modelo/malla',
'wrl' => 'modelo/vrml',
'vrml' => 'modelo/vrml',
'CSS' => 'Text/CSS',
'html' => 'text/html',
'htm' => 'text/html',
'ASC' => 'Text/Plain',
'txt' => 'Text/Plain',
'rtx' => 'text/richtext',
'rtf' => 'text/rtf',
'sgml' => 'text/sgml',
'sgm' => 'text/sgml',
'TSV' => 'Text/Tab-Sparated-Values',
'wml' => 'text/vnd.wap.wml',
'wmls' => 'text/vnd.wap.wmlscript',
'etx' => 'text/x-setext',
'xsl' => 'text/xml',
'xml' => 'text/xml',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'mpe' => 'video/mpeg',
'Qt' => 'Video/Quicktime',
'Mov' => 'Video/Quicktime',
'mxu' => 'video/vnd.mpegurl',
'avi' => 'video/x-msvideo',
'Movie' => 'Video/X-Sgi-Movie',
'Ice' => 'X-conference/X-CoolTalk',