Pour apprendre le type de contenu, vous devez savoir à l'avance ce qu'il s'agit et à quoi il sert.
Le protocole HTTP (RFC2616) adopte un modèle de demande / réponse. Le client envoie une demande au serveur et l'en-tête de demande contient la méthode demandée, l'URI, la version du protocole et une structure de messages de type MIME contenant le modificateur de demande, les informations et le contenu du client. Le serveur répond par une ligne d'état et le contenu correspondant comprend la version du protocole de message, le succès ou le codage d'erreur plus les informations du serveur, la méta-information de l'entité et le contenu d'entité possible.
Habituellement, un message HTTP se compose d'une ligne de départ, d'un ou plusieurs champs d'en-tête, d'une ligne vide qui se termine par le champ d'en-tête et un corps de message en option. Le champ d'en-tête de HTTP comprend quatre parties: en-tête générale, en-tête de demande, en-tête de réponse et en-tête d'entité. Chaque champ d'en-tête se compose de trois parties: un nom de domaine, un côlon (:) et une valeur de domaine. Les noms de domaine sont indépendants du cas, n'importe quel nombre de caractères d'espace peut être ajouté avant la valeur du domaine, et les champs d'en-tête peuvent être étendus à plusieurs lignes, en utilisant au moins un caractère d'espace ou d'onglet au début de chaque ligne.
Le message de demande et le message de réponse peuvent contenir des informations d'entité, qui se composent généralement du champ d'en-tête et de l'entité. Le champ d'en-tête d'entité contient des informations originales sur l'entité. L'en-tête d'entité comprend des pertes, du contenu-base, du codage de contenu, du contenu-langage, du contenu-longueur, du contenu-location, du contenu-MD5, du contenu, de contenu, de type, ETAG, expire, dernier modifié et d'extension.
Le type de contenu est un contenu très important dans le message de retour, indiquant à quel type MIME le document suivant appartient. Type de contenu: [type] / [sous-type]; paramètre. Par exemple, le Text / HTML le plus courant est le Text / HTML, ce qui signifie que le contenu renvoyé est de type de texte et que le texte est au format HTML. En principe, le navigateur décidera comment afficher le contenu du corps du message renvoyé en fonction du type de contenu.
Type a le formulaire suivantTexte: Informations textuelles pour une représentation standardisée, le message texte peut être de plusieurs jeux de caractères et ou dans plusieurs formats;
Multige: utilisé pour connecter plusieurs parties du corps du message pour former un message, et ces parties peuvent être différents types de données;
Application: utilisé pour transmettre des données d'application ou des données binaires;
Message: utilisé pour envelopper un message électronique;
Image: utilisé pour transmettre des données d'image statiques;
Audio: utilisé pour transmettre des données audio ou audio;
Vidéo: Utilisé pour transmettre des données d'image dynamiques, qui peuvent être un format de données vidéo édité avec l'audio.
Le sous-type est utilisé pour spécifier la forme détaillée du type. L'ensemble des paires de type de contenu / sous-type et les paramètres associés à cela se développeront au fil du temps. Pour s'assurer que ces valeurs sont développées dans un état ordonné et public, MIME utilise l'Autorité des nombres affectés par Internet (IANA) comme mécanisme d'enregistrement central pour gérer ces valeurs.
Le paramètre peut être utilisé pour spécifier des informations supplémentaires, et dans plus de cas, il s'agit d'un paramètre Charset utilisé pour spécifier des méthodes de codage de texte telles que le texte / plaine et le texte / HTM. MIME a défini le sous-type par défaut en fonction du type. Lorsque le client ne peut pas déterminer le sous-type du message, le message est traité comme le sous-type par défaut pour le traitement. Le texte est du texte / simple par défaut, l'application est l'application / l'octet-stream par défaut, et le multipART est considéré comme multipartial / mixée par défaut. Pour les navigateurs IE6, si le type de type de contenu est incompatible avec le type de corps de message réel, il analysera le type qui devrait être basé sur le type du contenu et peut identifier correctement les formats d'image communs tels que JPG et GIF, quel que soit ce qui est écrit dans le type de contenu.
Si le type spécifié dans le type de contenu est un type que le navigateur peut ouvrir directement, le navigateur ouvrira son contenu et l'affichera. S'il s'agit d'un type associé à d'autres applications, vous devez rechercher l'état d'enregistrement de ce type dans le registre. S'il est autorisé à s'ouvrir directement sans demander, l'application associée sera appelée pour ouvrir le fichier, mais s'il n'est pas autorisé à s'ouvrir directement, vous vous demanderez s'il faut l'ouvrir. Pour les types qui ne sont associés à aucune application, IE Browser ne sait pas comment il doit être ouvert, et IE6 essaiera de l'ouvrir sous forme de XML.
Si vous souhaitez implémenter le téléchargement de fichiers, vous pouvez l'ajouter dans l'en-tête de HTTP:fprintf (fichier, contenu-disposition: pièce jointe; fileName = /% s / / r / n, nom de fichier);
Après test, HTML, PDF, GIF et d'autres fichiers ouverts dans les pages Web peuvent être téléchargés normalement.
'hqx' => 'application / mac-binhex40',
'cpt' => 'application / mac-compactpro',
'doc' => 'application / msword',
'bin' => 'Application / Octet-Stream',
'dms' => 'Application / Octet-Stream',
'lha' => 'application / octtet-stream',
'lzh' => 'application / octtet-stream',
'exe' => 'Application / Octet-Stream',
'class' => 'application / octtet-stream',
'SO' => 'Application / Octet-Stream',
'dll' => 'application / octtet-stream',
'oda' => 'application / oda',
'pdf' => 'application / pdf',
'ai' => 'Application / PostScript',
'eps' => 'Application / PostScript',
'ps' => 'application / post-scriptum',
'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',
'moi' => 'application / x-troff-me',
'ms' => 'application / x-troff-ms',
'usstar' => 'application / x-usstar',
'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' => 'chimique / x-pdb',
'xyz' => 'chimique / 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' => 'modèle / iges',
'igès' => 'modèle / igités',
'Msh' => 'Modèle / Mesh',
'Mesh' => 'Modèle / Mesh',
'Silo' => 'Modèle / Mesh',
'wrl' => 'modèle / vrml',
'vrml' => 'modèle / vrml',
'css' => 'text / css',
'html' => 'text / html',
'htm' => 'text / html',
'ASC' => 'Texte / 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' => 'vidéo / mpeg',
'mpg' => 'vidéo / mpeg',
'mpe' => 'vidéo / mpeg',
'qt' => 'vidéo / Quicktime',
'mov' => 'Vidéo / Quicktime',
'mxu' => 'vidéo / vnd.mpegurl',
'avi' => 'vidéo / x-msvideo',
'film' => 'vidéo / x-sgi-movie',
'ice' => 'x-conférence / x-cooltalk',