Content-Type
O cabeçalho Content-Type é utilizado para indicar o tipo de arquivo do recurso.Em respostas, o
Content-Type
diz para o client qual é o tipo de conteúdo que a resposta, de fato, tem. Alguns browsers vão realizar o chamado "MIME Sniffing" em alguns casos e não vão, necessariamente, seguir o valor declarado por este cabeçalho. Para previnir este comportamento é possível definir o cabeçalho X-Content-Type-Options
para o valor nosniff
.Em requisições, como POST
ou PUT
, o client diz ao servidor qual o tipo de dado que está, de fato, sendo enviado.
tipo de cabeçalho | Cabeçalho de entidade |
---|---|
Nome de cabeçalho proibido | não |
Cabeçalho de resposta na lista segura do CORS | sim |
Sintaxe
Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=something
Diretivas
media-type
-
O MIME type do recurso ou dado.
- charset
-
O encoding da string
- boundary
-
Para entidades do tipo multipart, a diretiva
boundary
é obrigatória. Ela consiste em uma sequencia de 1 a 70 caracteres de um conjunto conhecido por sua robustez em gateways de e-mail, e não podem terminar com espaço em branco. É utilizado para encapsular as bordas das multiplas partes da mensagem.
Exemplos
Content-Type
em formulários HTML
Em uma requisição POST
, resultado de uma submissão de um formulário HTML, o Content-Type
da requisição é especificado pelo atributo enctype
do elemento <form>
do HTML.
html
<form action="/" method="post" enctype="multipart/form-data">
<input type="text" name="description" value="some text" />
<input type="file" name="myFile" />
<button type="submit">Submit</button>
</form>
A requisição vai parecer com isto (alguns headers não importantes foram omitidos):
POST /foo HTTP/1.1 Content-Length: 68137 Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575 ---------------------------974767299852498929531610575 Content-Disposition: form-data; name="description" some text ---------------------------974767299852498929531610575 Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain (content of the uploaded file foo.txt) ---------------------------974767299852498929531610575
Especificações
Especificação | Título |
---|---|
RFC 7233, sessão 4.1: Content-Type in multipart | Hypertext Transfer Protocol (HTTP/1.1): Range Requests |
RFC 7231, sessão 3.1.1.5: Content-Type | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
Compatibilidade com navegadores
BCD tables only load in the browser
Ver também
Accept
eAccept-Charset
Content-Disposition
206
Partial ContentX-Content-Type-Options