--- title: Content-Disposition slug: Web/HTTP/Headers/Content-Disposition tags: - Cabeçalho Geral - Cabeçalho de Resposta - HTTP - Reference - Referencia - cabeçalho translation_of: Web/HTTP/Headers/Content-Disposition ---
Content-Disposition indica se o conteúdo é esperado a ser exibido inline no navegador, isso significa, como uma página Web ou parte de uma, ou como um anexo, que é baixado e salvo localmente.Em um corpo multipart/form-data, o cabeçalho geral HTTP Content-Disposition é um cabeçalho que pode ser utilizado em uma subparte de um corpo multipartes para dar informações sobre o campo a que ele se aplica. A subparte é delimitada pelo limite definido no cabeçalho {{HTTPHeader("Content-Type")}}. Usado no corpo em si, Content-Disposition não tem efeito.
O cabeçalho Content-Disposition é definido em um grande contexto de mensagens MIME para e-mail, mas somente um subconjunto dos possíveis parâmetros são aplicados à formulários HTTP e requisições {{HTTPMethod("POST")}} requests. Somente o valor form-data, assim como a diretiva opcional name e filename, podem ser usadas no contexto HTTP.
| Tipo de cabeçalho | {{Glossary("Response header")}} (para o corpo principal) {{Glossary("General header")}} (para a subparte de um corpo multipartes) |
|---|---|
| {{Glossary("Forbidden header name")}} | não |
O primeiro parâmetro no contexto HTTP ou é inline (valor padrão, indicando que ele pode ser mostrado dentro de uma página Web, ou como uma página Web) ou attachment (indicando que ele devev ser baixado; a maioria dos navegadores apresenta uma caixa de diálogo "Salvar como", pré-preenchido com o valor do parâmetro filename se presente).
Content-Disposition: inline Content-Disposition: attachment Content-Disposition: attachment; filename="filename.jpg"
O primeiro parâmetro no contexto HTTP é sempre o form-data. Parâmetros adicionais são case-insensitive e possuem argumentos que usam a sintaxe de cadeia de caracteres delimitadas por aspas depois do sinal '='. Múltiplos parâmetros são separados por um ponto e vírgula (';').
Content-Disposition: form-data Content-Disposition: form-data; name="fieldName" Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"
name{HTMLElement("input","<input type=\"file\">")}}), podem haver diversas subpartes com o mesmo nome.name com o valor de '_charset_' indica que a parte não é um campo HTML, mas uma codificação para usar em partes sem explicitar a informação de codificação.filenameContent-Disposition: attachment, ele é usado como nome de arquivo padrão para uma eventual caixa de diálogo "Salvar como" apresentado ao usuário.filename*Os parâmetros "filename" e "filename*" se diferenciam somente no fato de que "filename*" usa a codificação definida na RFC 5987. Quando ambos "filename" e "filename*" estão presentes em um único campo de valor do cabeçalho, "filename*" é preferido sobre "filename" quando ambos são entendidos.
Uma resposta ativando a caixa de diálogo "Salvar como":
200 OK Content-Type: text/html; charset=utf-8 Content-Disposition: attachment; filename="cool.html" Content-Length: 21 <HTML>Me salve!</HTML>
O simples arquivo HTML será salvo como um download regular ao invés de ser mostrado no navegador. A maioria dos navegadores irá propôr salvar o arquivo como nome de cool.html (por padrão).
Um exemplo de um formulário de HTML postado usando o formato multipart/form-data que faz o uso do cabeçalho Content-Disposition:
POST /test.html HTTP/1.1 Host: example.org Content-Type: multipart/form-data;boundary="boundary" --boundary Content-Disposition: form-data; name="field1" value1 --boundary Content-Disposition: form-data; name="field2"; filename="example.txt" value2 --boundary--
| Especificação | Título |
|---|---|
| {{RFC("7578")}} | Returning Values from Forms: multipart/form-data |
| {{RFC("6266")}} | Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP) |
| {{RFC("2183")}} | Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field |
{{Compat("http.headers.Content-Disposition")}}
Content-Disposition mais efetivamente se ambos parâmetros filename e filename* são providos; ele olha através de todos os nomes providenciados, usando o parâmetro filename* se um estiver disponível, mesmo se o parâmetro filename estiver incluído primeiro. Anteriormente, o primeiro parâmetro que combinasse seria utilizado, Previously, the first matching parameter would be used, desse modo prevenindo um nome mais apropriado de ser utilizado. Veja {{bug(588781)}}.