Media Types

How do we know what the bytes actually mean?

Unit Goals

To see why we need media types and become acquainted with a few of the standard ones.

Why Media Types?

Information is generated, transmitted, and stored as bit sequences. That’s it.

Humans want to impart some meaning on those bits. A media type describes the way in which bits are to be interpreted.

The Registered Media Types

See the complete registry of media types maintained by IANA. It’s pretty amazing.

Each is written as type/subtype; for example

Here are a few of the registered ones:

TypeSubtype
text 1d-interleaved-parityfec cache-manifest calendar css csv csv-schema dns encaprtp enriched example fwdred grammar-ref-list html jcr-cnd markdown mizar n3 parameters parityfec plain provenance-notation prs.fallenstein.rst prs.lines.tag prs.prop.logic raptorfec RED rfc822-headers richtext rtf rtp-enc-aescm128 rtploopback rtx sgml strings t140 tab-separated-values troff turtle ulpfec uri-list vcard vnd.a vnd.abc vnd.ascii-art vnd.curl vnd.debian.copyright vnd.DMClientScript vnd.dvb.subtitle vnd.esmertec.theme-descriptor vnd.fly vnd.fmi.flexstor vnd.gml vnd.graphviz vnd.hgl vnd.in3d.3dml vnd.in3d.spot vnd.IPTC.NewsML vnd.IPTC.NITF vnd.latex-z vnd.motorola.reflex vnd.ms-mediapackage vnd.net2phone.commcenter.command vnd.radisys.msml-basic-layout vnd.senx.warpscript vnd.sun.j2me.app-descriptor vnd.trolltech.linguist vnd.wap.si vnd.wap.sl vnd.wap.wml vnd.wap.wmlscript xml xml-external-parsed-entity
message CPIM delivery-status disposition-notification example external-body feedback-report global global-delivery-status global-disposition-notification global-headers http imdn+xml partial rfc822 s-http sip sipfrag tracking-status vnd.wfa.wsc
image aces avci avcs bmp cgm dicom-rle emf example fits g3fax gif heic heic-sequence heif heif-sequence ief jls jp2 jpeg jpm jpx jxr ktx naplps png prs.btif prs.pti pwg-raster svg+xml t38 tiff tiff-fx vnd.adobe.photoshop vnd.airzip.accelerator.azv vnd.cns.inf2 vnd.dece.graphic vnd.djvu vnd.dwg vnd.dxf vnd.dvb.subtitle vnd.fastbidsheet vnd.fpx vnd.fst vnd.fujixerox.edmics-mmr vnd.fujixerox.edmics-rlc vnd.globalgraphics.pgb vnd.microsoft.icon vnd.mix vnd.ms-modi vnd.mozilla.apng vnd.net-fpx vnd.radiance vnd.sealed.png vnd.sealedmedia.softseal.gif vnd.sealedmedia.softseal.jpg vnd.svf vnd.tencent.tap vnd.valve.source.texture vnd.wap.wbmp vnd.xiff vnd.zbrush.pcx wmf
audio 1d-interleaved-parityfec 32kadpcm 3gpp 3gpp2 aac ac3 AMR AMR-WB amr-wb+ aptx asc ATRAC-ADVANCED-LOSSLESS ATRAC-X ATRAC3 basic BV16 BV32 clearmode CN DAT12 dls dsr-es201108 dsr-es202050 dsr-es202211 dsr-es202212 DV DVI4 eac3 encaprtp EVRC EVRC-QCP EVRC0 EVRC1 EVRCB EVRCB0 EVRCB1 EVRCNW EVRCNW0 EVRCNW1 EVRCWB EVRCWB0 EVRCWB1 EVS example fwdred G711-0 G719 G7221 G722 G723 G726-16 G726-24 G726-32 G726-40 G728 G729 G7291 G729D G729E GSM GSM-EFR GSM-HR-08 iLBC ip-mr_v2.5 L8 L16 L20 L24 LPC MELP MELP600 MELP1200 MELP2400 mobile-xmf MPA mp4 MP4A-LATM mpa-robust mpeg mpeg4-generic ogg opus parityfec PCMA PCMA-WB PCMU PCMU-WB prs.sid QCELP raptorfec RED rtp-enc-aescm128 rtploopback rtp-midi rtx SMV SMV0 SMV-QCP sp-midi speex t140c t38 telephone-event TETRA_ACELP tone UEMCLIP ulpfec usac VDVI VMR-WB vnd.3gpp.iufp vnd.4SB vnd.audiokoz vnd.CELP vnd.cisco.nse vnd.cmles.radio-events vnd.cns.anp1 vnd.cns.inf1 vnd.dece.audio vnd.digital-winds vnd.dlna.adts vnd.dolby.heaac.1 vnd.dolby.heaac.2 vnd.dolby.mlp vnd.dolby.mps vnd.dolby.pl2 vnd.dolby.pl2x vnd.dolby.pl2z vnd.dolby.pulse.1 vnd.dra vnd.dts vnd.dts.hd vnd.dts.uhd vnd.dvb.file vnd.everad.plj vnd.hns.audio vnd.lucent.voice vnd.ms-playready.media.pya vnd.nokia.mobile-xmf vnd.nortel.vbk vnd.nuera.ecelp4800 vnd.nuera.ecelp7470 vnd.nuera.ecelp9600 vnd.octel.sbc vnd.presonus.multitrack vnd.rhetorex.32kadpcm vnd.rip vnd.sealedmedia.softseal.mpeg vnd.vmx.cvsd vorbis vorbis-config
video 1d-interleaved-parityfec 3gpp 3gpp2 3gpp-tt BMPEG BT656 CelB DV encaprtp example H261 H263 H263-1998 H263-2000 H264 H264-RCDO H264-SVC H265 iso.segment JPEG jpeg2000 mj2 MP1S MP2P MP2T mp4 MP4V-ES MPV mpeg mpeg4-generic nv ogg parityfec pointer quicktime raptorfec raw rtp-enc-aescm128 rtploopback rtx smpte291 SMPTE292M ulpfec vc1 vc2 vnd.CCTV vnd.dece.hd vnd.dece.mobile vnd.dece.mp4 vnd.dece.pd vnd.dece.sd vnd.dece.video vnd.directv.mpeg vnd.directv.mpeg-tts vnd.dlna.mpeg-tts vnd.dvb.file vnd.fvt vnd.hns.video vnd.iptvforum.1dparityfec-1010 vnd.iptvforum.1dparityfec-2005 vnd.iptvforum.2dparityfec-1010 vnd.iptvforum.2dparityfec-2005 vnd.iptvforum.ttsavc vnd.iptvforum.ttsmpeg2 vnd.motorola.video vnd.motorola.videop vnd.mpegurl vnd.ms-playready.media.pyv vnd.nokia.interleaved-multimedia vnd.nokia.mp4vr vnd.nokia.videovoip vnd.objectvideo vnd.radgamettools.bink vnd.radgamettools.smacker vnd.sealed.mpeg1 vnd.sealed.mpeg4 vnd.sealed.swf vnd.sealedmedia.softseal.mov vnd.uvvu.mp4 vnd.vivo VP8
model 3mf example gltf-binary gltf+json iges mesh stl vnd.collada+xml vnd.dwf vnd.flatland.3dml vnd.gdl vnd.gs-gdl vnd.gtw vnd.moml+xml vnd.mts vnd.opengex vnd.parasolid.transmit.binary vnd.parasolid.transmit.text vnd.rosette.annotated-data-model vnd.usdz+zip vnd.valve.source.compiled-map vnd.vtu vrml x3d-vrml x3d+fastinfoset x3d+xml
application 1d-interleaved-parityfec 3gpdash-qoe-report+xml 3gpp-ims+xml A2L activemessage activity+json alto-costmap+json alto-costmapfilter+json alto-directory+json alto-endpointprop+json alto-endpointpropparams+json alto-endpointcost+json alto-endpointcostparams+json alto-error+json alto-networkmapfilter+json alto-networkmap+json AML andrew-inset applefile ATF ATFX atom+xml atomcat+xml atomdeleted+xml atomicmail atomsvc+xml atsc-dwd+xml atsc-held+xml atsc-rsat+xml ATXML auth-policy+xml bacnet-xdd+zip batch-SMTP beep+xml calendar+json calendar+xml call-completion CALS-1840 cbor cccex ccmp+xml ccxml+xml CDFX+XML cdmi-capability cdmi-container cdmi-domain cdmi-object cdmi-queue cdni CEA cea-2018+xml cellml+xml cfw clue_info+xml cms cnrp+xml coap-group+json coap-payload commonground conference-info+xml cpl+xml cose cose-key cose-key-set csrattrs csta+xml CSTAdata+xml csvm+json cwt cybercash dash+xml dashdelta davmount+xml dca-rft DCD dec-dx dialog-info+xml dicom dicom+json dicom+xml DII DIT dns dns+json dns-message dskpp+xml dssc+der dssc+xml dvcs ecmascript EDI-consent EDIFACT EDI-X12 efi EmergencyCallData.Comment+xml EmergencyCallData.Control+xml EmergencyCallData.DeviceInfo+xml EmergencyCallData.eCall.MSD EmergencyCallData.ProviderInfo+xml EmergencyCallData.ServiceInfo+xml EmergencyCallData.SubscriberInfo+xml EmergencyCallData.VEDS+xml emma+xml emotionml+xml encaprtp epp+xml epub+zip eshop example exi expect-ct-report+json fastinfoset fastsoap fdt+xml fhir+json fhir+xml fits font-tdpfr framework-attributes+xml geo+json geo+json-seq geopackage+sqlite3 geoxacml+xml gltf-buffer gml+xml gzip H224 held+xml http hyperstudio ibe-key-request+xml ibe-pkg-reply+xml ibe-pp-data iges im-iscomposing+xml index index.cmd index.obj index.response index.vnd inkml+xml IOTP ipfix ipp isup its+xml javascript jf2feed+json jose jose+json jrd+json json json-patch+json json-seq jwk+json jwk-set+json jwt kpml-request+xml kpml-response+xml ld+json lgr+xml link-format load-control+xml lost+xml lostsync+xml LXF mac-binhex40 macwriteii mads+xml marc marcxml+xml mathematica mathml-content+xml mathml-presentation+xml mathml+xml mbms-associated-procedure-description+xml mbms-deregister+xml mbms-envelope+xml mbms-msk-response+xml mbms-msk+xml mbms-protection-description+xml mbms-reception-report+xml mbms-register-response+xml mbms-register+xml mbms-schedule+xml mbms-user-service-description+xml mbox media_control+xml media-policy-dataset+xml mediaservercontrol+xml merge-patch+json metalink4+xml mets+xml MF4 mikey mmt-aei+xml mmt-usd+xml mods+xml moss-keys moss-signature mosskey-data mosskey-request mp21 mp4 mpeg4-generic mpeg4-iod mpeg4-iod-xmt mrb-consumer+xml mrb-publish+xml msc-ivr+xml msc-mixer+xml msword mud+json mxf n-quads n-triples nasdata news-checkgroups news-groupinfo news-transmission nlsml+xml node nss ocsp-request ocsp-response octet-stream ODA odm+xml ODX oebps-package+xml ogg oscore oxps p2p-overlay+xml parityfec passport patch-ops-error+xml pdf PDX pem-certificate-chain pgp-encrypted pgp-keys pgp-signature pidf-diff+xml pidf+xml pkcs10 pkcs7-mime pkcs7-signature pkcs8 pkcs8-encrypted pkcs12 pkix-attr-cert pkix-cert pkix-crl pkix-pkipath pkixcmp pls+xml poc-settings+xml postscript ppsp-tracker+json problem+json problem+xml provenance+xml prs.alvestrand.titrax-sheet prs.cww prs.hpub+zip prs.nprend prs.plucker prs.rdf-xml-crypt prs.xsf+xml pskc+xml rdf+xml route-apd+xml route-s-tsid+xml route-usd+xml QSIG raptorfec rdap+json reginfo+xml relax-ng-compact-syntax remote-printing reputon+json resource-lists-diff+xml resource-lists+xml rfc+xml riscos rlmi+xml rls-services+xml rpki-ghostbusters rpki-manifest rpki-publication rpki-roa rpki-updown rtf rtploopback rtx samlassertion+xml samlmetadata+xml sbml+xml scaip+xml scim+json scvp-cv-request scvp-cv-response scvp-vp-request scvp-vp-response sdp secevent+jwt senml-exi senml+cbor senml+json senml+xml sensml-exi sensml+cbor sensml+json sensml+xml sep-exi sep+xml session-info set-payment set-payment-initiation set-registration set-registration-initiation sgml sgml-open-catalog shf+xml sieve simple-filter+xml simple-message-summary simpleSymbolContainer slate smil - OBSOLETED in favor of application/smil+xml smil+xml smpte336m soap+fastinfoset soap+xml sparql-query sparql-results+xml spirits-event+xml sql srgs srgs+xml sru+xml stix+json ssml+xml tamp-apex-update tamp-apex-update-confirm tamp-community-update tamp-community-update-confirm tamp-error tamp-sequence-adjust tamp-sequence-adjust-confirm tamp-status-query tamp-status-response tamp-update tamp-update-confirm taxii+json tei+xml TETRA_ISI thraud+xml timestamp-query timestamp-reply timestamped-data tlsrpt+gzip tlsrpt+json tnauthlist trickle-ice-sdpfrag trig ttml+xml tve-trigger tzif tzif-leap ulpfec urc-grpsheet+xml urc-ressheet+xml urc-targetdesc+xml urc-uisocketdesc+xml vcard+json vcard+xml vemmi voicexml+xml voucher-cms+json vq-rtcpxr watcherinfo+xml webpush-options+json whoispp-query whoispp-response widget wita wordperfect5.1 wsdl+xml wspolicy+xml x-www-form-urlencoded x400-bp xacml+xml xcap-att+xml xcap-caps+xml xcap-diff+xml xcap-el+xml xcap-error+xml xcap-ns+xml xcon-conference-info-diff+xml xcon-conference-info+xml xenc+xml xhtml+xml xliff+xml xml xml-dtd xml-external-parsed-entity xml-patch+xml xmpp+xml xop+xml xslt+xml xv+xml yang yang-data+json yang-data+xml yang-patch+json yang-patch+xml yin+xml zip zlib zstd
fontcollection otf sfnt ttf woff woff2
multipart alternative appledouble byteranges digest encrypted example form-data header-set mixed multilingual parallel related report signed vnd.bint.med-plus voice-message x-mixed-replace

There are over 900 subtypes of application beginning with vnd. None are listed here.

Exercise: See which of these you recognize.

Summary

We’ve covered:

  • Why we have media types
  • A list of some of the registered media types.