Um inhaltlich zu lernen, müssen Sie im Voraus wissen, wofür es ist und wofür es ist.
Das HTTP -Protokoll (RFC2616) verwendet ein Anforderungs-/Antwortmodell. Der Client sendet eine Anfrage an den Server, und der Anforderungsheader enthält die angeforderte Methode, die URI, die Protokollversion und eine mime-ähnliche Nachrichtenstruktur, die den Anforderungsmodifikator, die Clientinformationen und den Inhalt enthält. Der Server reagiert mit einer Statuszeile, und der entsprechende Inhalt enthält die Version des Nachrichtenprotokolls, die Erfolgs- oder Fehlercodierung sowie die Serverinformationen, die Entität -Meta -Informationen und mögliche Entitätsinhalte.
Normalerweise besteht eine HTTP -Nachricht aus einer Startlinie, einem oder mehreren Headerfeldern, einer leeren Linie, die mit dem Kopfzeilenfeld und einer optionalen Nachricht endet. Das Header -Feld von HTTP enthält vier Teile: allgemeine Header, Anforderungsheader, Antwortheader und Entitätsheader. Jedes Header -Feld besteht aus drei Teilen: einem Domainnamen, einem Dickdarm (:) und einem Domänenwert. Domänennamen sind fallsunabhängig, eine beliebige Anzahl von Speicherzeichen kann vor dem Domänenwert hinzugefügt werden, und die Headerfelder können zu Beginn jeder Zeile auf mehrere Zeilen erweitert werden.
Sowohl die Anforderungsmeldung als auch die Antwortnachricht können Entitätsinformationen enthalten, die im Allgemeinen aus dem Feld und der Entität des Entity -Headers bestehen. Das Feld Entity Header enthält originelle Informationen über die Entität. Der Entity-Header umfasst die Erlaubnis, Inhaltsbasis, Inhaltscodierung, Inhaltssprache, Inhaltslänge, Content-Location, Content-MD5, Content-Range, Content-Type, ETAG, Ablauf, Last-modifizierter und Erweiterungsüberwachung.
Inhaltstyp ist ein sehr wichtiger Inhalt in der Rückgabenachricht, in dem angezeigt wird, zu welchem MIME-Typ das nachfolgende Dokument gehört. Inhaltstyp: [Typ]/[Subtyp]; Parameter. Zum Beispiel ist Text/HTML am häufigsten, was bedeutet, dass der zurückgegebene Inhalt Texttyp ist und der Text im HTML -Format ist. Im Prinzip entscheidet der Browser, wie der zurückgegebene Meldungskörperinhalt basierend auf dem Inhaltstyp angezeigt wird.
Typ hat das folgende FormularText: Textinformationen zur standardisierten Darstellung können die Textnachricht aus mehreren Zeichensätzen und oder in mehreren Formaten ausmachen.
Multipart: Wird verwendet, um mehrere Teile des Nachrichtenkörpers mit einer Nachricht zu verbinden, und diese Teile können unterschiedliche Datenarten sein.
Anwendung: Wird zum Übertragen von Anwendungsdaten oder binären Daten verwendet;
Nachricht: Wird verwendet, um eine E-Mail-Nachricht zu wickeln;
Bild: Wird verwendet, um statische Bilddaten zu übertragen;
Audio: Wird zur Übertragung von Audio- oder Audiodaten verwendet;
Video: Wird zum Übertragen von dynamischen Bilddaten verwendet, die ein mit Audio bearbeiteter Video -Datenformat sein können.
Der Subtyp wird verwendet, um die detaillierte Form des Typs anzugeben. Die Menge der inhaltlichen Paare vom Typ/Subtyp und die damit verbundenen Parameter werden im Laufe der Zeit wachsen. Um sicherzustellen, dass diese Werte in einem geordneten und öffentlichen Staat entwickelt werden, nutzt MIME die Internet Nummern Authority (IANA) als zentrale Registrierungsmechanismus, um diese Werte zu verwalten.
Der Parameter kann verwendet werden, um zusätzliche Informationen anzugeben, und in mehr Fällen handelt es sich um einen Parameter mit dem Zeichensatz, mit dem Textcodierungsmethoden wie Text/Ebene und Text/HTM angegeben werden. MIME hat den Standard -Subtyp basierend auf dem Typ festgelegt. Wenn der Client den Subtyp der Nachricht nicht bestimmen kann, wird die Nachricht als Standard -Subtyp für die Verarbeitung behandelt. Der Text ist standardmäßig Text/Klary, die Anwendung ist standardmäßig Anwendung/Oktettstrom, und Multipart wird standardmäßig als mehrteilig/gemischt angesehen. Bei IE6-Browsern analysiert der Typ im Inhaltstyp mit dem tatsächlichen Meldungskörpertyp, welcher Typ auf dem Typ des Inhalts basieren soll, und kann gemeinsame Bildformate wie JPG und GIF korrekt identifizieren, unabhängig davon, was im Inhaltstyp geschrieben ist.
Wenn der im Inhaltstyp angegebene Typ ein Typ ist, den der Browser direkt öffnen kann, öffnet der Browser seinen Inhalt und zeigt ihn an. Wenn es sich um einen Typ, der anderen Anwendungen zugeordnet ist, müssen Sie nach dem Registrierungsstatus dieser Art in der Registrierung suchen. Wenn es direkt ohne Fragen öffnen darf, wird die zugehörige Bewerbung aufgerufen, um die Datei zu öffnen. Wenn sie jedoch nicht direkt öffnen dürfen, fragen Sie, ob Sie sie öffnen möchten. Für Typen, die mit keiner Anwendung verknüpft sind, weiß der IE -Browser nicht, wie sie geöffnet werden soll, und IE6 wird versuchen, ihn als XML zu öffnen.
Wenn Sie den Datei -Download implementieren möchten, können Sie sie in die Header von HTTP hinzufügen:fprintf (Datei, Inhaltsdisposition: Anhang; Dateiname =/%S/R/N, Dateiname);
Nach dem Testen können HTML, PDF, GIF und andere in Webseiten geöffnete Dateien normal heruntergeladen werden.
'HQX' => 'Anwendung/Mac-Binhex40',
'cpt' => 'application/mac-compactpro',
'doc' => 'Anwendung/msword',
'bin' => 'Anwendung/Oktettstream',
'DMS' => 'Anwendung/Oktettstrom',
'LHA' => 'Anwendung/Oktettstrom',
'lzh' => 'Anwendung/Oktettstrom',
'exe' => 'Anwendung/Oktettstrom',
'Klasse' => 'Anwendung/Oktettstream',
'so' => 'Anwendung/Oktettstream',
'dll' => 'Anwendung/Oktettstrom',
'oda' => 'Anwendung/ODA',
'PDF' => 'Anwendung/PDF',
'AI' => 'Anwendung/PostScript',
'EPS' => 'Anwendung/PostScript',
'PS' => 'Anwendung/PostScript',
'smi' => 'Anwendung/lächelnd',
'lächer' => 'Anwendung/lächer',
'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' => 'Anwendung/X-CSH',
'DCR' => 'Anwendung/X-Direktor',
'Dir' => 'Anwendung/X-Direktor',
'DXR' => 'Anwendung/X-Direktor',
'DVI' => 'Anwendung/x-dvi',
'spl' => 'application/x-futuresplash',
'gtar' => 'application/x-gtar',
'HDF' => 'Anwendung/X-HDF',
'JS' => 'Anwendung/X-JavaScript',
'skp' => 'application/x-koan',
'skd' => 'application/x-koan',
'Skt' => 'Anwendung/X-Koan',
'skm' => 'application/x-koan',
'latex' => 'application/x-latex',
'nc' => 'application/x-netcdf',
'CDF' => 'Anwendung/x-netcdf',
'sh' => 'Anwendung/x-sh',
'Shar' => 'Anwendung/x-shar',
'SWF' => 'Anwendung/X-Shockwave-Flash',
'Sit' => 'Anwendung/X-Stuffit',
'SV4CPIO' => 'Anwendung/X-SV4CPIO',
'sv4crc' => 'application/x-sv4crc',
'tar' => 'Anwendung/x-tar',
'tcl' => 'Anwendung/x-tcl',
'tex' => 'application/x-tex',
'texinfo' => 'Anwendung/x-texinfo',
'texi' => 'application/x-texinfo',
'T' => 'Anwendung/x-troff',
'tr' => 'Anwendung/x-troff',
'Roff' => 'Anwendung/x-troff',
'Man' => 'Anwendung/x-troff-Man',
'me' => 'application/x-troff-me',
'MS' => 'Anwendung/x-troff-ms',
'uswStar' => 'Anwendung/X-Usstar',
'src' => 'Anwendung/x-wais-source',
'xhtml' => 'Anwendung/xhtml+xml',
'xht' => 'Anwendung/xhtml+xml',
'Zip' => 'Anwendung/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' => 'Bild/BMP',
'GIF' => 'Bild/GIF',
'IEF' => 'Bild/ief',
'JPEG' => 'Bild/JPEG',
'JPG' => 'Image/JPEG',
'JPE' => 'Image/JPEG',
'png' => 'Bild/png',
'Tiff' => 'Bild/Tiff',
'Tif' => 'Bild/Tiff',
'djvu' => 'Bild/vnd.djvu',
'djv' => 'Bild/vnd.djvu',
'wbmp' => 'Bild/vnd.wap.wbmp',
'ras' => 'Bild/x-cmu-Raster',
'pnm' => 'Bild/x-portable-anymap',
'pbm' => 'Bild/x-portable-bitmap',
'pgm' => 'Bild/x-portable-graymap',
'ppm' => 'Bild/x-portable-pixmap',
'rgb' => 'Bild/x-rgb',
'xbm' => 'Bild/x-xbitmap',
'xpm' => 'Bild/x-xpixmap',
'xwd' => 'Bild/x-xwindowdump',
'IGS' => 'Modell/Iges',
'iges' => 'Modell/IGES',
'MSH' => 'Modell/Mesh',
'mesh' => 'Modell/Mesh',
'Silo' => 'Modell/Mesh',
'wrl' => 'Modell/vrml',
'vrml' => 'Modell/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/tabendetriebene Werte',
'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',