Ctrl + K
HTTP9 min read

Content-Type Header Explained

Understand the purpose of the HTTP Content-Type header, discover common MIME types and learn best practices for correctly identifying data sent between clients and servers.

Published: 2026-08-07

The Content-Type header is one of the most important HTTP headers used in both requests and responses. It tells the recipient what kind of data is being transmitted so that it can be interpreted correctly. Without the correct Content-Type, browsers, APIs and other clients may fail to process the data properly.

Whether you're uploading JSON to a REST API, serving HTML pages, returning images or downloading files, the Content-Type header plays a critical role in ensuring data is handled as intended.

What Is the Content-Type Header?

Content-Type is an HTTP header that specifies the media type of the request body or response body. It identifies the format of the transmitted content using standardized MIME types so that browsers, servers and applications know how to parse the data.

Why Content-Type Matters

  • Tells clients how to interpret received data.
  • Allows servers to validate incoming request bodies.
  • Ensures browsers display content correctly.
  • Helps APIs process request payloads accurately.
  • Improves interoperability between different applications.

What Is a MIME Type?

A MIME type (Multipurpose Internet Mail Extensions type) is a standardized identifier that describes the format of a file or HTTP message body. Although MIME types were originally introduced for email, they are now widely used throughout the web.

Content-Type Syntax

A Content-Type value usually consists of a media type and subtype. Additional parameters such as character encoding may also be included.

Content-Type: application/json
Content-Type: text/html; charset=UTF-8

Common Content-Type Values

Content-TypeTypical Usage
text/htmlHTML documents
text/plainPlain text
text/cssStylesheets
application/jsonREST API requests and responses
application/xmlXML documents
application/pdfPDF files
application/javascriptJavaScript files
image/pngPNG images
image/jpegJPEG images
image/svg+xmlSVG graphics

Content-Type in HTTP Requests

When sending data to a server, the client includes the Content-Type header to describe the format of the request body. The server uses this information to choose the correct parser before processing the incoming data.

POST /users HTTP/1.1
Content-Type: application/json

Content-Type in HTTP Responses

Servers include the Content-Type header in responses so that browsers and other clients know how to display or process the returned content. For example, browsers render HTML, display images or download files based largely on the reported content type.

Response TypeTypical Content-Type
Web pagetext/html
REST APIapplication/json
Imageimage/png
PDFapplication/pdf
💡 Always return the correct Content-Type for every response. Clients should never have to guess the format of the received data.
⚠️ Using an incorrect Content-Type can cause browsers, APIs and other applications to misinterpret or reject otherwise valid data.

Character Encoding

Text-based media types often include a charset parameter that specifies the character encoding used by the document. UTF-8 is the most common encoding on the modern web because it supports virtually every language while remaining compatible with existing systems.

Content-Type: text/html; charset=UTF-8

JSON Content Type

Most REST APIs exchange data using JSON. Both clients and servers commonly use the application/json media type when sending or receiving JSON payloads.

PayloadContent-Type
JSONapplication/json
XMLapplication/xml
Plain texttext/plain
HTMLtext/html

HTML and CSS

Browsers rely on Content-Type to determine how resources should be handled. HTML documents should be served as text/html, while CSS stylesheets use text/css. Incorrect media types may prevent pages from rendering correctly.

JavaScript Files

Modern web servers typically deliver JavaScript files using the application/javascript media type. Correctly identifying scripts helps browsers process and execute them according to current web standards.

Images and Media

Every image format has its own MIME type. Browsers use the Content-Type header to determine how image resources should be displayed without inspecting the file itself.

File TypeContent-Type
PNGimage/png
JPEGimage/jpeg
GIFimage/gif
SVGimage/svg+xml
WebPimage/webp
AVIFimage/avif

File Downloads

When users download files, browsers use the Content-Type header to identify the file format. Combined with the Content-Disposition header, it determines whether content should be displayed directly in the browser or offered as a downloadable file.

Multipart Form Data

HTML forms that upload files use the multipart/form-data media type. This format allows multiple fields and binary files to be transmitted together in a single HTTP request.

Content-Type: multipart/form-data

