Background
MIME types originally were developed for multimedia email (MIME stands for Multipurpose Internet Mail Extensions), but they have been reused for HTTP and several other protocols that need to describe the format and purpose of data objects.
MIME is defined by five primary documents:
RFC 2045, "MIME: Format of Internet Message Bodies"
Describes the overall MIME message structure, and introduces the Content-Type header, borrowed by HTTP
RFC 2046, "MIME: Media Types"
Introduces MIME types and their structure
RFC 2047, "MIME: Message Header Extensions for Non-ASCII Text"
Defines ways to include non-ASCII characters in headers
RFC 2048, "MIME: Registration Procedures"
Defines how to register MIME values with the Internet Assigned Numbers Authority (IANA)
RFC 2049, "MIME: Conformance Criteria and Examples"
Details rules for compliance, and provides examples
For the purposes of HTTP, we are most interested in RFC 2046 (Media Types) and RFC 2048 (Registration Procedures).