لتعلم نوع المحتوى ، يجب أن تعرف مسبقًا ما هو عليه وما هو عليه.
يتبنى بروتوكول HTTP (RFC2616) نموذج طلب/استجابة. يرسل العميل طلبًا إلى الخادم ، ويحتوي رأس الطلب على الطريقة المطلوبة ، وإصدار URI ، وإصدار البروتوكول ، وهيكل رسالة تشبه MIME التي تحتوي على معدل الطلب ومعلومات العميل والمحتوى. يستجيب الخادم بخط الحالة ، ويتضمن المحتوى المقابل إصدار بروتوكول الرسائل ، وترميز النجاح أو الخطأ بالإضافة إلى معلومات الخادم ، ومعلومات التعريف الكيان ، ومحتوى الكيان المحتمل.
عادةً ما تتكون رسالة HTTP من خط البداية ، وحقول رأس واحدة أو أكثر ، وخطًا فارغًا ينتهي بحقل الرأس وجسم رسالة اختياري. يتضمن حقل رأس HTTP أربعة أجزاء: رأس عام ، رأس طلب ، رأس استجابة ورأس كيان. يتكون كل حقل رأس من ثلاثة أجزاء: اسم مجال ، قولون (:) وقيمة المجال. تكون أسماء النطاقات مستقلة عن الحالة ، ويمكن إضافة أي عدد من أحرف المساحة قبل قيمة المجال ، ويمكن توسيع حقول الرأس إلى خطوط متعددة ، باستخدام حرف واحد أو علامة تبويب واحدة على الأقل في بداية كل سطر.
يمكن أن تحتوي كل من رسالة الطلب ورسالة الاستجابة على معلومات كيان ، والتي تتكون عمومًا من حقل رأس الكيان والكيان. يحتوي حقل رأس الكيان على معلومات أصلية حول الكيان. يتضمن رأس الكيان السماح ، قاعدة المحتوى ، ترميز المحتوى ، لغة المحتوى ، طول المحتوى ، الموقع المحتوى ، المحتوى MD5 ، نطاق المحتوى ، نوع المحتوى ، ETAG ، انتهاء الصلاحية ، المعدل الأخير ، ورئيس الامتداد.
نوع المحتوى هو محتوى مهم للغاية في رسالة الإرجاع ، مما يشير إلى نوع MIME الذي ينتمي إليه المستند اللاحق. نوع المحتوى: [type]/[النوع الفرعي] ؛ المعلمة. على سبيل المثال ، الأكثر شيوعًا هو النص/HTML ، مما يعني أن المحتوى الذي تم إرجاعه هو نوع النص ، والنص بتنسيق HTML. من حيث المبدأ ، سيقرر المستعرض كيفية عرض محتوى هيكل الرسائل الذي تم إرجاعه استنادًا إلى نوع المحتوى.
النوع له النموذج التاليالنص: معلومات نصية للتمثيل الموحد ، قد تكون الرسالة النصية من مجموعات أحرف متعددة أو بتنسيقات متعددة ؛
Multipart: تستخدم لتوصيل أجزاء متعددة من نص الرسالة لتشكيل رسالة ، ويمكن أن تكون هذه الأجزاء أنواعًا مختلفة من البيانات ؛
التطبيق: يستخدم لنقل بيانات التطبيق أو البيانات الثنائية ؛
الرسالة: تستخدم لالتفاف رسالة بريد إلكتروني ؛
الصورة: تستخدم لنقل بيانات الصورة الثابتة ؛
الصوت: يستخدم لنقل بيانات الصوت أو الصوت ؛
الفيديو: يستخدم لنقل بيانات الصور الديناميكية ، والتي يمكن أن تكون تنسيق بيانات الفيديو تم تحريرها باستخدام الصوت.
يتم استخدام النوع الفرعي لتحديد النموذج التفصيلي للنوع. ستنمو مجموعة من أزواج نوع المحتوى/النوع الفرعي والمعلمات المرتبطة بهذا مع مرور الوقت. لضمان تطوير هذه القيم في حالة مرتبة وعامة ، تستخدم MIME هيئة الأرقام المعينة على الإنترنت (IANA) كآلية تسجيل مركزية لإدارة هذه القيم.
يمكن استخدام المعلمة لتحديد معلومات إضافية ، وفي مزيد من الحالات هي معلمة charset تستخدم لتحديد طرق ترميز النص مثل النص/العادي والنص/htm. قامت MIME بتعيين النوع الفرعي الافتراضي بناءً على النوع. عندما لا يتمكن العميل من تحديد النوع الفرعي للرسالة ، يتم التعامل مع الرسالة على أنها النوع الفرعي الافتراضي للمعالجة. النص هو نص/عادي افتراضيًا ، التطبيق هو التطبيق/الثمانية بشكل افتراضي ، ويعتبر Multipart متعددة/مختلطة بشكل افتراضي. بالنسبة لمتصفحات IE6 ، إذا كان النوع الموجود في نوع المحتوى غير متوافق مع نوع هيكل الرسالة الفعلي ، فسوف يقوم بتحليل النوع الذي يجب أن يعتمد على النوع في المحتوى ، ويمكنه تحديد تنسيقات الصور الشائعة بشكل صحيح مثل JPG و GIF ، بغض النظر عن ما هو مكتوب في نوع المحتوى.
إذا كان النوع المحدد في نوع المحتوى هو نوع يمكن للمتصفح فتحه مباشرة ، فسيقوم المتصفح بفتح محتوىه وعرضه. إذا كان هناك نوع مرتبط بالتطبيقات الأخرى ، فأنت بحاجة إلى البحث عن حالة التسجيل لهذا النوع في السجل. إذا سمح للانفتاح مباشرة دون السؤال ، فسيتم استدعاء التطبيق المرتبط به لفتح الملف ، ولكن إذا لم يُسمح له بالانفتاح مباشرة ، فستسأل عما إذا كنت تريد فتحه. بالنسبة للأنواع غير المرتبطة بأي تطبيق ، لا يعرف IE Browser كيف ينبغي فتحه ، وسيحاول IE6 فتحه كـ XML.
إذا كنت ترغب في تنفيذ تنزيل الملف ، فيمكنك إضافته في رأس HTTP:fprintf (ملف ، disposition المحتوى: المرفق ؛ اسم الملف =/٪ s//r/n ، اسم الملف) ؛
بعد الاختبار ، يمكن تنزيل HTML و PDF و GIF والملفات الأخرى التي تم فتحها في صفحات الويب بشكل طبيعي.
'hqx' => 'التطبيق/mac-binhex40' ،
'cpt' => 'التطبيق/mac-compactpro' ،
'doc' => 'application/msword' ،
'bin' => 'التطبيق/stream' ،
'dms' => 'التطبيق/stream' ،
'lha' => 'التطبيق/stream' ،
'lzh' => 'تطبيق/stream' ،
'exe' => 'التطبيق/stream' ،
'class' => 'application/actet-stream' ،
"SO '=>" تطبيق/ثماني الثماني "،
'dll' => 'التطبيق/stream' ،
'ODA' => 'التطبيق/ODA' ،
'pdf' => 'التطبيق/pdf' ،
'ai' => 'التطبيق/postscript' ،
'eps' => 'التطبيق/postscript' ،
'ps' => 'التطبيق/postscript' ،
'SMI' => 'التطبيق/smil' ،
'Smil' => 'التطبيق/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' => 'التطبيق/x-bcpio' ،
'vcd' => 'التطبيق/x-cdlink' ،
'pgn' => 'application/x-chess-pgn' ،
'cpio' => 'التطبيق/x-cpio' ،
'csh' => 'application/x-csh' ،
'dcr' => 'التطبيق/x-director' ،
'dir' => 'application/x-director' ،
'DXR' => 'Application/x-director' ،
'dvi' => 'التطبيق/x-dvi' ،
'spl' => 'application/x-futuresplash' ،
'gtar' => 'التطبيق/x-gtar' ،
'hdf' => 'التطبيق/x-hdf' ،
'JS' => 'Application/x-javaScript' ،
'skp' => 'application/x-koan' ،
'SKD' => 'Application/x-koan' ،
'skt' => 'application/x-koan' ،
'skm' => 'التطبيق/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' => 'التطبيق/x-sv4cpio' ،
'sv4crc' => 'التطبيق/x-sv4crc' ،
'tar' => 'application/x-tar' ،
'tcl' => 'التطبيق/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' ،
'USSTAR' => 'التطبيق/x-usstar' ،
'src' => 'التطبيق/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' => 'صورة/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-poxmap "،
'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-seprated-dalues' ،
'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' ،
'فيلم' => '' video/x-sgi-movie '،
'ICE' => 'X-Conference/x-cooletalk' ،