Application/x-www-form-urlencoded

Traditional HTML forms without file uploads typically send data using application/x-www-form-urlencoded. Form fields are encoded as key-value pairs separated by ampersands, making the format compact and easy for servers to parse.

Content-Type vs Accept

Although these headers are often used together, they serve different purposes. Content-Type describes the format of the data being sent, while the Accept header tells the server which response formats the client is willing to receive.

HeaderPurpose
Content-TypeDescribes the body being sent
AcceptDescribes acceptable response formats
💡 When calling REST APIs, make sure the Content-Type header accurately matches the request body. Sending JSON with a different media type is a common cause of API errors.
⚠️ Do not rely solely on file extensions when serving files. Servers should always return the correct MIME type through the Content-Type header.

Content-Type and Security

Correct Content-Type values improve both compatibility and security. Browsers make many decisions based on the declared media type, including whether content should be rendered, executed or downloaded. Returning the wrong Content-Type can lead to unexpected behavior or expose applications to security risks such as MIME sniffing.

MIME Sniffing

Some browsers attempt to determine a resource's type by inspecting its contents when the declared Content-Type appears incorrect. This process is known as MIME sniffing. While it improves compatibility with poorly configured servers, it can introduce security problems if content is interpreted differently than intended.

Preventing MIME Sniffing

Servers can reduce the risk of MIME sniffing by returning accurate Content-Type headers and sending the X-Content-Type-Options: nosniff response header. This instructs supported browsers to trust the declared media type instead of attempting to guess it.

X-Content-Type-Options: nosniff

How Servers Determine Content Types

Web servers usually determine Content-Type values based on file extensions or server configuration. Dynamic applications often set the header programmatically depending on the generated response, ensuring clients receive the correct media type regardless of how the content was produced.

Common Mistakes

  • Returning application/json for HTML pages.
  • Forgetting to specify UTF-8 for text content when appropriate.
  • Using text/plain for structured API responses.
  • Serving downloadable files with incorrect MIME types.
  • Confusing the Content-Type and Accept headers.
  • Assuming browsers will always detect the correct content automatically.

Best Practices

  • Always return the correct MIME type for every resource.
  • Use UTF-8 for modern text-based content whenever appropriate.
  • Return application/json for JSON APIs.
  • Use multipart/form-data for file uploads.
  • Include X-Content-Type-Options: nosniff when serving web content.
  • Verify response headers during API testing and deployment.
💡 If a browser displays downloaded content incorrectly or an API rejects a request body, checking the Content-Type header should be one of your first troubleshooting steps.
⚠️ Changing only a file extension does not change its media type. Servers should identify and return the actual MIME type of the content being served.

Frequently Asked Questions

What is the Content-Type header?

Content-Type is an HTTP header that identifies the media type of the request or response body, allowing clients and servers to process transmitted data correctly.

What is a MIME type?

A MIME type is a standardized identifier that describes the format of data, such as text/html, application/json or image/png. Content-Type uses MIME types to specify the format of transmitted content.

What Content-Type should REST APIs use?

Most modern REST APIs exchange JSON data and therefore commonly use application/json for both requests and responses.

What is the difference between Content-Type and Accept?

Content-Type describes the format of the data being sent, while Accept tells the server which response formats the client is willing to receive.

Why is the wrong Content-Type a problem?

Incorrect Content-Type values can cause browsers, servers and APIs to interpret data incorrectly, resulting in rendering issues, failed requests or security concerns.

Helpful HTTP Tools

A Content-Type Finder helps identify the correct media type for files and responses, a MIME Type Lookup provides standard MIME type information, a MIME Type Detector analyzes files to determine their likely content type, an HTTP Header Viewer displays request and response headers during debugging, and an HTTP Header Generator simplifies building correctly formatted HTTP headers for testing and development.

Conclusion

The Content-Type header is fundamental to HTTP communication. By accurately identifying the format of request and response bodies, it enables browsers, servers and APIs to exchange data reliably and securely. Understanding MIME types, character encoding and the relationship between Content-Type and other HTTP headers helps developers build interoperable applications, avoid common integration problems and deliver content exactly as intended across the modern web.