When you complete an HTTP transaction requesting content, one of the headers received by the client software tells you what type of data is being received. This header, which is provided as an Internet media type, lets the software receiving the data make a decision about how to process it. Suppose, for example, that you request a URL representing an audio file. Generally speaking, by itself the browser doesn't know how to play the arbitrary stream of bytes that it receives, but by looking at the header received, the browser can choose which player application to launch the audio file.
When the HTTP transaction occurs, the client (generally a browser) tells the server which media types it understands using the Accept header. The server then tries to send information in one of the media types supported by the client. This information is sent using the Content-type header.
When an HTTP transaction occurs without the Accept header, the server assumes that the client supports any type of media. There are three general forms of the Accept header:
Beyond using the Content-type header with a GET method, a client might also supply a Content-type header with a POST or PUT method. This allows the format of the data being supplied in the POST or PUT operation to be specified.