ในการเรียนรู้ประเภทเนื้อหาคุณต้องรู้ล่วงหน้าว่ามันคืออะไรและมีไว้เพื่ออะไร
โปรโตคอล HTTP (RFC2616) ใช้รูปแบบการร้องขอ/การตอบกลับ ไคลเอนต์ส่งคำขอไปยังเซิร์ฟเวอร์และส่วนหัวคำขอมีวิธีการที่ร้องขอ, URI, เวอร์ชันโปรโตคอลและโครงสร้างข้อความคล้าย MIME ที่มีตัวดัดแปลงคำขอข้อมูลไคลเอนต์และเนื้อหา เซิร์ฟเวอร์ตอบกลับด้วยบรรทัดสถานะและเนื้อหาที่เกี่ยวข้องรวมถึงเวอร์ชันของโปรโตคอลข้อความการเข้ารหัสความสำเร็จหรือการเข้ารหัสข้อผิดพลาดรวมถึงข้อมูลเซิร์ฟเวอร์ข้อมูลเมตาเอนทิตีและเนื้อหาเอนทิตีที่เป็นไปได้
โดยปกติแล้วข้อความ HTTP จะประกอบด้วยบรรทัดเริ่มต้นช่องส่วนหัวอย่างน้อยหนึ่งช่องสายเปล่าที่ลงท้ายด้วยฟิลด์ส่วนหัวและตัวเลือกข้อความเสริม ฟิลด์ส่วนหัวของ HTTP ประกอบด้วยสี่ส่วน: ส่วนหัวทั่วไป, ส่วนหัวคำขอ, ส่วนหัวการตอบสนองและส่วนหัวเอนทิตี แต่ละฟิลด์ส่วนหัวประกอบด้วยสามส่วน: ชื่อโดเมน, ลำไส้ใหญ่ (:) และค่าโดเมน ชื่อโดเมนเป็นตัวพิมพ์ใหญ่ตัวอักษรจำนวนอักขระอวกาศใด ๆ สามารถเพิ่มได้ก่อนค่าโดเมนและเขตข้อมูลส่วนหัวสามารถขยายไปหลายบรรทัดโดยใช้อย่างน้อยหนึ่งช่องว่างหรือแท็บอักขระที่จุดเริ่มต้นของแต่ละบรรทัด
ทั้งข้อความคำขอและข้อความตอบกลับสามารถมีข้อมูลเอนทิตีซึ่งโดยทั่วไปประกอบด้วยฟิลด์ส่วนหัวเอนทิตีและเอนทิตี ฟิลด์ส่วนหัวเอนทิตีมีข้อมูลดั้งเดิมเกี่ยวกับเอนทิตี ส่วนหัวของเอนทิตีรวมถึงอนุญาต, เนื้อหา, การเข้ารหัสเนื้อหา, เนื้อหาภาษา, ความยาวเนื้อหา, การตั้งเนื้อหา, เนื้อหา MD5, ช่วงเนื้อหา, ประเภทเนื้อหา, ETAG, Expires, Modified และ Extension-Header
ประเภทเนื้อหาเป็นเนื้อหาที่สำคัญมากในข้อความ Return ซึ่งระบุว่า MIME พิมพ์เอกสารที่ตามมาเป็นของ เนื้อหาประเภท: [ประเภท]/[ชนิดย่อย]; พารามิเตอร์. ตัวอย่างเช่นหนึ่งที่พบบ่อยที่สุดคือข้อความ/HTML ซึ่งหมายความว่าเนื้อหาที่ส่งคืนเป็นประเภทข้อความและข้อความอยู่ในรูปแบบ HTML โดยหลักการแล้วเบราว์เซอร์จะตัดสินใจว่าจะแสดงเนื้อหาเนื้อหาที่ส่งคืนตามประเภทเนื้อหาได้อย่างไร
ประเภทมีแบบฟอร์มต่อไปนี้ข้อความ: ข้อมูลข้อความสำหรับการเป็นตัวแทนมาตรฐานข้อความอาจเป็นชุดอักขระหลายชุดและหรือในหลายรูปแบบ;
Multipart: ใช้เพื่อเชื่อมต่อหลายส่วนของตัวข้อความเพื่อสร้างข้อความและส่วนเหล่านี้อาจเป็นข้อมูลประเภทต่าง ๆ
แอปพลิเคชัน: ใช้ในการส่งข้อมูลแอปพลิเคชันหรือข้อมูลไบนารี
ข้อความ: ใช้เพื่อห่อข้อความอีเมล;
รูปภาพ: ใช้ในการส่งข้อมูลภาพคงที่;
เสียง: ใช้ในการส่งข้อมูลเสียงหรือเสียง
วิดีโอ: ใช้ในการส่งข้อมูลภาพแบบไดนามิกซึ่งอาจเป็นรูปแบบข้อมูลวิดีโอที่แก้ไขด้วยเสียง
ชนิดย่อยใช้เพื่อระบุรูปแบบโดยละเอียดของประเภท ชุดของคู่ประเภท/ประเภทย่อยและพารามิเตอร์ที่เกี่ยวข้องกับสิ่งนี้จะเพิ่มขึ้นเมื่อเวลาผ่านไป เพื่อให้แน่ใจว่าค่าเหล่านี้ได้รับการพัฒนาในสถานะที่ได้รับคำสั่งและสาธารณะ MIME ใช้อำนาจที่ได้รับมอบหมายทางอินเทอร์เน็ต (IANA) เป็นกลไกการลงทะเบียนกลางเพื่อจัดการค่าเหล่านี้
พารามิเตอร์สามารถใช้เพื่อระบุข้อมูลเพิ่มเติมและในบางกรณีมันเป็นพารามิเตอร์ charset ที่ใช้ในการระบุวิธีการเข้ารหัสข้อความเช่นข้อความ/ธรรมดาและข้อความและ HTM MIME ได้ตั้งค่าชนิดย่อยเริ่มต้นตามประเภท เมื่อลูกค้าไม่สามารถกำหนดชนิดย่อยของข้อความข้อความจะถือว่าเป็นชนิดย่อยเริ่มต้นสำหรับการประมวลผล ข้อความคือข้อความ/ธรรมดาโดยค่าเริ่มต้นแอปพลิเคชันคือแอปพลิเคชัน/อ็อกเท็ต-สตรีมโดยค่าเริ่มต้นและหลายส่วนได้รับการยกย่องว่าเป็นหลายส่วน/ผสมตามค่าเริ่มต้น สำหรับเบราว์เซอร์ IE6 หากประเภทในประเภทเนื้อหาไม่สอดคล้องกับประเภทตัวถังข้อความจริงมันจะวิเคราะห์ประเภทควรขึ้นอยู่กับประเภทในเนื้อหาและสามารถระบุรูปแบบภาพทั่วไปได้อย่างถูกต้องเช่น JPG และ GIF โดยไม่คำนึงถึงสิ่งที่เขียนในประเภทเนื้อหา
หากประเภทที่ระบุในประเภทเนื้อหาเป็นประเภทที่เบราว์เซอร์สามารถเปิดได้โดยตรงเบราว์เซอร์จะเปิดเนื้อหาและแสดง หากเป็นประเภทที่เกี่ยวข้องกับแอปพลิเคชันอื่น ๆ คุณต้องมองหาสถานะการลงทะเบียนของประเภทนี้ในรีจิสทรี หากได้รับอนุญาตให้เปิดโดยตรงโดยไม่ต้องถามแอปพลิเคชันที่เกี่ยวข้องจะถูกเรียกขึ้นมาเพื่อเปิดไฟล์ แต่ถ้าไม่ได้รับอนุญาตให้เปิดโดยตรงคุณจะถามว่าจะเปิดหรือไม่ สำหรับประเภทที่ไม่เกี่ยวข้องกับแอปพลิเคชันใด ๆ เช่นเบราว์เซอร์ไม่ทราบว่าควรเปิดอย่างไรและ IE6 จะพยายามเปิดเป็น XML
หากคุณต้องการใช้การดาวน์โหลดไฟล์คุณสามารถเพิ่มได้ในส่วนหัวของ HTTP:fprintf (ไฟล์, เนื้อหา-การจัดสรร: ไฟล์แนบ; ชื่อไฟล์ =/%s//r/n, ชื่อไฟล์);
หลังจากการทดสอบแล้ว HTML, PDF, GIF และไฟล์อื่น ๆ ที่เปิดในหน้าเว็บสามารถดาวน์โหลดได้ตามปกติ
'hqx' => 'แอปพลิเคชัน/mac-binhex40'
'cpt' => 'แอปพลิเคชัน/mac-compactpro'
'doc' => 'แอปพลิเคชัน/msword'
'bin' => 'แอปพลิเคชัน/octet-stream'
'dms' => 'แอปพลิเคชัน/octet-stream'
'lha' => 'แอปพลิเคชัน/อ็อกเท็ต-สตรีม'
'lzh' => 'แอปพลิเคชัน/octet-stream'
'exe' => 'แอปพลิเคชัน/octet-stream'
'class' => 'แอปพลิเคชัน/octet-stream'
'So' => 'แอปพลิเคชัน/อ็อกเท็ตสตรีม'
'dll' => 'แอปพลิเคชัน/octet-stream'
'oda' => 'แอปพลิเคชัน/oda',
'pdf' => 'แอปพลิเคชัน/pdf'
'ai' => 'แอปพลิเคชัน/postscript',
'eps' => 'แอปพลิเคชัน/postscript',
'ps' => 'แอปพลิเคชัน/postscript',
'smi' => 'แอปพลิเคชัน/smil'
'smil' => 'แอปพลิเคชัน/smil'
'mif' => 'แอปพลิเคชัน/vnd.mif'
'xls' => 'แอปพลิเคชัน/vnd.ms-excel'
'ppt' => 'แอปพลิเคชัน/vnd.ms-powerpoint'
'wbxml' => 'แอปพลิเคชัน/vnd.wap.wbxml'
'wmlc' => 'แอปพลิเคชัน/vnd.wap.wmlc'
'wmlsc' => 'แอปพลิเคชัน/vnd.wap.wmlscriptc'
'bcpio' => 'แอปพลิเคชัน/x-bcpio'
'vcd' => 'แอปพลิเคชัน/x-cdlink'
'pgn' => 'แอปพลิเคชัน/x-chess-pgn'
'cpio' => 'แอปพลิเคชัน/x-cpio'
'csh' => 'แอปพลิเคชัน/x-csh'
'dcr' => 'แอปพลิเคชัน/x-director',
'dir' => 'แอปพลิเคชัน/x-director',
'dxr' => 'แอปพลิเคชัน/x-director',
'dvi' => 'แอปพลิเคชัน/x-dvi'
'spl' => 'แอปพลิเคชัน/x-futuresplash'
'gtar' => 'แอปพลิเคชัน/x-gtar'
'hdf' => 'แอปพลิเคชัน/x-hdf'
'js' => 'แอปพลิเคชัน/x-javascript'
'skp' => 'แอปพลิเคชัน/x-koan'
'skd' => 'แอปพลิเคชัน/x-koan'
'skt' => 'แอปพลิเคชัน/x-koan'
'skm' => 'แอปพลิเคชัน/x-koan'
'latex' => 'แอปพลิเคชัน/x-latex'
'nc' => 'แอปพลิเคชัน/x-netcdf'
'cdf' => 'แอปพลิเคชัน/x-netcdf'
'sh' => 'แอปพลิเคชัน/x-sh'
'Shar' => 'แอปพลิเคชัน/X-Shar'
'swf' => 'แอปพลิเคชัน/x-shockwave-flash'
'sit' => 'แอปพลิเคชัน/x-stuffit',
'sv4cpio' => 'แอปพลิเคชัน/x-sv4cpio'
'sv4crc' => 'แอปพลิเคชัน/x-sv4crc'
'tar' => 'แอปพลิเคชัน/x-tar'
'tcl' => 'แอปพลิเคชัน/x-tcl'
'tex' => 'แอปพลิเคชัน/x-tex'
'texinfo' => 'แอปพลิเคชัน/x-texinfo'
'texi' => 'แอปพลิเคชัน/x-texinfo'
't' => 'แอปพลิเคชัน/x-troff',
'tr' => 'แอปพลิเคชัน/x-troff',
'roff' => 'แอปพลิเคชัน/x-troff',
'man' => 'แอปพลิเคชัน/x-troff-man'
'me' => 'แอปพลิเคชัน/x-troff-me'
'ms' => 'แอปพลิเคชัน/x-troff-ms'
'usstar' => 'แอปพลิเคชัน/x-usstar'
'src' => 'แอปพลิเคชัน/x-wais-source'
'xhtml' => 'แอปพลิเคชัน/xhtml+xml'
'xht' => 'แอปพลิเคชัน/xhtml+xml'
'zip' => 'แอปพลิเคชัน/zip',
'au' => 'เสียง/พื้นฐาน'
'snd' => 'เสียง/พื้นฐาน'
'mid' => 'เสียง/midi'
'midi' => 'เสียง/midi'
'kar' => 'เสียง/midi'
'mpga' => 'เสียง/mpeg'
'mp2' => 'เสียง/mpeg'
'mp3' => 'เสียง/mpeg'
'aif' => 'เสียง/x-aiff'
'aiff' => 'เสียง/x-aiff'
'aifc' => 'เสียง/x-aiff'
'm3u' => 'เสียง/x-mpegurl'
'ram' => 'เสียง/x-pn-realaudio'
'rm' => 'เสียง/x-pn-realaudio'
'rpm' => 'เสียง/x-pn-realaudio-plugin'
'ra' => 'เสียง/x-realaudio'
'wav' => 'เสียง/x-wav'
'pdb' => 'เคมี/x-pdb'
'xyz' => 'สารเคมี/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' => 'โมเดล/ตาข่าย'
'mesh' => 'model/mesh',
'silo' => 'model/mesh',
'wrl' => 'model/vrml'
'vrml' => 'model/vrml'
'css' => 'text/css',
'html' => 'text/html'
'htm' => 'text/html'
'asc' => 'ข้อความ/ธรรมดา'
'txt' => 'ข้อความ/ธรรมดา'
'rtx' => 'text/richtext',
'rtf' => 'text/rtf'
'sgml' => 'text/sgml'
'sgm' => 'text/sgml'
'tsv' => 'ข้อความ/ค่าที่คั่นด้วยแท็บ'
'wml' => 'text/vnd.wap.wml'
'wmls' => 'text/vnd.wap.wmlscript'
'etx' => 'text/x-setext'
'xsl' => 'text/xml'
'xml' => 'text/xml'
'mpeg' => 'วิดีโอ/mpeg'
'mpg' => 'วิดีโอ/mpeg'
'mpe' => 'วิดีโอ/mpeg'
'qt' => 'วิดีโอ/quicktime',
'mov' => 'วิดีโอ/quicktime'
'mxu' => 'video/vnd.mpegurl'
'avi' => 'วิดีโอ/x-msvideo'
'ภาพยนตร์' => 'วิดีโอ/x-sgi-movie'
'Ice' => 'X-Conference/X-CoolTalk'