Home > Article > Web Front-end > The description of Content-type is the type arrangement of HTTP request headers_HTML/Xhtml_Web page production
To learn content-type, you must know in advance what it is and what it is used for.
HTTP protocol (RFC2616) adopts the request/response model. The client sends a request to the server. The request header contains the request method, URI, protocol version, and a MIME-like message structure containing request modifiers, client information, and content. The server responds with a status line containing the message protocol version, success or error code plus server information, entity metainformation, and possibly entity content.
Usually an HTTP message consists of a start line, one or more header fields, a blank line that just ends the header fields, and an optional message body. The HTTP header field includes four parts: general header, request header, response header and entity header. Each header field consists of a domain name, a colon (:) and a domain value. Domain names are case-insensitive. Any number of spaces can be added before the field value. Header fields can be expanded to multiple lines, using at least one space or tab at the beginning of each line.
Both request messages and response messages can contain entity information. Entity information generally consists of entity header fields and entities. The entity header field contains original information about the entity. The entity header includes Allow, Content-Base, Content-Encoding, Content-Language, Content-Length, Content-Location, Content-MD5, Content-Range, Content-Type, Etag, and Expires. , Last-Modified, extension-header.
Content-Type is a very important content in the returned message, indicating what MIME type the subsequent document belongs to. Content-Type: [type]/[subtype]; parameter. For example, the most common one is text/html, which means that the returned content is text type, and this text is in HTML format. In principle, the browser will decide how to display the returned message body content based on Content-Type.
type has the following form
Text: used for standardized representation of text information. Text messages can be in multiple character sets and or in multiple formats;
Multipart: used to connect multiple parts of the message body to form a message. These parts can be different types of data;
Application: used to transmit application data or binary data;
Message: used to package an E-mail message;
Image: used to transmit static image data;
Audio: used to transmit audio or sound data;
Video: Used to transmit dynamic image data, which can be a video data format edited together with audio.
subtype is used to specify the detailed form of type. The set of content-type/subtype pairs, and their associated parameters, will grow over time. To ensure that these values are developed in an orderly and public manner, MIME uses the Internet Assigned Numbers Authority (IANA) as a central registration mechanism to manage these values.
parameter can be used to specify additional information. In more cases, it is the charset parameter used to specify text encoding methods such as text/plain and text/htm. MIME sets a default subtype based on type. When the client cannot determine the subtype of the message, the message is treated as the default subtype for processing. Text defaults to text/plain, Application defaults to application/octet-stream and Multipart is treated as multipart/mixed by default. For the IE6 browser, if the type in Content-Type is inconsistent with the actual message body type, it will analyze the actual type according to the type in the content. It can be correct for common image formats such as JPG and GIF. Recognized regardless of what is written in Content-Type.
If the Content-Type specified is a type that the browser can open directly, the browser will directly open its content and display it. If it is a type that is associated with other applications, then it is necessary to search the registry. Regarding this type of registration, if it is allowed to be opened directly without asking, the associated application will be directly called up to open the file, but if it is not allowed to be opened directly, it will be asked whether to open it. For types that are not associated with any application, the IE browser does not know how to open it. At this time, IE6 will treat it as XML and try to open it.
If you want to download files, you can add it to the http header:
fprintf(file, "Content-Disposition:attachment; filename="%s" rn", fileName);
After testing, files originally opened in web pages such as html, pdf, gif, etc. can be downloaded normally.
'hqx' => 'application/mac-binhex40',
'cpt' => 'application/mac-compactpro',
'doc' => 'application/msword ',
'bin' => 'application/octet-stream',
'dms' => 'application/octet-stream',
'lha' => 'application/octet- stream',
'lzh' => 'application/octet-stream',
'exe' => 'application/octet-stream',
'class' => 'application/octet -stream',
'so' => 'application/octet-stream',
'dll' => 'application/octet-stream',
'oda' => 'application/ oda',
'pdf' => 'application/pdf',
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
'smi' => 'application/smil',
'smil' => 'application/smil',
'mif' => 'application/vnd.mif',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
'wbxml' => 'application/vnd.wap.wbxml',
'wmlc' => 'application/vnd.wap.wmlc',
'wmlsc' => 'application/vnd.wap.wmlscriptc',
'bcpio' => 'application/x-bcpio',
'vcd' => 'application/x-cdlink',
'pgn' => 'application/x-chess-pgn',
'cpio' => 'application/x-cpio',
'csh' => 'application/x-csh',
'dcr' => 'application/x-director',
'dir' => 'application/x-director',
'dxr' => 'application/x-director',
'dvi' => 'application/x-dvi',
'spl' => 'application/x-futuresplash',
'gtar' => 'application/x-gtar',
'hdf' => 'application/x-hdf',
'js' => 'application/x-javascript',
'skp' => 'application/x-koan',
'skd' => 'application/x-koan',
'skt' => 'application/x-koan',
'skm' => 'application/x-koan',
'latex' => 'application/x-latex',
'nc' => 'application/x-netcdf',
'cdf' => 'application/x-netcdf',
'sh' => 'application/x-sh',
'shar' => 'application/x-shar',
'swf' => 'application/x-shockwave-flash',
'sit' => 'application/x-stuffit',
'sv4cpio' => 'application/x-sv4cpio',
'sv4crc' => 'application/x-sv4crc',
'tar' => 'application/x-tar',
'tcl' => 'application/x-tcl',
'tex' => 'application/x-tex',
'texinfo' => 'application/x-texinfo',
'texi' => 'application/x-texinfo',
't' => 'application/x-troff',
'tr' => 'application/x-troff',
'roff' => 'application/x-troff',
'man' => 'application/x-troff-man',
'me' => 'application/x-troff-me',
'ms' => 'application/x-troff-ms',
'ustar' => 'application/x-ustar',
'src' => 'application/x-wais-source',
'xhtml' => 'application/xhtml xml',
'xht' => 'application/xhtml xml',
'zip' => 'application/zip',
'au' => 'audio/basic',
'snd' => 'audio/basic',
'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-realaudio',
'rm' => 'audio/x-pn-realaudio',
'rpm' => 'audio/x-pn-realaudio-plugin',
'ra' => 'audio/x-realaudio',
'wav' => 'audio/x-wav',
'pdb' => 'chemical/x-pdb',
'xyz' => 'chemical/x-xyz',
'bmp' => 'image/bmp',
'gif' => 'image/gif',
'ief' => 'image/ief',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'png' => 'image/png',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'djvu' => 'image/vnd.djvu',
'djv' => 'image/vnd.djvu',
'wbmp' => 'image/vnd.wap.wbmp',
'ras' => 'image/x-cmu-raster',
'pnm' => 'image/x-portable-anymap',
'pbm' => 'image/x-portable-bitmap',
'pgm' => 'image/x-portable-graymap',
'ppm' => 'image/x-portable-pixmap',
'rgb' => 'image/x-rgb',
'xbm' => 'image/x-xbitmap',
'xpm' => 'image/x-xpixmap',
'xwd' => 'image/x-xwindowdump',
'igs' => 'model/iges',
'iges' => 'model/iges',
'msh' => 'model/mesh',
'mesh' => 'model/mesh',
'silo' => 'model/mesh',
'wrl' => 'model/vrml',
'vrml' => 'model/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-separated-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',