diff options
Diffstat (limited to 'files/pt-br/web/http/headers')
99 files changed, 9950 insertions, 0 deletions
diff --git a/files/pt-br/web/http/headers/accept-ch-lifetime/index.html b/files/pt-br/web/http/headers/accept-ch-lifetime/index.html new file mode 100644 index 0000000000..20adc08c6a --- /dev/null +++ b/files/pt-br/web/http/headers/accept-ch-lifetime/index.html @@ -0,0 +1,54 @@ +--- +title: Accept-CH-Lifetime +slug: Web/HTTP/Headers/Accept-CH-Lifetime +tags: + - Client hints + - Dicas do Cliente + - HTTP + - HTTP Header +translation_of: Web/HTTP/Headers/Accept-CH-Lifetime +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p>O cabeçalho <code><strong>Accept-CH-Lifetime</strong></code> é colocado pelo servidor para especificar a persistência do valor do cabeçalho {{HTTPHeader("Accept-CH")}}, que especifica para quais cabeçalhos <a href="/en-US/docs/Glossary/Client_hints">Client Hints</a> o cliente deve incluir nas suas requisições subsequentes.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Client Hints são acessíveis somente em origens seguras (via TLS). Os cabeçalhos Accept-CH e Accept-CH-Lifetime devem ser persistidos por todas as requisições seguras para assegurar que os Client Hints são enviados com segurança.</p> +</div> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-CH-Lifetime: <age> +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept-CH: Viewport-Width, DPR +Accept-CH-Lifetime: 86400 +</pre> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-CH-Lifetime")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-ch/index.html b/files/pt-br/web/http/headers/accept-ch/index.html new file mode 100644 index 0000000000..9c87a5e426 --- /dev/null +++ b/files/pt-br/web/http/headers/accept-ch/index.html @@ -0,0 +1,60 @@ +--- +title: Accept-CH +slug: Web/HTTP/Headers/Accept-CH +tags: + - Client hints + - Dicas do Cliente + - HTTP + - HTTP Header +translation_of: Web/HTTP/Headers/Accept-CH +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p>O cabeçalho <code><strong>Accept-CH</strong></code> é colocado pelo servidor para especificar quais cabeçalhos <a href="/en-US/docs/Glossary/Client_hints">Client Hints</a> o cliente deve incluir nas requisições subsequentes.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Client Hints são acessíveis somente em origens seguras (via TLS). Os cabeçalhos Accept-CH e Accept-CH-Lifetime devem ser persistidos por todas as requisições seguras para assegurar que os Client Hints são enviados com segurança.</p> +</div> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-CH: <lista de client hints> +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept-CH: DPR, Viewport-Width +Accept-CH: Width +Accept-CH-Lifetime: 86400 +Vary: DPR, Viewport-Width, Width +</pre> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Lembre de <a href="https://developer.mozilla.org/en-US/docs/Glossary/Client_hints#Varying_Client_Hints">variar a resposta</a> baseado nos client hints aceitos.</p> +</div> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-CH")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-charset/index.html b/files/pt-br/web/http/headers/accept-charset/index.html new file mode 100644 index 0000000000..c305153b18 --- /dev/null +++ b/files/pt-br/web/http/headers/accept-charset/index.html @@ -0,0 +1,96 @@ +--- +title: Accept-Charset +slug: Web/HTTP/Headers/Accept-Charset +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - Content Negotiation + - HTTP + - HTTP Header + - Negociação de conteúdo + - Reference + - Referencia + - Request header +translation_of: Web/HTTP/Headers/Accept-Charset +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">O cabeçalho de requisição HTTP <strong><code>Accept-Charset</code></strong> anuncia quais {{glossary("character encoding", "character encodings")}} o cliente entende.</span> Usando <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>, o servidor seleciona uma das codificações, a utiliza, e informa o cliente da sua escolha dentro do cabeçalho de resposta {{HTTPHeader("Content-Type")}}, geralmente em um parâmetro <code>charset=</code>. Navegadores geralmente não mandam este cabeçalho, por que o valor padrão para cada recurso geralmente está correto e transmiti-lo iria permitir <a href="/en-US/docs/Mozilla/Firefox/Privacy/Tracking_Protection">fingerprinting</a>.</p> + +<p>Se o servidor não pode servir nenhum codificação de caracteres vindo deste cabeçalho de requisição, ele pode teoricamente manda de volta um código de erro {{HTTPStatus("406", "406 Not Acceptable")}}. Mas para uma melhor experiência de usuário, isso raramente é feito e o cabeçalho <code>Accept-Charset</code> é ignorado.</p> + +<div class="note"> +<p>Nas versões mais antigas do HTTP/1.1, a codificação de caracteres definida era: ISO-8859-1. Isto não é mais recomendado, e agora todo tipo de conteúdo tem o seu próprio padrão.</p> +O UTF-8 é agora muito bem suportado e extremamente recomendado como codificação de caracteres preferida. Para <a href="https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy">garantir melhor privacidade e através de menor entropia com base em configuração</a>, todos os navegadores omitem o cabeçalho <code>Accept-Charset</code>: Internet Explorer 8+, Safari 5+, Opera 11+, Firefox 10+ e Chrome 27+ não o enviam mais.</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-Charset: <charset> + +// Múltiplos tipos, com pesos baseados na sintaxe de {{glossary("quality values", "quality value")}}: +Accept-Charset: utf-8, iso-8859-1;q=0.5</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><var><charset></var></code></dt> + <dd>O nome da codificação de caracteres, como <code>utf-8</code> ou <code>iso-8859-15.</code></dd> + <dt><code>*</code></dt> + <dd>Qualquer codificação de caracteres não mencionada em qualquer lugar no cabeçalho; <code>*</code> é usado como coringa.</dd> + <dt><code>;q=<var><weight></var></code></dt> + <dd>Qualquer codificação de caracteres é colocado na ordem de preferência, expresso usando um {{glossary("quality values", "quality value")}} relativo chamado de <em>peso</em>.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept-Charset: iso-8859-1 + +Accept-Charset: utf-8, iso-8859-1;q=0.5 + +Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept-Charset", "5.3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Accept-Charset")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Content_negotiation">Negociação de conteúdo</a> HTTP</li> + <li><a href="https://hsivonen.fi/accept-charset/">Nunca mais Accept-Charset</a></li> + <li>Cabeçalho com a resposta do conteúdo de negociação: {{HTTPHeader("Content-Type")}}</li> + <li>Outros cabeçalhos similares: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Accept")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-encoding/index.html b/files/pt-br/web/http/headers/accept-encoding/index.html new file mode 100644 index 0000000000..c3e01c060c --- /dev/null +++ b/files/pt-br/web/http/headers/accept-encoding/index.html @@ -0,0 +1,119 @@ +--- +title: Accept-Encoding +slug: Web/HTTP/Headers/Accept-Encoding +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - Content Negotiation + - HTTP + - HTTP Header + - Negociação de conteúdo + - Reference + - Referencia + - Request header +translation_of: Web/HTTP/Headers/Accept-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Accept-Encoding</code></strong> indica qual codificação de conteúdo, usualmente um algoritmo de compressão, o cliente está apto a entender. Usando <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>, o servidor seleciona uma das propostas, a utiliza e informa o cliente da escolha feita com o cabeçalho de resposta {{HTTPHeader("Content-Encoding")}}.</p> + +<p>Até mesmo se o cliente e o servidor suportarem os mesmos algoritmos de compressão, o servidor pode escolher não comprimir o corpo da resposta, se o valor de identidade também é aceitável. Dois casos comuns levam a isso:</p> + +<ul> + <li>Os dados a serem enviados já estão comprimidos e a segunda compressão não irá deixar os dados menores para serem transmitidos. Isso pode ser o caso com alguns formatos de imagens;</li> + <li>O servidor está sobrecarregado e não pode suportar a sobrecarga computacional induzida pelas exigências da compressão. Tipicamente, a Microsoft recomenda a não comprimir um corpo de resposta se o servidor utiliza mais do que 80% do seu poder computacional.</li> +</ul> + +<p>Enquanto o valor de <code>identity</code>, que significa sem codificação, não é explicitamente proibido, por um <code>identity;q=0</code> ou um <code>*;q=0</code> sem qualquer outra atribuição explícita para a identidade, o servidor nunca deve mandar como resposta um erro {{HTTPStatus("406")}} <code>Not Acceptable</code>.</p> + +<div class="note"><strong>Notas:</strong> + +<ul> + <li> + <p>Um registro da IANA mantém <a class="external" href="http://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1">a lista completa das codificações de conteúdo</a>.</p> + </li> + <li>Duas outras codificações de conteúdo, <code>bzip</code> e <code>bzip2</code>, são algumas vezes utilizadas, entretanto não são o padrão. Elas implementam o algoritmo usado por estes dois programas UNIX. Note que o primeiro foi descontinuado por problemas de patente.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-Encoding: gzip +Accept-Encoding: compress +Accept-Encoding: deflate +Accept-Encoding: br +Accept-Encoding: identity +Accept-Encoding: * + +// Múltiplos algoritmos, com pesos baseados na sintaxe de {{Glossary("Quality Values", "quality value")}}: +Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>gzip</code></dt> + <dd>Formato de compressão usando o <a class="external external-icon" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77), com CRC de 32-bits.</dd> + <dt><code>compress</code></dt> + <dd>Formato de compressão usando o algoritmo <a class="external external-icon" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW).</dd> + <dt><code>deflate</code></dt> + <dd>Formato de compressão usando a estrutura <a class="external external-icon" href="http://en.wikipedia.org/wiki/Zlib">zlib</a>, com o algoritmo de compressão <a class="external external-icon" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a>.</dd> + <dt><code>br</code></dt> + <dd>Formato de compressão usando o algoritmo de <a class="external external-icon" href="https://en.wikipedia.org/wiki/Brotli">Brotli</a>.</dd> + <dt><code>identity</code></dt> + <dd>Indica a identidade da função (i.e. sem compressão, ou sem modificação). Esse valor é sempre considerado como aceitável, mesmo se não estiver presente.</dd> + <dt><code>*</code></dt> + <dd>Aceita qualquer codificação de conteúdo ainda não listada no cabeçalho. Esse é o valor padrão se o cabeçalho não estiver presente. Isto não significa que qualquer algoritmo é suportado; meramente que nenhuma preferência é expressa.</dd> + <dt><code>;q=</code> (valores de peso q)</dt> + <dd>Qualquer valor é colocado em uma ordem de preferência expressada usando a <a href="/en-US/docs/Glossary/Quality_values">quality value</a> relativa chamada <em>peso</em>.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept-Encoding: gzip + +Accept-Encoding: gzip, compress, br + +Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "Accept-Encoding", "5.3.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-Encoding")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Content_negotiation">Negociação de conteúdo </a>HTTP</li> + <li>Cabeçalho com o resultado do conteúdo de negociação: {{HTTPHeader("Content-Encoding")}}</li> + <li>Outros cabeçalhos similares: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-language/index.html b/files/pt-br/web/http/headers/accept-language/index.html new file mode 100644 index 0000000000..14fdef299d --- /dev/null +++ b/files/pt-br/web/http/headers/accept-language/index.html @@ -0,0 +1,97 @@ +--- +title: Accept-Language +slug: Web/HTTP/Headers/Accept-Language +tags: + - Cabeçalho HTTP + - HTTP +translation_of: Web/HTTP/Headers/Accept-Language +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho HTTP <strong><code>Accept-Language</code></strong> anuncia quais linguas o cliente é capaz de entender, e qual é a preferência do variante do Locale. (Por Linguas, queremos dizer linguas como Inglês e portugues) Usando <a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a>, o servidor seleciona uma das propostas, usa ela e informa o cliente da sua escolha com o {{HTTPHeader("Content-Language")}} cabeçalho de responsta. Navegadores configuram valores adequados para este cabeçalhos de acordo com a língua configurada pelo usuario. </p> + +<p>Este cabeçalho é uma dica a ser usada pelo servicor quando ele não possui outra forma de determinar a lingua do cliente, como uma URL específica, que é controlada por uma decisão explicita do usuário. É recomendado que o servidor nunca sobreescreva uma decisão explícita. O conteúdo de <code>Accept-Language</code> está comumente fora do controle do usuário (em uma viagem a outro país por exemplo); O usuário pode querer acessar a pagina em outra lingua diferente da decidida pelo navegador.</p> + +<p>Se o servicor não encontrar uma língua correspondente, ele pode, teóricamente responder com o código de erro{{HTTPStatus("406")}} (Not Acceptable) . Mas, para uma melhor experiencia de usuário, iss o raramente é feito. Mais comumente, quando isso ocorre, o cabeçalho é ignorado.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de Cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple header", "CORS-safelisted request-header")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Accept-Language: <language> +Accept-Language: * + +// Multiple types, weighted with the {{glossary("quality values", "quality value")}} syntax: +Accept-Language: fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><language></code></dt> + <dd> + <p>A tag language (a qual pode ser chamada de "identificador de Locale") consiste de uma tag de 2 a 3 letras representando a lingua, opcionalmente pode ser seguida de um <code>'-'</code> separa outras informações extras. A mais comum informação extra é a região do país (como<code>'pt-BR'</code> ou <code>'pt-PT'</code>) ou o tipo do alfabeto a ser usado (como<code>'sr-Latn'</code>). Outras variantes como o tipo de ortografia (<code>'de-DE-1996'</code>) normalmente não são utilizadas no contexto deste cabeçalho.</p> + </dd> + <dt><code>*</code></dt> + <dd>Qualquer lingua; <code>'*'</code> é utilizado como curinga.</dd> + <dt><code>;q=</code> (q-factor weighting)</dt> + <dd>Any value placed in an order of preference expressed using a relative {{glossary("Quality values", "quality value")}} called <em>weight</em>.</dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<pre>Accept-Language: de + +Accept-Language: de-CH + +Accept-Language: en-US,en;q=0.5 +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept-Language", "5.3.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/bcp47">BCP 47</a></td> + <td>Tags for the Identification of Language</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-Language")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>HTTP <a href="/en-US/docs/Web/HTTP/Content_negotiation">content negotiation</a></li> + <li>Header with the result of the content negotiation: {{HTTPHeader("Content-Language")}}</li> + <li>Other similar headers: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-patch/index.html b/files/pt-br/web/http/headers/accept-patch/index.html new file mode 100644 index 0000000000..4c26935746 --- /dev/null +++ b/files/pt-br/web/http/headers/accept-patch/index.html @@ -0,0 +1,89 @@ +--- +title: Accept-Patch +slug: Web/HTTP/Headers/Accept-Patch +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Reference + - Referencia +translation_of: Web/HTTP/Headers/Accept-Patch +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Accept-Patch</code></strong> indica qual tipo de mídia o servidor está apto a entender.</p> + +<p><strong><code>Accept-Patch</code></strong> na resposta de qualquer método significa que o PATCH é permitido no recurso identificado pela Request-URI. Dois casos comuns que levam a isso:</p> + +<p>O servidor recebendo uma requisição PATCH com um tipo de mídia não suportado pode responder com {{HTTPStatus("415")}} <code>Unsupported Media Type</code> e um cabeçalho Accept-Patch referenciando um ou mais tipos de mídia suportados.</p> + +<div class="note"><strong>Notas:</strong> + +<ul> + <li> + <p>Um registro da IANA mantém <a class="external" href="http://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1">uma lista oficial completa das codificações de conteúdo</a>.</p> + </li> + <li>Duas outras codificações de conteúdo, <code>bzip</code> e <code>bzip2</code>, são algumas vezes utilizadas, entretanto não são o padrão. Elas implementam o algoritmo usado por estes dois programas UNIX. Note que o primeiro foi descontinuado por problemas de patente.</li> +</ul> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-Patch: application/example, text/example +Accept-Patch: text/example;charset=utf-8 +Accept-Patch: application/merge-patch+json +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<p>Nenhuma.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="syntaxbox">Accept-Patch: application/example, text/example + +Accept-Patch: text/example;charset=utf-8 + +Accept-Patch: application/merge-patch+json +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("5789", "Accept-Patch", "3.1")}}</td> + <td>HTTP PATCH</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-Patch")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>Método HTTP {{HTTPMethod("PATCH")}}</li> + <li>Semântica e contexto HTTP {{RFC("7231", "PUT", "4.3.4")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept-ranges/index.html b/files/pt-br/web/http/headers/accept-ranges/index.html new file mode 100644 index 0000000000..c066f11217 --- /dev/null +++ b/files/pt-br/web/http/headers/accept-ranges/index.html @@ -0,0 +1,84 @@ +--- +title: Accept-Ranges +slug: Web/HTTP/Headers/Accept-Ranges +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - HTTP Header + - Range Requests + - Reference + - Referencia + - Requisições de tamanho + - Response Header +translation_of: Web/HTTP/Headers/Accept-Ranges +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <code><strong>Accept-Ranges</strong></code> é um marcador usado pelo servidor para indicar que ele suporta requisições parciais. O valor deste campo indica a unidade utilizada para definir o tamanho.</p> + +<p>Na presença do cabeçalho <code>Accept-Ranges</code>, o navegador pode tentar retomar um <em>download</em> interrompido, ao invés de começar de novo do início.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept-Ranges: bytes +Accept-Ranges: none</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>none</code></dt> + <dd>Nenhuma unidade de tamanho é suportada, isso faz com que o cabeçalho seja equivalente a sua própria ausência, sendo então raramente usado, apesar de que alguns navegadores, como o IE9, é usado para habilitar ou desabilitar os botões de pausa no gerenciador de downloads.</dd> + <dt><code>bytes</code></dt> + <dd> + <p>A unidade de tamanho são bytes.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept-Ranges: bytes +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7233", "Accept-Ranges", "2.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept-Ranges")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Range")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/accept/index.html b/files/pt-br/web/http/headers/accept/index.html new file mode 100644 index 0000000000..3948a7aa5d --- /dev/null +++ b/files/pt-br/web/http/headers/accept/index.html @@ -0,0 +1,100 @@ +--- +title: Accept +slug: Web/HTTP/Headers/Accept +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - HTTP Header + - Reference + - Referencia + - Request header +translation_of: Web/HTTP/Headers/Accept +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Accept</code></strong> anuncia quais tipos de conteúdo, expressos como <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME types</a>, o cliente é capaz de entender. Usando <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>, o servidor então seleciona uma das propostas, a usa e então informa o cliente da sua escolha com o cabeçalho de resposta {{HTTPHeader("Content-Type")}}. Navegadores colocam valores adequados para este cabeçalho dependendo do contexto onde a requisição é feita: quando buscando um CSS <em>stylesheet</em>, um valor diferente é colocado para a requisição, o mesmo acontece com imagens, vídeos ou scripts.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header")}}</th> + <td>sim, com a restrição adicional de que valores não podem conter um <em>byte de requisição de cabeçalho CORS inseguro:</em><code><em> </em>"():<>?@[\]{}</code>, Delete, Tab e outros caracteres de controle: 0x00 à 0x19.</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Accept: <MIME_type>/<MIME_subtype> +Accept: <MIME_type>/* +Accept: */* + +// Múltiplos tipos, com pesos devido à sintaxe {{glossary("quality values", "quality value")}}: +Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */*;q=0.8 +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><MIME_type>/<MIME_subtype></code></dt> + <dd>Um único e preciso <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME type</a>, como por exemplo: <code>text/html</code>.</dd> + <dt><code><MIME_type>/*</code></dt> + <dd>Um <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME type</a>, mas com qualquer subtipo. <code>image/*</code> vai coincidir com <code>image/png</code>, <code>image/svg</code>, <code>image/gif</code> e outros tipos de imagens.</dd> + <dt><code>*/*</code></dt> + <dd>Qualquer <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME type</a>.</dd> + <dt><code>;q=</code> (fator de q de peso [q-factor])</dt> + <dd>Qualquer valor usado é colocado em uma ordem de preferência expressada usando o <a href="/en-US/docs/Glossary/Quality_values">quality value</a> relativo chamado <em>peso.</em></dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Accept: text/html + +Accept: image/* + +// Padrão geral +Accept: */* + +// Padrão para requisições de navegação +Accept: text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Accept", "5.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Accept")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Content_negotiation">Negociação de conteúdo</a> HTTP</li> + <li>Cabeçalho com o resultado da negociação de conteúdo: {{HTTPHeader("Content-Type")}}</li> + <li>Outros cabeçalhos similares: {{HTTPHeader("TE")}}, {{HTTPHeader("Accept-Encoding")}}, {{HTTPHeader("Accept-Charset")}}, {{HTTPHeader("Accept-Language")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-allow-credentials/index.html b/files/pt-br/web/http/headers/access-control-allow-credentials/index.html new file mode 100644 index 0000000000..7d5984a391 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-allow-credentials/index.html @@ -0,0 +1,101 @@ +--- +title: Access-Control-Allow-Credentials +slug: Web/HTTP/Headers/Access-Control-Allow-Credentials +tags: + - Access-Control-Allow-Credentials + - CORS + - Credenciais + - HTTP + - Reference + - cabeçalho + - credentials + - header +translation_of: Web/HTTP/Headers/Access-Control-Allow-Credentials +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Access-Control-Allow-Credentials</code></strong> diz aos navegadores se a resposta deve ser exposta ao código <em>frontend</em> JavaScript quando o modo de credenciais da requisição ({{domxref("Request.credentials")}}) é <code>include</code>.</p> + +<p>Quando o modo de credenciais da requisição ({{domxref("Request.credentials")}}) é <code>include</code>, navegadores vão somente expor a resposta ao código <em>frontend</em> JavaScript se o valor de <code>Access-Control-Allow-Credentials</code> for <code>true</code>.</p> + +<p>Credenciais são <em>cookies</em>, cabeçalhos de autorização ou certificados de cliente TLS.</p> + +<p>Quando usado como parte de uma resposta a uma requisição pré-vôo (<em>preflight)</em>, isso indica se a requisição atual vai ou não ser feita usando credenciais. Note que uma simples requisição {{HTTPMethod("GET")}} não é feita com pré-vôo, e se uma requisição é feita para um recurso usando credenciais, se o cabeçalho não é retornado com o recurso, a resposta é ignorada pelo navegador e não é retornada ao conteúdo web.</p> + +<p>O cabeçalho <code>Access-Control-Allow-Credentials</code> funciona em conjunto com a propriedade {{domxref("XMLHttpRequest.withCredentials")}} ou com a opção <code>credentials</code> na construtor da {{domxref("Request.Request()", "Request()")}} na Fetch API. Para requisições CORS com credenciais, para que os navegadores exponham a resposta ao código <em>frontend</em> JavaScript, ambos o servidor (usando o cabeçalho <code>Access-Control-Allow-Credentials</code>) e o cliente (colocando o modo de credenciais para o XHR, Fetch, ou requisição Ajax) devem indicar que eles estão optando por incluir as credenciais.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Allow-Credentials: true +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>true</dt> + <dd>O único valor válido para este cabeçalho é <code>true</code> (case-sensitive). Se você não precisa de credenciais, omita este cabeçalho inteiramente (ao invés de colocar seu valor para <code>false</code>).</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Permitindo credenciais:</p> + +<pre>Access-Control-Allow-Credentials: true</pre> + +<p>Usando <a href="/en-US/docs/Web/API/XMLHttpRequest">XHR</a> com credenciais:</p> + +<pre class="brush: js">var xhr = new XMLHttpRequest(); +xhr.open('GET', 'http://example.com/', true); +xhr.withCredentials = true; +xhr.send(null);</pre> + +<p>Usando <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> com credenciais:</p> + +<pre class="brush: js">fetch(url, { + credentials: 'include' +})</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-credentials', 'Access-Control-Allow-Credentials')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Allow-Credentials")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{domxref("XMLHttpRequest.withCredentials")}}</li> + <li>{{domxref("Request.Request()", "Request()")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-allow-headers/index.html b/files/pt-br/web/http/headers/access-control-allow-headers/index.html new file mode 100644 index 0000000000..0cfc3726f0 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-allow-headers/index.html @@ -0,0 +1,127 @@ +--- +title: Access-Control-Allow-Headers +slug: Web/HTTP/Headers/Access-Control-Allow-Headers +tags: + - CORS + - Cabeçalho de Resposta + - HTTP + - Reference + - cabeçalho + - header +translation_of: Web/HTTP/Headers/Access-Control-Allow-Headers +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Access-Control-Allow-Headers</code></strong> é usado na resposta à uma {{glossary("preflight request")}} na qual incluí o cabeçalho {{HTTPHeader("Access-Control-Request-Headers")}} para indicar quais cabeçalhos HTTP podem ser utilizados durante a requisição efetiva.</p> + +<p>Este cabeçalho é obrigatório se a requisição tem um cabeçalho {{HTTPHeader("Access-Control-Request-Headers")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Allow-Headers: <em><nome-do-cabeçalho></em>[, <em><nome-do-cabeçalho></em>]* +Access-Control-Allow-Headers: * +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><nome-do-cabeçalho></code></dt> + <dd>O nome de um cabeçalho suportado. O cabeçalho pode listar qualquer quantidade de cabeçalhos, desde que sejam separados por vírgula.</dd> + <dt><code>*</code> (coringa)</dt> + <dd>O valor "<code>*</code>" só conta como um valor coringa para requisições sem credenciais (requisições sem <a href="/en-US/docs/Web/HTTP/Cookies">cookies HTTP</a> ou informação de autenticação HTTP). Em requisições com credenciais, isso é tratado como o nome de cabeçalho literal "<code>*</code>" sem qualquer semântica especial. Note que o cabeçalho {{HTTPHeader("Authorization")}} não pode utilizar um coringa e sempre precisa ser listado explicitamente.</dd> +</dl> + +<p>Os cabeçalhos {{glossary("CORS-safelisted_request_header", "CORS-safelisted request headers")}}, {{HTTPHeader("Accept")}}, {{HTTPHeader("Accept-Language")}}, {{HTTPHeader("Content-Language")}}, {{HTTPHeader("Content-Type")}} são sempre permitidos e não precisam ser listados por este cabeçalho necessariamente. Entretanto, note que restrições adicionais são aplicadas com estes cabeçalhos envolvidos por listar estes cabeçalhos no cabeçalho <code>Access-Control-Allow-Headers</code> também.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Um_cabeçalho_customizado">Um cabeçalho customizado</h3> + +<p>Aqui está um exemplos de como um cabeçalho <code>Access-Control-Allow-Headers</code> pode se parecer. Isso indica que em adição aos <em>CORS-safelisted request headers</em>, um cabeçalho customizado chamado <code>X-Custom-Header</code> é suportado por requisições CORS pelo servidor.</p> + +<pre>Access-Control-Allow-Headers: X-Custom-Header</pre> + +<h3 id="Múltiplos_cabeçalhos">Múltiplos cabeçalhos</h3> + +<p>Este exemplo mostra o cabeçalho <code>Access-Control-Allow-Headers</code> quando é especificado para suportar diversos cabeçalhos.</p> + +<pre>Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests</pre> + +<h3 id="Burlando_restrições_adicionais">Burlando restrições adicionais</h3> + +<p>Apesar de que {{glossary("CORS-safelisted_request_header", "CORS-safelisted request headers")}} são sempre permitidos e geralmente não precisam ser listados no cabeçalho <code>Access-Control-Allow-Headers</code>, listá-los de qualquer forma irá envolver as <a href="/en-US/docs/Glossary/CORS-safelisted_request_header#Additional_restrictions">restrições adicionais</a> que são aplicadas.</p> + +<pre>Access-Control-Allow-Headers: Accept</pre> + +<h3 id="Exemplo_de_requisição_pré-vôo">Exemplo de requisição pré-vôo</h3> + +<p>Vamos dar uma olhada em um exemplo de requisição pré-vôo envolvendo o cabeçalho <code>Access-Control-Allow-Headers</code>.</p> + +<h4 id="Requisição">Requisição</h4> + +<p>Primeiro, a requisição. A requisição pré-vôo é uma requisição {{HTTPMethod("OPTIONS")}} que inclui algumas combinações de três cabeçalhos de requisições pré-vôo: {{HTTPHeader("Access-Control-Request-Method")}}, {{HTTPHeader("Access-Control-Request-Headers")}}, e {{HTTPHeader("Origin")}}, como por exemplo:</p> + +<pre>OPTIONS /resource/foo +Access-Control-Request-Method: DELETE +Access-Control-Request-Headers: origin, x-requested-with +Origin: https://foo.bar.org</pre> + +<h4 id="Resposta">Resposta</h4> + +<p>Se o servidor permite requisições CORS para usar o método {{HTTPMethod("DELETE")}}, ele responde com um cabeçalho de resposta {{HTTPHeader("Access-Control-Allow-Methods")}}, no qual lista <code>DELETE</code> junto à outros métodos suportados:</p> + +<pre>HTTP/1.1 200 OK +Content-Length: 0 +Connection: keep-alive +Access-Control-Allow-Origin: https://foo.bar.org +Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE +Access-Control-Max-Age: 86400</pre> + +<p>Se o método requisitado não é suportado, o servidor irá responder com um erro.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-headers', 'Access-Control-Allow-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<div class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div> + +<p>{{Compat("http.headers.Access-Control-Allow-Headers")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> + <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li> + <li>{{HTTPHeader("Access-Control-Request-Headers")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-allow-methods/index.html b/files/pt-br/web/http/headers/access-control-allow-methods/index.html new file mode 100644 index 0000000000..93c3945f04 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-allow-methods/index.html @@ -0,0 +1,83 @@ +--- +title: Access-Control-Allow-Methods +slug: Web/HTTP/Headers/Access-Control-Allow-Methods +tags: + - CORS + - Cabeçalho de Resposta + - HTTP + - Reference + - cabeçalho + - header +translation_of: Web/HTTP/Headers/Access-Control-Allow-Methods +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Access-Control-Allow-Methods</code></strong> especifica o método ou métodos permitidos quando acessando o recurso em resposta a uma {{glossary("preflight request")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Allow-Methods: <método>, <método>, ... +Access-Control-Allow-Methods: * +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><método></dt> + <dd>Lista separada por vírgula com os <a href="/en-US/docs/Web/HTTP/Methods">métodos de requisição HTTP</a>.</dd> + <dt><code>*</code> (coringa)</dt> + <dd>O valor "<code>*</code>" só conta como valor coringa para requisições sem credenciais (requisições sem <a href="/en-US/docs/Web/HTTP/Cookies">cookies HTTP</a> ou informação de autenticação HTTP). Em requisições com credenciais, isso é tratado como o nome de método literal "<code>*</code>" sem qualquer semântica especial.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Access-Control-Allow-Methods: POST, GET, OPTIONS +Access-Control-Allow-Methods: * +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-methods', 'Access-Control-Allow-Methods')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Allow-Methods")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> + <li>{{HTTPHeader("Access-Control-Expose-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Request-Method")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-allow-origin/index.html b/files/pt-br/web/http/headers/access-control-allow-origin/index.html new file mode 100644 index 0000000000..c99f3bd4eb --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-allow-origin/index.html @@ -0,0 +1,91 @@ +--- +title: Access-Control-Allow-Origin +slug: Web/HTTP/Headers/Access-Control-Allow-Origin +tags: + - Access-Control-Allow-Origin + - CORS + - Controle de Acesso + - HTTP + - HTTP Header + - Segurança + - header +translation_of: Web/HTTP/Headers/Access-Control-Allow-Origin +--- +<div>{{HTTPSidebar}}</div> + +<p>O <code><strong>Access-Control-Allow-Origin</strong></code> cabeçalho de resposta indica se os recursos da resposta podem ser compartilhados com a {{glossary("origin")}} dada.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Allow-Origin: * +Access-Control-Allow-Origin: <origin> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>*</code></dt> + <dd>Para as requisições sem credenciais, o servidor pode especificar "*" como um curinga, permitindo assim que qualquer origem acesse o recurso.</dd> + <dt><code><origin></code></dt> + <dd>Especifica a URI que pode acessar o recurso.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Para permitir que qualquer origin acesse o seu recurso, você pode especificar desta forma:</p> + +<pre>Access-Control-Allow-Origin: *</pre> + +<p>Para permitir que <code>https://developer.mozilla.org</code> acesse seu recurso, você pode especificar:</p> + +<pre>Access-Control-Allow-Origin: https://developer.mozilla.org</pre> + +<h3 id="CORS_e_caching">CORS e caching</h3> + +<p><span id="result_box" lang="pt"><span>Se o servidor especificar um host de origem em vez de "*", ele também deverá incluir "Origin" no cabeçalho de resposta {{HTTPHeader ("Vary")}} para indicar aos clientes que as respostas do servidor serão diferentes com base no valor da solicitação Origin</span> <span>cabeçalho.</span></span></p> + +<pre>Access-Control-Allow-Origin: https://developer.mozilla.org +Vary: Origin</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('Fetch','#http-access-control-allow-origin', 'Access-Control-Allow-Origin')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_browser">Compatibilidade de browser</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Allow-Origin")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Origin")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-expose-headers/index.html b/files/pt-br/web/http/headers/access-control-expose-headers/index.html new file mode 100644 index 0000000000..e192636256 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-expose-headers/index.html @@ -0,0 +1,106 @@ +--- +title: Access-Control-Expose-Headers +slug: Web/HTTP/Headers/Access-Control-Expose-Headers +tags: + - CORS + - HTTP + - Reference + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Access-Control-Expose-Headers +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Access-Control-Expose-Headers</code></strong> indica quais cabeçalhos podem ser expostos como parte da resposta listando os seus nomes.</p> + +<p>Por padrão, somente os 6 {{Glossary("CORS-safelisted response header", "CORS-safelisted response headers")}} são expostos:</p> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Content-Language")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPHeader("Expires")}}</li> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("Pragma")}}</li> +</ul> + +<p>Se você quiser que clientes tenham acesso a outros cabeçalhos, você deve listá-los usando o cabeçalho <code>Access-Control-Expose-Headers</code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Expose-Headers: <nome-do-cabeçalho>, <nome-do-cabeçalho>, ... +Access-Control-Expose-Headers: * +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><nome-do-cabeçalho></dt> + <dd>Uma lista dos cabeçalhos expostos contendo zero ou mais <a href="/en-US/docs/Web/HTTP/Headers">nomes de cabeçalhos</a> além dos {{Glossary("CORS-safelisted_request_header", "CORS-safelisted request headers")}} que o recurso pode usar e expor.</dd> + <dt><code>*</code> (coringa)</dt> + <dd>O valor "<code>*</code>" conta somente como um valor coringa para requisições sem credenciais (requisições sem <a href="/en-US/docs/Web/HTTP/Cookies">cookies HTTP</a> ou informação de autenticação HTTP). Em requisições com credenciais, ele é tratado como o nome de cabeçalho literal "<code>*</code>" sem qualquer semântica.<br> + Note que o cabeçalho {{HTTPHeader("Authorization")}} não pode ter valor coringa e sempre precisa ser listado explicitamente.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Para expor um cabeçalho de requisição não-CORS-seguro, você pode especificar:</p> + +<pre>Access-Control-Expose-Headers: Content-Length</pre> + +<p>Para expor um cabeçalho customizado adicionalmente, como <code>X-Kuma-Revision</code>, você pode adicionar múltiplos cabeçalhos separados por vírgula:</p> + +<pre>Access-Control-Expose-Headers: Content-Length, X-Kuma-Revision</pre> + +<p>Em requisições sem credênciais, você também pode usar um valor coringa:</p> + +<pre>Access-Control-Expose-Headers: *</pre> + +<p>Entretanto, isso não irá colocar um valor coringa para o cabeçalho {{HTTPHeader("Authorization")}}, então caso você precise que ele seja exposto, você precisa listá-lo explicitamente:</p> + +<pre>Access-Control-Expose-Headers: *, Authorization</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('Fetch','#http-access-control-expose-headers', 'Access-Control-Expose-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Expose-Headers")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Origin")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-max-age/index.html b/files/pt-br/web/http/headers/access-control-max-age/index.html new file mode 100644 index 0000000000..d2682eb848 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-max-age/index.html @@ -0,0 +1,82 @@ +--- +title: Access-Control-Max-Age +slug: Web/HTTP/Headers/Access-Control-Max-Age +tags: + - CORS + - Cabeçalho de Resposta + - Cache + - HTTP + - Reference + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Access-Control-Max-Age +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Access-Control-Max-Age</code></strong> indica por quanto tempo os resultados de uma {{glossary("preflight request")}} (que é a informação contida nos cabeçalhos {{HTTPHeader("Access-Control-Allow-Methods")}} e {{HTTPHeader("Access-Control-Allow-Headers")}}) pode ser cacheada (mantida).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Max-Age: <delta-segundos> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><delta-segundos></dt> + <dd>Número máximo de segundos que os resultados podem ser cacheados.<br> + Firefox <a href="https://dxr.mozilla.org/mozilla-central/rev/7ae377917236b7e6111146aa9fb4c073c0efc7f4/netwerk/protocol/http/nsCORSListenerProxy.cpp#1131">limita isso em 24 horas</a> (86400 segundos).<br> + Chromium (anterior à v76) <a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?l=36&rcl=52002151773d8cd9ffc5f557cd7cc880fddcae3e">limita isso à 10 minutos</a> (600 segundos).<br> + Chromium (começando na v76) <a href="https://cs.chromium.org/chromium/src/services/network/public/cpp/cors/preflight_result.cc?l=31&rcl=49e7c0b4886cac1f3d09dc046bd528c9c811a0fa">limita isso à 2 horas</a> (7200 segundos).<br> + Chromium também especifica o valor padrão de 5 segundos.<br> + O valor de <strong>-1</strong> irá desabilitar o cacheamento, requerendo uma requisição de checagem pré-vôo OPTIONS para todas as chamadas.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Resultados cacheados para uma requisição pré-vôo por 10 minutos:</p> + +<pre>Access-Control-Max-Age: 600 </pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + <tr> + <td>{{SpecName('Fetch','#http-access-control-max-age', 'Access-Control-Max-Age')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Max-Age")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Allow-Headers")}}</li> + <li>{{HTTPHeader("Access-Control-Allow-Methods")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-request-headers/index.html b/files/pt-br/web/http/headers/access-control-request-headers/index.html new file mode 100644 index 0000000000..9bf262fb15 --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-request-headers/index.html @@ -0,0 +1,66 @@ +--- +title: Access-Control-Request-Headers +slug: Web/HTTP/Headers/Access-Control-Request-Headers +translation_of: Web/HTTP/Headers/Access-Control-Request-Headers +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho da solicitação <strong><code>Access-Control-Request-Headers</code></strong> é usado ao emitir um {{glossary("preflight request")}} para permitir que o servidor saiba quais cabeçalhos HTTP serão usados quando a solicitação real for feita.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Request-Headers: <header-name>, <header-name>, ... +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><header-name></dt> + <dd>Uma lista delimitada por vírgula <a href="/en-US/docs/Web/HTTP/Headers">HTTP headers</a> incluídos na solicitação.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Access-Control-Request-Headers: X-PINGOTHER, Content-Type</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('Fetch','#http-access-control-request-headers', 'Access-Control-Request-Headers')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, confira <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envie-nos um pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Request-Headers")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Request-Method")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/access-control-request-method/index.html b/files/pt-br/web/http/headers/access-control-request-method/index.html new file mode 100644 index 0000000000..c53d083d9b --- /dev/null +++ b/files/pt-br/web/http/headers/access-control-request-method/index.html @@ -0,0 +1,72 @@ +--- +title: Access-Control-Request-Method +slug: Web/HTTP/Headers/Access-Control-Request-Method +tags: + - CORS + - Cabeçalho de requisição + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Access-Control-Request-Method +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição <strong><code>Access-Control-Request-Method</code></strong> é usado pelos navegadores quando executando uma {{glossary("preflight request")}}, para deixar o servidor sabendo quais <a href="/en-US/docs/Web/HTTP/Methods">métodos HTTP</a> vão ser usados quando a requisição verdadeira for feita. Este cabeçalho é necessário como toda requisição pré-vôo é um {{HTTPMethod("OPTIONS")}} e não usa o mesmo método na requisição verdadeira.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Access-Control-Request-Method: <método> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><método></dt> + <dd>Um dos <a href="/en-US/docs/Web/HTTP/Methods">métodos de requisição HTTP</a>, por exemplo: {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} ou {{HTTPMethod("DELETE")}}.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Access-Control-Request-Method: POST</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + <tr> + <td>{{SpecName('Fetch','#http-access-control-request-method', 'Access-Control-Request-Method')}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Access-Control-Request-Method")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Access-Control-Request-Headers")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/age/index.html b/files/pt-br/web/http/headers/age/index.html new file mode 100644 index 0000000000..cba7252183 --- /dev/null +++ b/files/pt-br/web/http/headers/age/index.html @@ -0,0 +1,71 @@ +--- +title: Age +slug: Web/HTTP/Headers/Age +tags: + - Cabeçalhos +translation_of: Web/HTTP/Headers/Age +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <code><strong>Age</strong></code> contém o tempo, em segundos, em que o objeto já está no <em>cache</em> de um proxy.</p> + +<p>O cabeçalho <code>Age</code> é normalmente perto de zero. Se <code>Age: 0</code>, é provável que ele tenha acabado de ser obtido do servidor de origem; senão, é normalmente calculado como a diferença entre a data corrente do proxy e o cabeçalho genérico {{HTTPHeader("Date")}} incluído na resposta HTTP.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Age: <delta-seconds> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><delta-seconds></dt> + <dd> + <p>Um inteiro não-negativo, representando o tempo em segundos em que o objeto já está no <em>cache</em> do proxy.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Age: 24</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7234", "Age", "5.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Age")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Expires")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/allow/index.html b/files/pt-br/web/http/headers/allow/index.html new file mode 100644 index 0000000000..6647cb5a75 --- /dev/null +++ b/files/pt-br/web/http/headers/allow/index.html @@ -0,0 +1,67 @@ +--- +title: Allow +slug: Web/HTTP/Headers/Allow +tags: + - Cabeçalho HTTP + - Cabeçalho de Entidade + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Allow +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <code><strong>Allow</strong></code> lista um conjunto de métodos suportados pelo recurso.</p> + +<p>O cabeçalho deve ser enviado se o servidor responde com um código de resposta {{HTTPStatus("405")}} <code>Method Not Allowed</code>, para indicar quais métodos de requisição podem ser utilizados. Um cabeçalho <code>Allow</code> vazio indica que o recurso não permite cabeçalhos de requisição, o que pode acontecer temporariamente para um dado recurso, por exemplo.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Allow: <métodos-http> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><métodos-http></dt> + <dd>Uma lista de <a href="/en-US/docs/Web/HTTP/Methods">métodos de requisição HTTP</a> separados por vírgula.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Allow: GET, POST, HEAD</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "Allow", "7.4.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPStatus("405")}}</li> + <li>{{HTTPHeader("Server")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/alt-svc/index.html b/files/pt-br/web/http/headers/alt-svc/index.html new file mode 100644 index 0000000000..5defcf508a --- /dev/null +++ b/files/pt-br/web/http/headers/alt-svc/index.html @@ -0,0 +1,71 @@ +--- +title: Alt-Svc +slug: Web/HTTP/Headers/Alt-Svc +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Reference + - Referencia +translation_of: Web/HTTP/Headers/Alt-Svc +--- +<p>O cabeçalho de resposta HTTP <strong><code style="white-space: nowrap;">Alt-Svc</code></strong> é usado para indicar que serviços alternativos que podem ser utilizados para alcançar o mesmo recurso. Um serviço alternativo é definido por uma combinação de protocolo/host/porta.</p> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Alt-Svc: clear +Alt-Svc: <var><protocol-id></var>=<em><alt-authority></em>; ma=<var><max-age></var> +Alt-Svc: <var><protocol-id></var>=<em><alt-authority></em>; ma=<var><max-age></var>; persist=1</pre> + +<dl> + <dt><code>clear</code></dt> + <dd>O valor especial ''clear" indica que todas as requisições alternativas para aquela origem devem ser invalidadas.</dd> + <dt><code><protocol-id></code></dt> + <dd>O identificador de protocolo {{Glossary("ALPN")}}. Exemplos incluem o h2 para HTTP/2 e h3-25 como rascunho 25 para o protocolo HTTP/3.</dd> + <dt><code><alt-authority></code></dt> + <dd>A cadeia de caracteres entre aspas especificando a autoridade alternativa que consiste em uma sobrecarga de host opicional, dois pontos e um número de porta mandatório.</dd> + <dt><code>ma=<max-age></code>{{Optional_Inline}}</dt> + <dd>O número de segundos que o serviço alternativo é considerado "fresco". Se omitido, seu padrão é 24 horas. Entradas de serviços alternativos podem ser cacheados até o limite de <em><max-age></em> segundos, menos a idade da resposta (do cabeçalho Age). Se a entrada cacheada expirar, o cliente não pode mais usar o serviço alternativo para novas conexões.</dd> + <dt><code>persist=1</code>{{Optional_Inline}}</dt> + <dd>Entradas cacheadas de serviços alternativos geralmente são limpas em mudanças nas configurações de rede. O uso do parâmetro persist=1 assegura que a entrada não será deletada para tais mudanças.</dd> +</dl> + +<p>Múltiplas entradas podem ser especificadas em um único cabeçalho Alt-Svc usando vírgula como separador. Neste caso, as primeiras entradas são consideradas as mais preferíveis.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Alt-Svc: h2=":443"; ma=2592000; +Alt-Svc: h2=":443"; ma=2592000; persist=1 +Alt-Svc: h2="alt.example.com:443", h2=":443" +Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(7838)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<div class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a class="external external-icon" href="https://github.com/mdn/browser-compat-data" rel="noopener">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div> + +<p>{{Compat("http.headers.Alt-Svc")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web">Identificando recursos na Web</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/authorization/index.html b/files/pt-br/web/http/headers/authorization/index.html new file mode 100644 index 0000000000..018c335175 --- /dev/null +++ b/files/pt-br/web/http/headers/authorization/index.html @@ -0,0 +1,94 @@ +--- +title: Authorization +slug: Web/HTTP/Headers/Authorization +tags: + - Autenticação + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Reference + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Authorization +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Authorization</code></strong> contém as credenciais para autenticar o agente de usuário com o servidor, geralmente o servidor responderá com um status {{HTTPStatus("401")}} <code>Unauthorized</code> se não for possível fazer a autenticação, e com o cabeçalho {{HTTPHeader("WWW-Authenticate")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Authorization: <tipo> <credenciais></pre> + +<h2 id="Directives">Directives</h2> + +<dl> + <dt><tipo></dt> + <dd><a href="/en-US/docs/Web/HTTP/Authentication#Authentication_schemes">Tipo de autenticação</a>. Um tipo comum é o <a href="/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a>. Outros tipos: + <ul> + <li><a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">Registro do IANA dos esquemas de Autenticação</a></li> + <li><a href="http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html">Autenticação para servidores AWS (<code>AWS4-HMAC-SHA256</code>)</a></li> + </ul> + </dd> + <dt><credenciais></dt> + <dd>Se a autenticação "Basic" é utilizada, as credenciais construção são parecidas com isto: + <ul> + <li>O nome de usuário com a senha combinados por dois pontos (<code>aladdin:opensesame</code>).</li> + <li>A cadeia de caracteres resultante é uma codificação <a href="/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">base64</a> (<code>YWxhZGRpbjpvcGVuc2VzYW1l</code>).</li> + </ul> + + <div class="note"> + <p><strong>Nota</strong>: Codificação Base64 não significa encriptação ou hashing! Esse método é igualmente seguro como mandar em texto limpo (base64 é uma codificação que pode ser revertida). Use o HTTPS em conjunto com a Autenticação Basic.</p> + </div> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l +</pre> + +<p>Veja também <a href="/en-US/docs/Web/HTTP/Authentication">autenticação HTTP</a> para exemplos em como configurar os servidores Apache ou nginx para proteger seu site com autenticação básica HTTP.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7235", "Authorization", "4.2")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>O esquema de autenticação HTTP 'Basic'</td> + </tr> + </tbody> +</table> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Authentication">Autenticação HTTP</a></li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/cache-control/index.html b/files/pt-br/web/http/headers/cache-control/index.html new file mode 100644 index 0000000000..bd1141a028 --- /dev/null +++ b/files/pt-br/web/http/headers/cache-control/index.html @@ -0,0 +1,174 @@ +--- +title: Cache-Control +slug: Web/HTTP/Headers/Cache-Control +tags: + - Cabaçalho genérico + - Cabeçalhos HTTP +translation_of: Web/HTTP/Headers/Cache-Control +--- +<div>{{HTTPSidebar}}</div> + +<p>O campo de cabeçalho genérico <strong><code>Cache-Control</code></strong> é usado para especificar diretivas para mecanismos de <em>cache</em> tanto em requisições quanto em respostas. Diretivas de <em>cache</em> são unidirecionais, o que significa que uma dada diretiva em uma requisição não implica em que a mesma seja dada na resposta.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>As diretivas são insensíveis à caixa (<em>case-insensitive)</em> e tem um argumento opcional, que pode usar tanto a sintaxe de token quanto a de cadeias entre aspas. Multiplas diretivas são separadas por virgula.</p> + +<h3 id="Diretivas_de_Cache_de_requisições">Diretivas de Cache de requisições</h3> + +<p>Diretivas <code>Cache-Control</code> padrão que podem ser usadas pelo cliente em uma requisição HTTP.</p> + +<pre class="syntaxbox notranslate">Cache-Control: max-age=<segundos> +Cache-Control: max-stale[=<segundos>] +Cache-Control: min-fresh=<segundos> +Cache-Control: no-cache +Cache-Control: no-store +Cache-Control: no-transform +Cache-Control: only-if-cached +</pre> + +<h3 id="Diretivas_de_Cache_de_respostas">Diretivas de Cache de respostas</h3> + +<p>Diretivas <code>Cache-Control</code> padrão que podem ser usadas pelo servidor em uma resposta HTTP.</p> + +<pre class="syntaxbox notranslate">Cache-Control: must-revalidate +Cache-Control: no-cache +Cache-Control: no-store +Cache-Control: no-transform +Cache-Control: public +Cache-Control: private +Cache-Control: proxy-revalidate +Cache-Control: max-age=<segundos> +Cache-Control: s-maxage=<segundos> +</pre> + +<h3 id="Diretivas_Cache-Control_Extendidas">Diretivas <code>Cache-Control</code> Extendidas</h3> + +<p>Diretivas <code>Cache-Control</code> extendidas não são parte do cerne do documento HTTP caching standards. Verifique a <a href="#Browser_compatibility">tabela de compatibilidade</a> para certificar-se do seu suporte.</p> + +<pre class="syntaxbox notranslate">Cache-Control: immutable +Cache-Control: stale-while-revalidate=<seconds> +Cache-Control: stale-if-error=<seconds> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<h3 id="Cacheabilidade">Cacheabilidade</h3> + +<dl> + <dt><code>public</code></dt> + <dd>Indica que a resposta pode ser memorizada por qualquer cache.</dd> + <dt><code>private</code></dt> + <dd>Indica que a resposta é para um único usuário e não deve ser armazenada por um cache compartilhado. Um cache privativo pode armazenar a resposta.</dd> + <dt><code>no-cache</code></dt> + <dd>Força o cache a submeter a requisição ao servidor origem para validação antes de liberar a cópia em memória.</dd> + <dt><code>only-if-cached</code></dt> + <dd>Indica que novos dados não devem ser obtidos. Se este é o caso, o servidor deseja que o cliente obtenha a resposta somente uma vez e memorize (no cache). A partir desse momento o cliente deveria liberar somente a cópia em cache e evitar contactar o servidor origem para ver se há cópias novas.</dd> +</dl> + +<h3 id="Expiração">Expiração</h3> + +<dl> + <dt><code>max-age=<segundos></code></dt> + <dd>Especifica o tempo máximo em que um recurso será considerado fresco. Ao contrário de <code>Expires</code>, esta diretiva é relativa à hora da requisição.</dd> + <dt><code>s-maxage=<segundos></code></dt> + <dd>Tem precedência sobre <code>max-age</code> ou o cabeçalho <code>Expires</code>, mas só se aplica a caches compartilhados (p.ex., proxies) e é ignorada por caches privados.</dd> + <dt><code>max-stale[=<segundos>]</code></dt> + <dd>Indica que o cliente pode aceitar uma resposta que excedeu seu período de expiração. Opcionalmente, você pode informar um valor em segundos, indicando o tempo em que a resposta não será expirada.</dd> + <dt><code>min-fresh=<segundos></code></dt> + <dd>Indica que o cliente quer uma resposta que será fresca por pelo menos o número de segundos especificado.</dd> + <dt><code>stale-while-revalidate=<segundos></code> {{experimental_inline}}</dt> + <dd>Indica que o cliente aceitará uma resposta de caducidade enquanto verifica uma fresca assincronamente em <em>background</em>. O valor em segundos indica por quanto tempo o cliente espera a resposta de caducidade.</dd> + <dt><code>stale-if-error=<segundos></code> {{experimental_inline}}</dt> + <dd>Indica que o cliente espera aceitar uma resposta de caducidade se falhou a verificação de uma fresca. O valor em segundos indica quanto tempo o cliente aceitará a resposta de caducidade após a expiração inicial.</dd> +</dl> + +<h3 id="Revalidação_e_recarga">Revalidação e recarga</h3> + +<dl> + <dt><code>must-revalidate</code></dt> + <dd>O cache deve verificar o estado dos recursos caducos antes de usá-los e não usar recursos expirados.</dd> + <dt><code>proxy-revalidate</code></dt> + <dd>Mesmo que <code>must-revalidate</code>, mas só se aplica a caches compartilhados (p.ex., proxies) e é ignorado por um cache privado.</dd> + <dt><code>immutable</code></dt> + <dd>Indica que o corpo da resposta não mudará ao longo do tempo. O recurso, se ainda hábil, está inalterado no servidor e portanto o cliente não deverá enviar uma revalidação condicional para ele (p.ex. <code>If-None-Match</code> ou <code>If-Modified-Since</code>) a fim de verificar atualiações, mesmo quando o usuário recarrega explicitamente a página. Clientes que não reconhecem esta extensão devem ignorá-la, segundo a especificação HTTP. No Firefox, <code>immutable</code> é honrado somente em transações <code>https://</code>. Para mais informações, veja também este <a href="http://bitsup.blogspot.de/2016/05/cache-control-immutable.html">blog post</a>.</dd> +</dl> + +<h3 id="Outros">Outros</h3> + +<dl> + <dt><code>no-store</code></dt> + <dd>O cache não deverá armazenar qualquer coisa sobre a requisição do cliente ou a resposta do servidor.</dd> + <dt><code>no-transform</code></dt> + <dd>Nenhuma transformação ou conversão deverá ser feita no recurso. Os cabeçalhos Content-Encoding, Content-Range, Content-Type não devem ser modificados por um proxy. Um proxy não transparente deve, por exemplo, converter formatos de imagens a fim de economizar espaço de cache ou reduzir o tráfego no link lento. A diretiva <code>no-transform</code> não permite isso.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Prevenindo_o_cache">Prevenindo o cache</h3> + +<p>Para desligar o armazenamento em cache, você pode enviar o cabeçalho de resposta seguinte. Alem disso, veja também os cabeçalhos <code>Expires</code> e <code>Pragma</code>.</p> + +<pre class="brush: bash notranslate">Cache-Control: no-cache, no-store, must-revalidate +</pre> + +<h3 id="Cache_de_conteúdo_estático">Cache de conteúdo estático</h3> + +<p>Para os arquivos da aplicação que não mudarão, você pode usar um cache mais agressivo enviando o cabeçalho de resposta abaixo. Isto inclui arquivos estáticos servidos pela aplicação tais como imagens, arquivos CSS e JavaScript, por exemplo. Veja também o cabeçalho <code>Expires</code>.</p> + +<pre class="brush: bash notranslate">Cache-Control: public, max-age=31536000</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7234")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + <tr> + <td>{{RFC("5861")}}</td> + <td>HTTP Cache-Control Extensions for Stale Content</td> + </tr> + <tr> + <td>{{RFC("8246")}}</td> + <td>HTTP Immutable Responses</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Cache-Control")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Caching_FAQ">HTTP Caching FAQ</a></li> + <li>{{HTTPHeader("Age")}}</li> + <li>{{HTTPHeader("Expires")}}</li> + <li>{{HTTPHeader("Pragma")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/clear-site-data/index.html b/files/pt-br/web/http/headers/clear-site-data/index.html new file mode 100644 index 0000000000..fec417cb08 --- /dev/null +++ b/files/pt-br/web/http/headers/clear-site-data/index.html @@ -0,0 +1,116 @@ +--- +title: Clear-Site-Data +slug: Web/HTTP/Headers/Clear-Site-Data +tags: + - Armazenamento + - Cabeçalho HTTP + - Cache + - Cookies + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Clear-Site-Data +--- +<p>{{HTTPSidebar}}</p> + +<p>O cabeçalho HTTP <strong><code>Clear-Site-Data</code></strong> limpa os dados de navegação (<em>cookies</em>, armazenamento, <em>cache</em>) associados com o site requisitado. Ele permite desenvolvedores web terem maior controle sobre os dados armazenados localmente pelo navegador para suas origens.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>O cabeçalho <code>Clear-Site-Data</code> aceita uma ou mais diretivas. Se todos os dados devem ser limpos, a diretiva coringa (<code>"*"</code>) pode ser usada.</p> + +<pre>// Diretiva única +Clear-Site-Data: "cache" + +// Múltiplas diretivas (separado por vírgula) +Clear-Site-Data: "cache", "cookies" + +// Coringa +Clear-Site-Data: "*" +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<p class="note">Todas as diretivas devem estar de acordo com a <a href="https://tools.ietf.org/html/rfc7230#section-3.2.6">gramática de cadeia de caracteres com as aspas</a>. A diretiva que não inclui aspas duplas é inválida.</p> + +<dl> + <dt id="cache"><code>"cache"</code></dt> + <dd>Indica que o servidor quer remover localmente os dados cacheados (i.e. o cache do navegador, veja <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching">HTTP caching</a>) para a URL de origem da resposta. Dependendo do navegador, essa diretiva pode acabar apagando outras coisas como páginas pré-renderizadas, <em>scripts</em> armazenados, shaders WebGL ou sugestões na barra de endereço.</dd> + <dt id="cookies"><code>"cookies"</code></dt> + <dd>Indica que o servidor quer remover todos os <em>cookies</em> da URL de origem da resposta. Credenciais de autenticação HTTP também são limpas. Isso afeta o registro inteiro do domínio, incluindo subdomínios. Então, https://example.com também como https://stage.example.com, terão seus <em>cookies</em> limpos.</dd> + <dt id="storage"><code>"storage"</code></dt> + <dd>Indica que o servidor quer remover todo o armezenamento DOM para a URL de origem da resposta. Isso incluí mecanismos de armazenamento como: + <ul> + <li>localStorage (executa <code>localStorage.clear</code>),</li> + <li>sessionStorage (executa <code>sessionStorage.clear</code>),</li> + <li>IndexedDB (para cada banco de dados, executa {{domxref("IDBFactory.deleteDatabase")}}),</li> + <li>Registros de serviços de trabalhadores (para cada registro de serviço de trabalhador, executa {{domxref("ServiceWorkerRegistration.unregister")}}),</li> + <li><a href="/en-US/docs/Web/HTML/Using_the_application_cache">AppCache,</a></li> + <li>Banco de dados WebSQL,</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API">FileSystem API data</a>,</li> + <li>Dados de plugin (Flash via <code><a href="https://wiki.mozilla.org/NPAPI:ClearSiteData">NPP_ClearSiteData</a></code>).</li> + </ul> + </dd> + <dt id="executionContexts"><code>"executionContexts"</code></dt> + <dd>Indica que o servidor quer recarregar todos os contextos do navegador da origem da resposta ({{domxref("Location.reload")}}).</dd> + <dt><code>"*"</code> (coringa)</dt> + <dd>Indica que o servidor quer limpar todos os tipos de dados da origem da resposta. Se mais tipos de dados forem adicionados nesse cabeçalho, eles também serão cobertos.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Deslogar_de_um_site">Deslogar de um site</h3> + +<p>Se um usuário se desloga de um site ou serviço, você talvez queira remover dados armazenados localmente. Você pode atingir isso adicionando o cabeçalho <code>Clear-Site-Data</code> quando enviando a página confirmando o desligamento da autenticação da pessoa do site foi feito com sucesso (https://example.com/logout, por exemplo):</p> + +<pre>Clear-Site-Data: "cache", "cookies", "storage", "executionContexts"</pre> + +<h3 id="Limpando_cookies">Limpando cookies</h3> + +<p>Se o cabeçalho é entregue com a resposta em https://example.com/clear-cookies, todos os <em>cookies</em> no mesmo domínio e qualquer subdomínio (como https://stage.example.com, etc), serão limpos.</p> + +<pre>Clear-Site-Data: "cookies"</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-clear-site-data">Clear Site Data</a></td> + <td>Working Draft</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Clear-Site-Data")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/conexão/index.html b/files/pt-br/web/http/headers/conexão/index.html new file mode 100644 index 0000000000..b8df737d95 --- /dev/null +++ b/files/pt-br/web/http/headers/conexão/index.html @@ -0,0 +1,54 @@ +--- +title: Connection +slug: Web/HTTP/Headers/Conexão +tags: + - Cabeçalhos + - HTTP + - Reference + - Referencia + - Web +translation_of: Web/HTTP/Headers/Connection +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>Connection</code></strong> controla se a conexão se mantém aberta ou não após o término da transação atual. Se o valor for <code>keep-alive</code>, a conexão é persistente e não fecha, permitindo que requisições futuras ao mesmo servidor sejam feitas.</p> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> <a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2">Campos de cabeçalho de conexão específica como Connection não devem ser usados com HTTP/2.</a></p> +</div> + +<p>Exceto pelos cabeçalhos padrões <em>hop-by-hop </em>(salto-por-salto) ({{HTTPHeader("Keep-Alive")}}, {{HTTPHeader("Transfer-Encoding")}}, {{HTTPHeader("TE")}}, {{HTTPHeader("Connection")}}, {{HTTPHeader("Trailer")}}, {{HTTPHeader("Upgrade")}}, {{HTTPHeader("Proxy-Authorization")}} e {{HTTPHeader("Proxy-Authenticate")}}), quaisquer cabeçalhos <em>hop-by-hop</em> usados pela mensagem devem estar listados no cabeçalho <code>Connection</code>, para que o primeiro proxy saiba que tem que consumi-los e não repassá-los além. Os cabeçalhos <em>hop-by-hop </em>padrões podem ser listados também (como é o caso do {{HTTPHeader("Keep-Alive")}}, mas não é obrigatório).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Connection: keep-alive +Connection: close +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>close</code></dt> + <dd>Indica que ou o cliente, ou o servidor querem fechar a conexão. Este é o valor padrão em requisições HTTP/1.0.</dd> + <dt>qualquer lista de cabelhaços HTTP separados por vírgulas [Geralmente apenas o <code>keep-alive</code> ]</dt> + <dd>Indica que o cliente gostaria de manter a ligação aberta. Ter uma conexão persistente é o valor padrão das requisições HTTP/1.1. A lista de cabeçalhos são os nomes dos cabeçalhos a serem removidos pelo primeiro proxy não-transparente ou com "cache no meio": estes cabeçalhos definem a conexão entre o emissor e a primeira entidade, não o nó destinatário.</dd> +</dl> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Connection")}}</p> diff --git a/files/pt-br/web/http/headers/content-disposition/index.html b/files/pt-br/web/http/headers/content-disposition/index.html new file mode 100644 index 0000000000..6deb5283a4 --- /dev/null +++ b/files/pt-br/web/http/headers/content-disposition/index.html @@ -0,0 +1,140 @@ +--- +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 +--- +<div>{{HTTPSidebar}}</div> + +<div>Em uma resposta HTTP normal, o cabeçalho de resposta <code><strong>Content-Disposition</strong></code> indica se o conteúdo é esperado a ser exibido <em>inline</em> no navegador, isso significad, como uma página Web ou parte de uma, ou como um anexo, que é baixado e salvo localmente.</div> + +<div></div> + +<p>Em um corpo <code>multipart/form-data</code>, o cabeçalho geral HTTP <strong><code>Content-Disposition</code></strong> é 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, <code>Content-Disposition</code> não tem efeito.</p> + +<p>O cabeçalho <code>Content-Disposition</code> é 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 <code>form-data</code>, assim como a diretiva opcional <code>name</code> e <code>filename</code>, podem ser usadas no contexto HTTP.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}} (para o corpo principal)<br> + {{Glossary("General header")}} (para a subparte de um corpo multipartes)</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<h3 id="Como_cabeçalho_de_resposta_para_o_corpo_principal">Como cabeçalho de resposta para o corpo principal</h3> + +<p>O primeiro parâmetro no contexto HTTP ou é <code>inline</code> (valor padrão, indicando que ele pode ser mostrado dentro de uma página Web, ou como uma página Web) ou <code>attachment</code> (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 <code>filename</code> se presente).</p> + +<pre class="syntaxbox">Content-Disposition: inline +Content-Disposition: attachment +Content-Disposition: attachment; filename="filename.jpg"</pre> + +<h3 id="Como_cabeçalho_para_um_corpo_multipartes">Como cabeçalho para um corpo multipartes</h3> + +<p>O primeiro parâmetro no contexto HTTP é sempre o <code>form-data</code>. Parâmetros adicionais são <em>case-insensitive </em>e possuem argumentos que usam a sintaxe de cadeia de caracteres delimitadas por aspas depois do sinal <code>'='</code>. Múltiplos parâmetros são separados por um ponto e vírgula (<code>';'</code>).</p> + +<pre class="syntaxbox">Content-Disposition: form-data +Content-Disposition: form-data; name="fieldName" +Content-Disposition: form-data; name="fieldName"; filename="filename.jpg"</pre> + +<h3 id="Diretivas">Diretivas</h3> + +<dl> + <dt><code>name</code></dt> + <dd>O nome é seguido por uma cadeia de caracteres contendo o nome do campo HTML no formulário que o conteúdo dessa subparte se refere. Quando lidando com múltiplos arquivos no mesmo campo (por exemplo, o atributo {{htmlattrxref("multiple", "input")}} de um elemento <code>{HTMLElement("input","<input type=\"file\">")}}</code>), podem haver diversas subpartes com o mesmo nome.</dd> + <dd>Um <code>name</code> com o valor de <code>'_charset_'</code> 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.</dd> + <dt><code>filename</code></dt> + <dd>É seguido por uma cadeia de caracteres contendo o nome original do arquivo transmitido. O nome do arquivo é sempre opcional e não deve ser usado cegamente pela aplicação: informação de caminho deve ser removida, e conversão para as regras do sistema de arquivo do servidor devem ser feitas. Este parâmetro provém a maior parte da informação indicativa. Quando usado em combinação com <code>Content-Disposition: attachment</code>, ele é usado como nome de arquivo padrão para uma eventual caixa de diálogo "Salvar como" apresentado ao usuário.</dd> + <dt><code>filename*</code></dt> + <dd> + <p>Os parâmetros "filename" e "filename*" se diferenciam somente no fato de que "filename*" usa a codificação definida na <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>. 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.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Uma resposta ativando a caixa de diálogo "Salvar como":</p> + +<pre>200 OK +Content-Type: text/html; charset=utf-8 +Content-Disposition: attachment; filename="cool.html" +Content-Length: 21 + +<HTML>Me salve!</HTML> +</pre> + +<p>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 <code>cool.html</code> (por padrão).</p> + +<p>Um exemplo de um formulário de HTML postado usando o formato <code>multipart/form-data</code> que faz o uso do cabeçalho <code>Content-Disposition</code>:</p> + +<pre>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--</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7578")}}</td> + <td>Returning Values from Forms: multipart/form-data</td> + </tr> + <tr> + <td>{{RFC("6266")}}</td> + <td>Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)</td> + </tr> + <tr> + <td>{{RFC("2183")}}</td> + <td>Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Disposition")}}</p> + +<h2 id="Notas_de_compatibilidade">Notas de compatibilidade</h2> + +<ul> + <li>Firefox 5 lida com o cabeçalho de resposta HTTP <code>Content-Disposition</code> mais efetivamente se ambos parâmetros <code>filename</code> e <code>filename*</code> são providos; ele olha através de todos os nomes providenciados, usando o parâmetro <code>filename*</code> se um estiver disponível, mesmo se o parâmetro <code>filename</code> 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)}}.</li> +</ul> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/Guide/HTML/Forms">Formulários HTML</a></li> + <li>O cabeçalho {{HTTPHeader("Content-Type")}} definindo o limite do corpo multipartes.</li> + <li>A interface {{domxref("FormData")}} usada para manipular dados de formulários para uso na API {{domxref("XMLHttpRequest")}}.</li> +</ul> diff --git a/files/pt-br/web/http/headers/content-encoding/index.html b/files/pt-br/web/http/headers/content-encoding/index.html new file mode 100644 index 0000000000..7a04dcadb6 --- /dev/null +++ b/files/pt-br/web/http/headers/content-encoding/index.html @@ -0,0 +1,108 @@ +--- +title: Content-Encoding +slug: Web/HTTP/Headers/Content-Encoding +tags: + - Cabeçalhos + - HTTP + - Reference + - Referencia +translation_of: Web/HTTP/Headers/Content-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p>The <strong><code>Content-Encoding</code></strong> entity header is used to compress the media-type. When present, its value indicates which encodings were applied to the entity-body. It lets the client know how to decode in order to obtain the media-type referenced by the <code>Content-Type</code> header.</p> + +<p>The recommendation is to compress data as much as possible and therefore to use this field, but some types of resources, such as jpeg images, are already compressed. Sometimes, using additional compression doesn't reduce payload size and can even make the payload longer.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Encoding: gzip +Content-Encoding: compress +Content-Encoding: deflate +Content-Encoding: identity +Content-Encoding: br + +// Múltiplo, em ordem nos quais serão aplicados +Content-Encoding: gzip, identity +Content-Encoding: deflate, gzip +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>gzip</code></dt> + <dd>A format using the <a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">Lempel-Ziv coding</a> (LZ77), with a 32-bit CRC. This is the original format of the UNIX <em>gzip</em> program. The HTTP/1.1 standard also recommends that the servers supporting this content-encoding should recognize <code>x-gzip</code> as an alias, for compatibility purposes.</dd> + <dt><code>compress</code></dt> + <dd>A format using the <a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) algorithm. The value name was taken from the UNIX <em>compress</em> program, which implemented this algorithm. Like the compress program, which has disappeared from most UNIX distributions, this content-encoding is not used by many browsers today, partly because of a patent issue (it expired in 2003).</dd> + <dt><code>deflate</code></dt> + <dd>Using the <a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> structure (defined in <a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a>) with the <a class="external" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> compression algorithm (defined in <a class="external" href="http://tools.ietf.org/html/rfc1951">RFC 1951</a>).</dd> + <dt><code>identity</code></dt> + <dd>Indicates the identity function (i.e., no compression or modification). This token, except if explicitly specified, is always deemed acceptable.</dd> + <dt><code>br</code></dt> + <dd>A format using the <a href="https://en.wikipedia.org/wiki/Brotli">Brotli</a> algorithm.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Comprimindo_com_gzip">Comprimindo com gzip</h3> + +<p>On the client side, you can advertise a list of compression schemes that will be sent along in an HTTP request. The {{HTTPHeader("Accept-Encoding")}} header is used for negotiating content encoding.</p> + +<pre>Accept-Encoding: gzip, deflate</pre> + +<p>The server responds with the scheme used, indicated by the <code>Content-Encoding</code> response header.</p> + +<pre>Content-Encoding: gzip</pre> + +<p>Note that the server is not obligated to use any compression method. Compression highly depends on server settings and used server modules.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7932", "Brotli Compressed Data Format")}}</td> + <td>Brotli Compressed Data Format</td> + </tr> + <tr> + <td>{{RFC("7231", "Content-Encoding", "3.1.2.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + <tr> + <td>{{RFC("2616", "Content-Encoding", "14.11")}}</td> + <td>Content-Encoding</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Encoding")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-Encoding")}}</li> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/content-language/index.html b/files/pt-br/web/http/headers/content-language/index.html new file mode 100644 index 0000000000..c0565daa57 --- /dev/null +++ b/files/pt-br/web/http/headers/content-language/index.html @@ -0,0 +1,104 @@ +--- +title: Content-Language +slug: Web/HTTP/Headers/Content-Language +tags: + - HTTP + - Headers + - Referencia +translation_of: Web/HTTP/Headers/Content-Language +--- +<div>{{HTTPSidebar}}</div> + +<p>O <a href="/pt-BR/docs/Glossario/Entity_header">cabeçalho de entidade</a> <strong><code>Content-Language</code></strong> é usado para descrever a língua(s) destinada para a audiência, para que isto permita um usuário de se diferenciar de acordo com a língua preferida do usuário.</p> + +<p>Por exemplo, se "<code>Content-Language: de-DE</code>" está selecionado, você diz que o documento é destinado para quem fala Alemão (no entanto, não indica que o documento é escrito em Alemão. Por exemplo, pode ser escrito em Inglês como parte de um curso de línguas para fluentes em Alemão).</p> + +<p>Se nenhum <code>Content-Language</code> é especificado, o padrão é que o conteúdo é destinado para todas as línguas. Múltiplas tags de língua também podem ser usada, assim como usar o header <code>Content-Language</code> com varios tipos de mídia e não apenas para documentos de texto.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>sim</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple header", "CORS-safelisted request-header")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Content-Language: de-DE +Content-Language: en-US +Content-Language: de-DE, en-CA +</pre> + +<h2 id="Directives">Directives</h2> + +<dl> + <dt><code>language-tag</code></dt> + <dd>Múltiplas tags de línguas são separadas por uma vírgula. Cada tag de língua é uma sequencia de uma ou mais subtags insensitíveis, cada uma separada por um hífen ("<code>-</code>", <code>%x2D</code>). Na maioria dos casos, uma tag de língua consiste de uma tag de língua primária que identifica uma família ampla de outras línguas (ex., "<code>en</code>" = English), que é opcionalmente seguida por uma série de subtags que refinam ou restringem aquele alcance da língua (ex., "<code>en-CA</code>" = variedade de Inglês como comunicado no Canadá).</dd> +</dl> + +<div class="note"> +<p><strong>Nota:</strong> Tags de língua são formalmente deifnidas em <a href="https://tools.ietf.org/html/rfc5646">RFC 5646</a>, que depende do padrão <a href="https://en.wikipedia.org/wiki/ISO_639">ISO 639</a> (muitas vezes o <a href="https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 code list</a>) para <a href="https://en.wikipedia.org/wiki/Language_code">language codes</a> serem usados.</p> +</div> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Indicando_a_língua_que_um_documento_está_escrito">Indicando a língua que um documento está escrito</h3> + +<p>O atributo global <code><a href="/en-US/docs/Web/HTML/Global_attributes/lang">lang</a></code> é usado em elementos HTML para indicar a língua de um documento <a href="/en-US/docs/Web/HTML">HTML</a> ou partes dele.</p> + +<pre class="brush: html"><html lang="de"></pre> + +<p>Não use este elemento meta como o abaixo para definir a língua de um documento:</p> + +<pre class="brush: html example-bad"><!-- /!\ Esta prática é ruim --> +<meta http-equiv="content-language" content="de"></pre> + +<h3 id="Indicando_uma_audiência_destinada_para_um_documento">Indicando uma audiência destinada para um documento</h3> + +<p>O header <code>Content-Language</code> é usado para especificar a <strong>audiência destinada da página</strong>, e pode indicar que é mais de uma língua.</p> + +<pre>Content-Language: de, en</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "Content-Language", "3.1.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_browser">Compatibilidade de browser</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Language")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-Language")}}</li> + <li> + <p><a href="https://www.w3.org/International/questions/qa-http-and-lang.en">HTTP headers, meta elements and language information</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/content-length/index.html b/files/pt-br/web/http/headers/content-length/index.html new file mode 100644 index 0000000000..dca35d3988 --- /dev/null +++ b/files/pt-br/web/http/headers/content-length/index.html @@ -0,0 +1,64 @@ +--- +title: Content-Length +slug: Web/HTTP/Headers/Content-Length +tags: + - Cabeçalhos + - HTTP + - Referencia +translation_of: Web/HTTP/Headers/Content-Length +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de entidade <strong><code>Content-Length</code></strong> indica o tamanho do corpo da entidade, em bytes, enviado ao destinatário.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Length: <tamanho> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><tamanho></dt> + <dd>O tamanho em número decimal de octetos.</dd> +</dl> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7230", "Content-Length", "3.3.2")}}</td> + <td>Protocolo de Transferência de Hypertexto (HTTP/1.1): Sintaxe de mensagem e Roteamento</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Length")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/content-location/index.html b/files/pt-br/web/http/headers/content-location/index.html new file mode 100644 index 0000000000..83b6edc739 --- /dev/null +++ b/files/pt-br/web/http/headers/content-location/index.html @@ -0,0 +1,156 @@ +--- +title: Content-Location +slug: Web/HTTP/Headers/Content-Location +translation_of: Web/HTTP/Headers/Content-Location +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>Content-Location</code></strong> indica uma localização alternativa para os dados retornados. O principal uso é para indicar o URL de um recurso transmitido como resultado de uma <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>.</p> + +<p>{{HTTPHeader("Location")}} e <code>Content-Location</code> são diferentes. <code>Location</code> indica o URL de um redirecionamento, enquanto <code>Content-Location</code> indica o URL direto usado para acessar o recurso, sem qualquer outra negociação de conteúdo no futuro. <code>Location</code> é um cabeçalho associado com a resposta, enquanto <code>Content-Location</code> é associado com os dados retornados. Essa distinção parece abstrata sem exemplos. Essa distinção pode parecer abstrata sem <a href="#Exemplos">exemplos</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Entity header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Location: <url> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><url></dt> + <dd>Uma URL <a href="/en-US/docs/Learn/Common_questions/What_is_a_URL#Examples_of_relative_URLs">relativa</a> (à URL da requisição) ou URL <a href="/en-US/docs/Learn/Common_questions/What_is_a_URL#Examples_of_absolute_URLs">absoluta</a>.</dd> +</dl> + +<h2 id="Exemplos_2"><a name="Exemplos">Exemplos</a></h2> + +<h3 id="Requerindo_dados_de_um_servidor_em_diferentes_formatos">Requerindo dados de um servidor em diferentes formatos</h3> + +<p>Digamos que uma API de um site pode retornar dados em formatos {{glossary("JSON")}}, {{glossary("XML")}}, ou <a href="https://en.wikipedia.org/wiki/Comma-separated_values" rel="external" title="Comma-separated values">CSV</a>. Se a URL para um documento em particular está em <code>https://example.com/documents/foo</code>, o site pode retornar diferentes URLs para <code>Content-Location</code> dependendo do cabeçalho {{HTTPHeader("Accept")}} nas requisições:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Cabeçalho de requisição</th> + <th scope="col">Cabeçalho de resposta</th> + </tr> + </thead> + <tbody> + <tr> + <td><code>Accept: application/json, text/json</code></td> + <td><code>Content-Location: /documents/foo.json</code></td> + </tr> + <tr> + <td><code>Accept: application/xml, text/xml</code></td> + <td><code>Content-Location: /documents/foo.xml</code></td> + </tr> + <tr> + <td><code>Accept: text/plain, text/*</code></td> + <td><code>Content-Location: /documents/foo.txt</code></td> + </tr> + </tbody> +</table> + +<p>Estas URLs são exemplos — o site pode servir diferentes formatos de arquivos com qualquer padrão URL que ele deseje, como por exemplo, um <a href="/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search">query string parameter</a>: <code>/documents/foo?format=json</code>, <code>/documents/foo?format=xml</code>, entre outros.</p> + +<p>Então o cliente pode lembrar que a versão JSON está disponível em uma URL em particular, evitando negociação de conteúdo da próxima vez que ele requerer aquele documento.</p> + +<p>O servidor também pode considerar outros cabeçalhos de <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>, como o {{HTTPHeader("Accept-Language")}}.</p> + +<h3 id="Apontando_para_um_novo_documento_HTTP_201_Created">Apontando para um novo documento (HTTP 201 Created)</h3> + +<p>Digamos que você está criando um novo <em>post </em>no blog através da API do site:</p> + +<pre>PUT /new/post +Host: example.com +Content-Type: text/markdown + +# Meu primeiro post no blog! + +Eu fiz através da API do `example.com`. Espero que ele tenha funcionado. +</pre> + +<p>O site retorna uma mensagem de sucesso genérica confirmando que o <em>post</em> foi publicado. O servidor especifica onde o novo <em>post</em> está com <code>Content-Location</code>:</p> + +<pre>HTTP/1.1 201 Created +Content-Type: text/plain; charset=utf-8 +Content-Location: /meu-primeiro-post-no-blog + +✅ Sucesso! +</pre> + +<h3 id="Indicando_a_URL_do_resultado_de_uma_transação">Indicando a URL do resultado de uma transação</h3> + +<p>Digamos que você tem um <code><a href="/en-US/docs/Web/HTML/Element/form"><form></a></code> para enviar dinheiro para outro usuário do de um site.</p> + +<pre class="brush: html"><form action="/mandar-pagamento" method="post"> + <p> + <label>Para quem você quer enviar o dinheiro? + <input type="text" name="destinatario"> + </label> + </p> + + <p> + <label>Quanto? + <input type="number" name="quantidade"> + </label> + </p> + + <button type="submit">Enviar Dinheiro</button> +</form> +</pre> + +<p>Quando o formulário é submetido, o site gera um recibo para a transação. O servidor pode usar <code>Content-Location</code> para indicar a URL do recibo para acesso futuro.</p> + +<pre>HTTP/1.1 200 OK +Content-Type: text/html; charset=utf-8 +Content-Location: /meus-recibos/38 + +<!doctype html> +<em>(Um monte de HTML…)</em> + +<p>Você mandou R$38.00 para UsuárioExemplo.</p> + +<em>(Mais um monte de HTML…)</em> +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Content-Location", "3.1.4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Location")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Location")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/content-range/index.html b/files/pt-br/web/http/headers/content-range/index.html new file mode 100644 index 0000000000..feb5fd983a --- /dev/null +++ b/files/pt-br/web/http/headers/content-range/index.html @@ -0,0 +1,89 @@ +--- +title: Content-Range +slug: Web/HTTP/Headers/Content-Range +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Content-Range +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Content-Range</code></strong> indica em que lugar uma mensagem parcial pertence em uma mensagem completa no corpo.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Range: <unit> <range-start>-<range-end>/<size> +Content-Range: <unit> <range-start>-<range-end>/* +Content-Range: <unit> */<size></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><unit></dt> + <dd>A unidade nos quais a variação é especificada. Geralmente em <code>bytes</code>.</dd> +</dl> + +<dl> + <dt><range-start></dt> + <dd>Um inteiro na dada unidade indicando o começo da variação da requisitada.</dd> + <dt><range-end></dt> + <dd>Um inteiro na dada unidade indicando o fim da variação requisitada.</dd> + <dt><size></dt> + <dd>O tamanho total do documento (ou <code>'*'</code> se desconhecido).</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Content-Range: bytes 200-1000/67589 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7233", "Content-Range", "4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Range")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Range")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPStatus("206")}} <code>Partial Content</code></li> + <li>{{HTTPStatus("416")}} <code>Range Not Satisfiable</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/content-security-policy-report-only/index.html b/files/pt-br/web/http/headers/content-security-policy-report-only/index.html new file mode 100644 index 0000000000..41152b8d4e --- /dev/null +++ b/files/pt-br/web/http/headers/content-security-policy-report-only/index.html @@ -0,0 +1,154 @@ +--- +title: Content-Security-Policy-Report-Only +slug: Web/HTTP/Headers/Content-Security-Policy-Report-Only +tags: + - CSP + - HTTP + - HTTPS + - Referencia + - Segurança + - cabeçalho +translation_of: Web/HTTP/Headers/Content-Security-Policy-Report-Only +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Content-Security-Policy-Report-Only</code></strong> permite aos desenvolvedores <em>web</em> experimentar políticas monitorando (mas não forçando) seus efeitos. Esses relatórios de violação consistem de documentos {{Glossary("JSON")}} enviados por uma requisição HTTP <code>POST</code> para a URI especificada.</p> + +<p>Para mais informações, veja também este artigo em <a href="/en-US/docs/Web/HTTP/CSP">Content Security Policy (CSP)</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th colspan="2" scope="row">Este cabeçalho não é suportado dentro de um elemento {{HTMLElement("meta")}}.</th> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<p>As diretivas do cabeçalho {{HTTPHeader("Content-Security-Policy")}} também podem ser aplicadas para <code>Content-Security-Policy-Report-Only</code>.</p> + +<p>A diretiva CSP {{CSP("report-uri")}} deve ser utilizada com este cabeçalho, caso contrário este cabeçalho será uma custosa operação sem ação para a máquina.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Este cabeçalho reporta violações que podem ter ocorrido. Você pode usar isso para trabalhar iterativamente na sua política de segurança de conteúdo. Você observa como seu site se comporta, observando para relatórios de violação ou <a href="https://secure.wphackedhelp.com/blog/wordpress-malware-redirect-hack-cleanup/">redirecionamento de <em>malware</em></a>, então escolha a política forçada desejada pelo cabeçalho {{HTTPHeader("Content-Security-Policy")}}.</p> + +<pre class="notranslate">Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<p>Se você ainda quer continuar recebendo relatórios, mas também quer reforçar a política, use o cabeçalho {{HTTPHeader("Content-Security-Policy")}} com a diretiva {{CSP("report-uri")}}.</p> + +<pre class="notranslate">Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<h2 id="Sintaxe_de_relatório_de_violação">Sintaxe de relatório de violação</h2> + +<p>O objeto de relatório JSON contém os seguintes dados:</p> + +<dl> + <dt><code>blocked-uri</code></dt> + <dd>A URI do recurso que estava bloqueada de carregar pela Política de Segurança de Conteúdo. Se a URI bloqueada é de uma origem diferente da URI do documento, então a URI bloqueada é truncada para conter somente o esquema, <em>host</em>, e a porta.</dd> + <dt><code><span>disposition</span></code></dt> + <dd>Ou <code>"enforce"</code> ou <code>"report"</code> dependendo se o cabeçalho {{HTTPHeader("Content-Security-Policy")}} ou o <code>Content-Security-Policy-Report-Only</code> é utilizado.</dd> + <dt><code>document-uri</code></dt> + <dd>A URI do documento na qual a violação ocorreu.</dd> + <dt><code><span>effective-directive</span></code></dt> + <dd>A diretiva na qual a execução causou a violação.</dd> + <dt><code>original-policy</code></dt> + <dd>A política original como especificada pelo cabeçalho HTTP <code>Content-Security-Policy-Report-Only</code>.</dd> + <dt><code>referrer</code></dt> + <dd>A referência do documento onde a violação ocorreu.</dd> + <dt><code>script-sample</code></dt> + <dd>Os primeiros 40 caracteres do <em>script</em> em linha, manejador de evento, ou estilo que causou a violação.</dd> + <dt><code>status-code</code></dt> + <dd>O código de status HTTP do recurso no qual o objeto global foi instanciado.</dd> + <dt><code>violated-directive</code></dt> + <dd>O nome da seção da política que foi violada.</dd> +</dl> + +<h2 id="Exemplo_de_relatório_de_violação">Exemplo de relatório de violação</h2> + +<div>Vamos considerar a página localizada em <code>http://example.com/signup.html</code>. Ele usa a seguinte política, desabilitando tudo menos arquivos de estilo de <code>cdn.example.com</code>.</div> + +<div> +<pre class="notranslate">Content-Security-Policy-Report-Only: default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports</pre> +</div> + +<div>O HTML de <code>signup.html</code> se parece com isto:</div> + +<pre class="brush: html notranslate"><!DOCTYPE html> +<html> + <head> + <title>Sign Up</title> + <link rel="stylesheet" href="css/style.css"> + </head> + <body> + ... Conteúdo ... + </body> +</html></pre> + +<div>Você consegue observar a violação? Arquivos de estilos são permitidos serem carregados somente de <code>cdn.example.com</code>, entretanto o site tenta carregar um de sua origem (<code>http://example.com</code>). O navegador capaz de executar CSP irá mandar o seguinte relatório de violação como requisição POST para <code>http://example.com/_/csp-reports</code>, quando o documento é visitado:</div> + +<pre class="brush: js notranslate">{ + "csp-report": { + "document-uri": "http://example.com/signup.html", + "referrer": "", + "blocked-uri": "http://example.com/css/style.css", + "violated-directive": "style-src cdn.example.com", + "original-policy": "default-src 'none'; style-src cdn.example.com; report-uri /_/csp-reports", + "disposition": "report" + } +}</pre> + +<p>Como você pode ver, o relatório inclui o caminho completo para o recurso violado em <code>blocked-uri</code>. Isso não é sempre o caso. Por exemplo, quando o <code>signup.html</code> irá tentar carregar o CSS de <code>http://anothercdn.example.com/stylesheet.css</code>, o navegador não irá incluir o caminho completo, somente a origem será inclusa (<code>http://anothercdn.example.com</code>). Isso é feito para prevenir o vazamento de informações sensíveis sobre recursos entre origens.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0")}}</td> + <td>{{Spec2('CSP 3.0')}}</td> + <td>Sem alterações.</td> + </tr> + <tr> + <td>{{specName("CSP 1.1")}}</td> + <td>{{Spec2('CSP 1.1')}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Security-Policy-Report-Only")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>Diretiva CSP {{CSP("report-uri")}}</li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Segurança de conteúdo em WebExtensions</a></li> + <li><a href="/en-US/docs/Tools/GCLI/Display_security_and_privacy_policies">Mostra políticas de privacidade e segurança nas Ferramentas de Desenvolvedor do Firefox</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/content-security-policy/index.html b/files/pt-br/web/http/headers/content-security-policy/index.html new file mode 100644 index 0000000000..eed769ff8a --- /dev/null +++ b/files/pt-br/web/http/headers/content-security-policy/index.html @@ -0,0 +1,261 @@ +--- +title: Content-Security-Policy +slug: Web/HTTP/Headers/Content-Security-Policy +tags: + - CSP + - Cabeçalho de Resposta + - HTTP + - Política de Segurança de Conteúdo + - Referencia + - Segurança + - cabeçalho +translation_of: Web/HTTP/Headers/Content-Security-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Content-Security-Policy</code></strong> permite aos administradores do site, ter controle sobre os recursos que o agente de usuário é permitido carregar para uma certa página. Com algumas pequenas exceções, políticas majoritariamente envolvem especificar as origens do servidor e pontos de acessos dos <em>scripts</em>. Isso ajuda contra ataques de <em>scripting</em> entre sites ({{Glossary("XSS")}}).</p> + +<p>Para mais informações, veja o artigo introdutório em <a href="/en-US/docs/Web/HTTP/CSP">Política de Segurança de Conteúdo (<em>Content Security Policy</em>)(CSP)</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Security-Policy: <policy-directive>; <policy-directive> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<h3 id="Fetch_directives" name="Fetch_directives">{{Glossary("Fetch directive", "Fetch directives")}}</h3> + +<p>Diretivas de busca (<em>Fetch directives</em>) controlam as localizações dos quais certos tipos de recursos podem ser carregados.</p> + +<h4 id="Lista_de_Diretivas_de_busca_de_Política_de_Segurança_de_Conteúdo_CSP">Lista de Diretivas de busca de Política de Segurança de Conteúdo (CSP)</h4> + +<dl> + <dt>{{CSP("child-src")}}</dt> + <dd>Define uma origem válida para <a href="/en-US/docs/Web/API/Web_Workers_API">web workers</a> e contextos aninhados de navegação carregados usando elementos como {{HTMLElement("frame")}} e {{HTMLElement("iframe")}}. + <div class="warning"> + <p>Ao invés de <strong><code>child-src</code></strong>, os autores que querem regular contextos de navegação aninhadas e trabalhores devem usar as diretivas {{CSP("frame-src")}} e {{CSP("worker-src")}}, respectivamente.</p> + </div> + </dd> + <dt>{{CSP("connect-src")}}</dt> + <dd>Restringe a URL que pode ser carregada usando interfaces de script.</dd> + <dt>{{CSP("default-src")}}</dt> + <dd>Funciona como recuo para a outra {{Glossary("Fetch directive", "fetch directives")}}.</dd> + <dt>{{CSP("font-src")}}</dt> + <dd>Especifica origens válidas para as fontes de letras carregadas usando {{cssxref("@font-face")}}.</dd> + <dt>{{CSP("frame-src")}}</dt> + <dd>Especifica origens válidas para carregamento de contextos de navegação aninhados usando elementos como {{HTMLElement("frame")}} e {{HTMLElement("iframe")}}.</dd> + <dt>{{CSP("img-src")}}</dt> + <dd>Especifica origens válidas para imagens e ícones.</dd> + <dt>{{CSP("manifest-src")}}</dt> + <dd>Especifica origens válidas dos arquivos de manifesto da aplicação.</dd> + <dt>{{CSP("media-src")}}</dt> + <dd>Especifica origens válidas para carregar dados de media usando os elementos {{HTMLElement("audio")}} , {{HTMLElement("video")}} e {{HTMLElement("track")}}.</dd> + <dt>{{CSP("object-src")}}</dt> + <dd>Especifica origens válidas para os elementos {{HTMLElement("object")}}, {{HTMLElement("embed")}}, e {{HTMLElement("applet")}}.</dd> + <dd class="note">Elementos controlados por <code>object-src</code> sejam talvez considerados elementos HTML legados e não estão recebendo novas funcionalidades padrão (como os atributos de segurança <code>sandbox</code> ou <code>allow</code> para <code><iframe></code>). Sendo assim é <strong>recomendado</strong> restringir o uso desta diretiva (e.g. colocar explicitamente <code>object-src 'none'</code> se possível).</dd> + <dt>{{CSP("prefetch-src")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para serem pré-carregadas ou pré-renderizadas.</dd> + <dt>{{CSP("script-src")}}</dt> + <dd>Especifica origens válidas para JavaScript.</dd> + <dt>{{CSP("script-src-elem")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para elementos JavaScript {{HTMLElement("script")}}.</dd> + <dt>{{CSP("script-src-attr")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para <em>handlers</em> de eventos JavaScript <em>inline</em>.</dd> +</dl> + +<dl> + <dt>{{CSP("style-src")}}</dt> + <dd>Especifica origens válidas para arquivos de estilo.</dd> + <dt>{{CSP("style-src-elem")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para elementos de estilo {{HTMLElement("style")}} e elementos {{HTMLElement("link")}} com <code>rel="stylesheet"</code>.</dd> + <dt>{{CSP("style-src-attr")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para estilos dentro de linha aplicados a elementos DOM individuais.</dd> + <dt>{{CSP("worker-src")}}{{experimental_inline}}</dt> + <dd>Especifica origens válidas para scripts {{domxref("Worker")}}, {{domxref("SharedWorker")}}, ou {{domxref("ServiceWorker")}}.</dd> +</dl> + +<h3 id="Document_directives" name="Document_directives">{{Glossary("Document directive", "Document directives")}}</h3> + +<p>As diretivas de Documento governam as propriedades de um documento ou ambiente <a href="/en-US/docs/Web/API/Web_Workers_API">worker (trabalhador)</a> para qual a política se aplica.</p> + +<h4 id="Lista_de_diretivas_de_Documento_da_Política_de_Segurança_de_Conteúdo">Lista de diretivas de Documento da Política de Segurança de Conteúdo</h4> + +<dl> + <dt>{{CSP("base-uri")}}</dt> + <dd>Restringe as URLs que podem ser usadas em um elemento {{HTMLElement("base")}} do documento.</dd> + <dt>{{CSP("plugin-types")}}</dt> + <dd>Restringe o conjunto de <em>plugins</em> que podem ser embutidos em um documento limitando pelos tipos de conteúdos que podem ser carregados.</dd> + <dt>{{CSP("sandbox")}}</dt> + <dd>Habilita o <em>sandbox</em> para um recurso requisitado similar ao atributo {{htmlattrxref("sandbox", "iframe")}} de {{HTMLElement("iframe")}}.</dd> +</dl> + +<h3 id="Navigation_directives" name="Navigation_directives">{{Glossary("Navigation directive", "Navigation directives")}}</h3> + +<p>Diretivas de Navegação governam para qual localização um usuário pode navegar ou submeter um formulário para, por exemplo.</p> + +<h4 id="Lista_de_diretivas_de_Navegação_da_Política_de_Segurança_de_Conteúdo">Lista de diretivas de Navegação da Política de Segurança de Conteúdo</h4> + +<dl> + <dt>{{CSP("form-action")}}</dt> + <dd>Restringe as URLs que podem ser usadas como alvo para as submissões de um formulário para um dado contexto.</dd> + <dt>{{CSP("frame-ancestors")}}</dt> + <dd>Especifica pais válidos que podem embutir uma página usando {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("object")}}, {{HTMLElement("embed")}}, ou {{HTMLElement("applet")}}.</dd> + <dt>{{CSP("navigate-to")}}{{experimental_inline}}</dt> + <dd>Restringe as URLs para qual um documento pode iniciar navegação quaisquer sejam os motivos, incluindo {{HTMLElement("form")}} (se {{CSP("form-action")}} não for especificado), {{HTMLElement("a")}}, {{DOMxRef("window.location")}}, {{DOMxRef("window.open")}}, etc.</dd> +</dl> + +<h3 id="Reporting_directives" name="Reporting_directives">{{Glossary("Reporting directive", "Reporting directives")}}</h3> + +<p>Diretivas de Relatório controlam o processo de reportar as violações CSP. Veja também o cabeçalho {{HTTPHeader("Content-Security-Policy-Report-Only")}}.</p> + +<h4 id="Lista_de_Diretivas_de_Relatório_da_Política_de_Segurança_de_Conteúdo">Lista de Diretivas de Relatório da Política de Segurança de Conteúdo</h4> + +<dl> + <dt>{{CSP("report-uri")}}{{deprecated_inline}}</dt> + <dd>Instrui ao agente de usuário para reportar tentativas de violaçnao de Política de Segurança de Conteúdo. Esses relatórios de violação consistem de documentos {{Glossary("JSON")}} enviados por requisição HTTP <code>POST</code> para uma URI especificada. + <div class="warning"> + <p>Apesar da diretiva {{CSP("report-to")}} tem a inteção de trocar a diretiva depreciada <code><strong>report-uri</strong></code>, {{CSP("report-to")}} não é suportado na maioria dos navegadores ainda. Então para compatibilidade com os navegadores atuais enquanto adiciona a compatibilidade com {{CSP("report-to")}}, você pode especificar ambos <code><strong>report-uri</strong></code> e {{CSP("report-to")}}:</p> + + <pre class="syntaxbox">Content-Security-Policy: ...; report-uri https://endpoint.example.com; report-to groupname</pre> + + <p>Em navegadores que suportam {{CSP("report-to")}}, a diretiva <code><strong>report-uri</strong></code> será ignorada.</p> + </div> + </dd> + <dt>{{CSP("report-to")}}{{experimental_inline}}</dt> + <dd>Dispara um <code>SecurityPolicyViolationEvent</code>.</dd> +</dl> + +<h3 id="Outras_diretivas">Outras diretivas</h3> + +<dl> + <dt>{{CSP("block-all-mixed-content")}}</dt> + <dd>Previne carregamento de quaisquer recursos usando HTTP quando a página é carregada usando HTTPS.</dd> + <dt>{{CSP("referrer")}}{{deprecated_inline}}{{non-standard_inline}}</dt> + <dd>Era usado para especificar informação no cabeçalho de referência (sic) para links fora da página. Ao invés disso, use o cabeçalho {{HTTPHeader("Referrer-Policy")}}.</dd> + <dt>{{CSP("require-sri-for")}}{{experimental_inline}}</dt> + <dd>Obriga o uso de {{Glossary("SRI")}} para <em>scripts </em>ou estilos na página.</dd> + <dt>{{CSP("require-trusted-types-for")}}{{experimental_inline}}</dt> + <dd>Impõe <a href="https://w3c.github.io/webappsec-trusted-types/dist/spec/">Trusted Types</a> (Tipos confiáveis) em coletores de eventos (vide: <a href="https://en.wikipedia.org/wiki/Sink_(computing)">Sink (Computing)</a>) para evitar injeção de DOM XSS.</dd> +</dl> + +<dl> + <dt>{{CSP("trusted-types")}}{{experimental_inline}}</dt> + <dd>Usado para especificar uma lista branca de políticas <a href="https://w3c.github.io/webappsec-trusted-types/dist/spec/">Trusted Types</a> (Tipos confiáveis) (Tipos confiáveis permitem aplicações travarem injeções DOM XSS em coletores de eventos (<em>sinks</em>) para aceitarem somente valores tipados não falsificáveis no lugar de <em>strings</em>.</dd> +</dl> + +<dl> + <dt>{{CSP("upgrade-insecure-requests")}}</dt> + <dd>Instrui o usuário de agente a tratar todas as URLs inseguras de um site (aquelas servidas através do HTTP) a serem trocadas por URLs seguras (aqueles servidas através de HTTPS). Essa diretiva tem como foco sites com grande número de URLs inseguras e legadas que precisam ser reescritas.</dd> +</dl> + +<h2 id="CSP_em_workerstrabalhadores">CSP em workers(trabalhadores)</h2> + +<p><a href="/en-US/docs/Web/API/Worker">Workers (trabalhadores)</a> em geral não são governados pela política de segurança de conteúdo do documento (ou trabalhador pai) que os criou. Para especificar uma política de segurança de conteúdo para um trabalhador, coloque um cabeçalho de resposta <code>Content-Security-Policy</code> para a requisição que pediu o <em>script</em> do trabalhador em si.</p> + +<p>A exceção à isso é se o <em>script</em> original do trabalhador é um identificador único global (por exemplo, se a URL tem um esquema de dados ou <em>blob</em>). Neste caso, o trabalhador herda a política de segurança de conteúdo do documento ou trabalhador que o criou.</p> + +<h2 id="Múltiplas_políticas_de_segurança_de_conteúdo">Múltiplas políticas de segurança de conteúdo</h2> + +<p>CSP permite múltiplas políticas sendo especificadas para um recurso, através dos cabeçalhos <code>Content-Security-Policy</code>, {{HTTPHeader("Content-Security-Policy-Report-Only")}} e do elemento {{HTMLElement("meta")}}.</p> + +<p>Você pode usar o cabeçalho <code>Content-Security-Policy</code> mais de uma vez como no exemplo abaixo. Preste atenção a diretiva {{CSP("connect-src")}} aqui. Mesmo que a segunda política permitiria a conexão, a primeira política contém <code>connect-src 'none'</code>. Adicionando políticas adicionais <em>podem somente restringir</em> as capacidades do recurso protegido, o que significa que não haverá conexão permitida e, como política mais restrita, <code>connect-src 'none'</code> é imposto.</p> + +<pre>Content-Security-Policy: default-src 'self' http://example.com; + connect-src 'none'; +Content-Security-Policy: connect-src http://example.com/; + script-src http://example.com/</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Exemplo: Desabilitar <em>inline/eval</em> inseguros, permitindo somente carregamento de conteúdos (imagens, fontes de letras, scripts, etc.) através do HTTPS:</p> + +<pre>// cabeçalho +Content-Security-Policy: default-src https: + +// meta tag +<meta http-equiv="Content-Security-Policy" content="default-src https:"> +</pre> + +<p>Exemplo: Site pré-existente que usa muito código dentro de linha para corrigir mas quer assegurar que os recursos são carregador somente através de HTTPS e desabilita plugins:</p> + +<pre>Content-Security-Policy: default-src https: 'unsafe-eval' 'unsafe-inline'; object-src 'none'</pre> + +<p>Exemplo: Não implemente a política acima ainda, ao invés disso, somente reporte as violações que podem ter ocorrido:</p> + +<pre>Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-violation-report-endpoint/</pre> + +<p>Veja as <a href="https://infosec.mozilla.org/guidelines/web_security#Examples_5">Mozilla Web Security Guidelines</a> para mais exemplos.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{specName("CSP 3.0")}}</td> + <td>{{Spec2("CSP 3.0")}}</td> + <td>Adiciona <code>manifest-src</code>, <code>navigate-to</code>, <code>report-to</code>, <code>strict-dynamic</code>, <code>worker-src</code>. Desdeprecia <code>frame-src</code>. Deprecia <code>report-uri</code> em favor de <code>report-to</code>.</td> + </tr> + <tr> + <td>{{specName("Mixed Content")}}</td> + <td>{{Spec2("Mixed Content")}}</td> + <td>Adiciona <code>block-all-mixed-content</code>.</td> + </tr> + <tr> + <td>{{specName("Subresource Integrity")}}</td> + <td>{{Spec2("Subresource Integrity")}}</td> + <td>Adiciona <code>require-sri-for</code>.</td> + </tr> + <tr> + <td>{{specName("Upgrade Insecure Requests")}}</td> + <td>{{Spec2("Upgrade Insecure Requests")}}</td> + <td>Adiciona <code>upgrade-insecure-requests</code>.</td> + </tr> + <tr> + <td>{{specName("CSP 1.1")}}</td> + <td>{{Spec2("CSP 1.1")}}</td> + <td>Adiciona <code>base-uri</code>, <code>child-src</code>, <code>form-action</code>, <code>frame-ancestors</code>, <code>plugin-types</code>, <code>referrer</code>, and <code>report-uri</code>. Deprecia <code>frame-src</code>.</td> + </tr> + <tr> + <td>{{specName("CSP 1.0")}}</td> + <td>{{Spec2("CSP 1.0")}}</td> + <td>Define <code>connect-src</code>, <code>default-src</code>, <code>font-src</code>, <code>frame-src</code>, <code>img-src</code>, <code>media-src</code>, <code>object-src</code>, <code>report-uri</code>, <code>sandbox</code>, <code>script-src,</code> e <code>style-src</code>.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.csp.Content-Security-Policy")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</li> + <li><a href="/en-US/docs/Web/HTTP/CSP">Aprenda sobre: Content Security Policy</a></li> + <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Segurança de Conteúdo em Extensões Web</a></li> + <li><a href="https://csp.withgoogle.com/docs/strict-csp.html">Adotando uma política estrita</a></li> + <li><a href="https://csp-evaluator.withgoogle.com/">Avaliador CSP</a> - Avalie sua Política de Segurança de Conteúdo</li> +</ul> diff --git a/files/pt-br/web/http/headers/content-type/index.html b/files/pt-br/web/http/headers/content-type/index.html new file mode 100644 index 0000000000..9395bbfbc8 --- /dev/null +++ b/files/pt-br/web/http/headers/content-type/index.html @@ -0,0 +1,117 @@ +--- +title: Content-Type +slug: Web/HTTP/Headers/Content-Type +translation_of: Web/HTTP/Headers/Content-Type +--- +<div>{{HTTPSidebar}}</div> + +<div>O cabeçalho <strong>Content-Type</strong> é utilizado para indicar o {{Glossary("MIME type","tipo de arquivo")}} do recurso.</div> + +<div> </div> + +<div>Em respostas, o <code>Content-Type</code> 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 {{HTTPHeader("X-Content-Type-Options")}} para o valor <code>nosniff</code>.</div> + +<div> </div> + +<div>Em requisições, como {{HTTPMethod("POST")}} ou {{HTTPMethod("PUT")}}, o client diz ao servidor qual o tipo de dado que está, de fato, sendo enviado.</div> + +<div> </div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">tipo de cabeçalho</th> + <td>{{Glossary("Cabeçalho de entidade")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Nome de cabeçalho proibido")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cabeçalho de resposta simples", "Cabeçalho de resposta na lista segura do CORS")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Content-Type: text/html; charset=utf-8 +Content-Type: multipart/form-data; boundary=something +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>media-type</code></dt> + <dd>O <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME type</a> do recurso ou dado.</dd> + <dt>charset</dt> + <dd>O encoding da string</dd> + <dt>boundary</dt> + <dd>Para entidades do tipo multipart, a diretiva <code>boundary</code> é 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.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Content-Type_em_formulários_HTML"><code>Content-Type</code> em formulários HTML</h3> + +<p>Em uma requisição {{HTTPMethod("POST")}}, resultado de uma submissão de um formulário HTML, o <code>Content-Type</code> da requisição é especificado pelo atributo <code>enctype</code> do elemento {{HTMLElement("form")}} do HTML.</p> + +<pre class="brush: 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> +</pre> + +<p>A requisição vai parecer com isto (alguns headers não importantes foram omitidos):</p> + +<pre>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 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7233", "Content-Type in multipart", "4.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + <tr> + <td>{{RFC("7231", "Content-Type", "3.1.1.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_browsers">Compatibilidade de browsers</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Content-Type")}}</p> + +<h2 id="Ver_também">Ver também</h2> + +<ul> + <li>{{HTTPHeader("Accept")}} e {{HTTPHeader("Accept-Charset")}}</li> + <li>{{HTTPHeader("Content-Disposition")}}</li> + <li>{{HTTPStatus("206")}} Partial Content</li> + <li>{{HTTPHeader("X-Content-Type-Options")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/cookie/index.html b/files/pt-br/web/http/headers/cookie/index.html new file mode 100644 index 0000000000..f768414cb1 --- /dev/null +++ b/files/pt-br/web/http/headers/cookie/index.html @@ -0,0 +1,75 @@ +--- +title: Cookie +slug: Web/HTTP/Headers/Cookie +tags: + - Cabeçalho de requisição + - Cookies + - HTTP + - Referencia + - cabeçalho + - requisição +translation_of: Web/HTTP/Headers/Cookie +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Cookie</code></strong> contém <a href="/en-US/docs/Web/HTTP/Cookies">cookies HTTP</a> armazenados anteriormente que foram enviados pelo servidor com o cabeçalho {{HTTPHeader("Set-Cookie")}}.</p> + +<p>O cabeçalho <code>Cookie</code> é opicional e pode ser omitido se, por exemplo, as configurações de privacidade do navegador bloqueiam <em>cookies</em>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Cookie: <cookie-list> +Cookie: name=value +Cookie: name=value; name2=value2; name3=value3</pre> + +<dl> + <dt><cookie-list></dt> + <dd>Uma lista de pares nome-valor na forma de <code><cookie-name>=<cookie-value></code>. Pares na lista são separados por ponto e vírgula e um espaço (<code>'; '</code>).</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Cookie: PHPSESSID=298zf09hf012fh2; csrftoken=u32t4o3tb3gg43; _gat=1;</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6265", "Cookie", "5.4")}}</td> + <td>HTTP State Management Mechanism</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_do_navegador">Compatibilidade do navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Cookie")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Set-Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/cookie2/index.html b/files/pt-br/web/http/headers/cookie2/index.html new file mode 100644 index 0000000000..416b0ae8ab --- /dev/null +++ b/files/pt-br/web/http/headers/cookie2/index.html @@ -0,0 +1,60 @@ +--- +title: Cookie2 +slug: Web/HTTP/Headers/Cookie2 +tags: + - Cabeçalho de requisição + - HTTP + - Obsoleto + - Referencia + - cabeçalho + - requisição +translation_of: Web/HTTP/Headers/Cookie2 +--- +<div>{{HTTPSidebar}} {{obsolete_header}}</div> + +<p>O obsoleto cabeçalho de requisição HTTP <strong><code>Cookie2</code></strong> costumava aconselhar o servidor que o agente de usuário entende <em>cookies</em> de "novo estilo", mas atualmente os agentes de usuário vão usar o cabeçalho {{HTTPHeader("Cookie")}} ao invés disso, não este.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Cookie2: $Version="1"</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("2965", "Cookie2")}}</td> + <td>Especificação histórica do HTTP State Management Mechanism, obsoleta pela {{RFC("6265")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Cookie2")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/cross-origin-resource-policy/index.html b/files/pt-br/web/http/headers/cross-origin-resource-policy/index.html new file mode 100644 index 0000000000..7b03c45837 --- /dev/null +++ b/files/pt-br/web/http/headers/cross-origin-resource-policy/index.html @@ -0,0 +1,76 @@ +--- +title: Cross-Origin-Resource-Policy +slug: Web/HTTP/Headers/Cross-Origin-Resource-Policy +tags: + - CORP + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Cross-Origin-Resource-Policy +--- +<div>{{HTTPSidebar}}</div> + +<div class="note"> +<p><strong>Nota:</strong> Devido a um <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1074261">bug no Chrome</a>, configurar Cross-Origin-Resource-Policy pode quebrar a renderização de PDF, impedindo visitantes de conseguir ler além da primeira página de alguns PDFs. Utilize com cuidado este cabeçalho em um ambiente de produção.</p> +</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Cross-Origin-Resource-Policy</code></strong> indica um desejo que o navegador bloqueie requisições que não sejam entre origens e/ou entre sites para um dado recurso.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Cross-Origin-Resource-Policy: same-site | same-origin | cross-origin +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<p>O cabeçalho de resposta abaixo pode causar a agentes de usuário compatíveis a desabilitar requisição que não sejam entre origens:</p> + +<pre>Cross-Origin-Resource-Policy: same-origin +</pre> + +<p>Para mais exemplos, veja <a href="https://resourcepolicy.fyi/">https://resourcepolicy.fyi/</a>.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + <tr> + <td>{{SpecName("Fetch", '#cross-origin-resource-policy-header')}}</td> + <td>{{Spec2("Fetch", '#cross-origin-resource-policy-header')}}</td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Cross-Origin-Resource-Policy")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Cross-Origin_Resource_Policy_(CORP)">Explicação da Cross-Origin Resource Policy (CORP)</a></li> + <li><a href="https://resourcepolicy.fyi/">Considere usar Cross-Origin Resource Policy</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/date/index.html b/files/pt-br/web/http/headers/date/index.html new file mode 100644 index 0000000000..cd3991f402 --- /dev/null +++ b/files/pt-br/web/http/headers/date/index.html @@ -0,0 +1,105 @@ +--- +title: Date +slug: Web/HTTP/Headers/Date +tags: + - Cabeçalho Geral + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Date +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho geral HTTP <strong><code>Date</code></strong> contém a data e a hora que a mensagem foi gerada.</p> + +<div class="blockIndicator warning"> +<p>Note que <code>Date</code> é listado em <a href="https://fetch.spec.whatwg.org/#forbidden-header-name" rel="nofollow noreferrer">nomes de cabeçalhos proibidos</a> na especificação do fetch - então este código não enviará o cabeçalho <code>Date</code>:</p> + +<pre class="brush: js notranslate">fetch('https://httpbin.org/get', { + 'headers': { + 'Date': (new Date()).toUTCString() + } +})</pre> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><day-name></dt> + <dd>Dia da semana, um de "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", ou "Sun" (sensível a capitalização). Segunda-feira até domingo em ordem.</dd> + <dt><day></dt> + <dd>Um dia em número de 2 dígitos, e.g. "04" ou "23".</dd> + <dt><month></dt> + <dd>Um de "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (sensível a capitalização). Os meses em ordem de Janeiro a Dezembro.</dd> + <dt><year></dt> + <dd>Um ano em número de 4 dígitos, e.g. "1990" ou "2016".</dd> + <dt><hour></dt> + <dd>Uma hora em número de 2 dígitos, e.g. "09" ou "23".</dd> + <dt><minute></dt> + <dd>Minutos em número de 2 dígitos, e.g. "04" ou "59".</dd> + <dt><second></dt> + <dd>Segundos em número de 2 dígitos, e.g. "04" ou "59".</dd> + <dt>GMT</dt> + <dd> + <p>Meridiano de Greenwich. Datas HTTP são sempre expressadas em GMT, nunca em tempo local.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Date: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<pre class="brush: js notranslate">new Date().toUTCString() +// "Mon, 09 Mar 2020 08:13:24 GMT"</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col"> + <div class="twocolumns"> + <p>Título</p> + </div> + </th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Date", "7.1.1.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Date")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Age")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/device-memory/index.html b/files/pt-br/web/http/headers/device-memory/index.html new file mode 100644 index 0000000000..73f2cc3185 --- /dev/null +++ b/files/pt-br/web/http/headers/device-memory/index.html @@ -0,0 +1,84 @@ +--- +title: Device-Memory +slug: Web/HTTP/Headers/Device-Memory +tags: + - Cabeçalho HTTP + - Client hints + - Device Memory API + - HTTP + - cabeçalho +translation_of: Web/HTTP/Headers/Device-Memory +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p>O cabeçalho <code><strong>Device-Memory</strong></code> é um cabeçalho da <a href="/en-US/docs/Web/API/Device_Memory_API">Device Memory API</a> que funciona como os cabeçalhos <a href="/en-US/docs/Glossary/Client_hints">Client Hints</a> que representão a quantidade aproximada de RAM que o dispositivo do cliente possui.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> Client Hints são acessíveis somente em origens seguras (via TLS). O servidor pode optar em receber o cabeçalho <code>Device-Memory</code> do cliente mandando os cabeçalhos de resposta {{HTTPHeader("Accept-CH")}} e {{HTTPHeader("Accept-CH-Lifetime")}}.</p> +</div> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>A quantidade de RAM no dispositivo pode ser usada como variável de pegada, The amount of device RAM can be used as a fingerprinting variable, então os valores para este cabeçalho são intencionalmente grosseiros para reduzir potenciais usos indesejados. O cabeçalho pode ter os seguintes valores: <code>0.25</code>, <code>0.5</code>, <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>.</p> + +<pre class="syntaxbox notranslate">Device-Memory: <number> +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<p>O servidor precisa primeiro optar por aceitar o cabeçalho <code>Device-Memory</code> mandando os cabeçalhos de resposta {{HTTPHeader("Accept-CH")}} contendo <code>Device-Memory</code> e {{HTTPHeader("Accept-CH-Lifetime")}}.</p> + +<pre class="notranslate">Accept-CH: Device-Memory +Accept-CH-Lifetime: 86400 +</pre> + +<p>Então nas requisições subsequentes, o cliente enviará o cabeçalho <code>Device-Memory</code> de volta:</p> + +<pre class="notranslate">Device-Memory: 1 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName("Device Memory","#sec-device-memory-client-hint-header","Device-Memory")}}</td> + <td>{{Spec2('Device Memory')}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Device-Memory")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Device_Memory_API">Device Memory API</a></li> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> + <li>{{DOMxRef("Navigator.deviceMemory")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/digest/index.html b/files/pt-br/web/http/headers/digest/index.html new file mode 100644 index 0000000000..726ec7a328 --- /dev/null +++ b/files/pt-br/web/http/headers/digest/index.html @@ -0,0 +1,90 @@ +--- +title: Digest +slug: Web/HTTP/Headers/Digest +tags: + - Cabeçalho HTTP + - HTTP +translation_of: Web/HTTP/Headers/Digest +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <code><strong>Digest</strong></code> provém uma {{Glossary("digest")}} do recurso requisitado.</p> + +<p>Nos termos da <a href="https://tools.ietf.org/html/rfc7231">RFC 7231</a> esta é a <em>representação selecionada</em> de um recurso. A representação selecionada depende dos valores dos cabeçalhos <code><a href="/en-US/docs/Web/HTTP/Headers/Content-Type">Content-Type</a></code> e <code><a href="/en-US/docs/Web/HTTP/Headers/Content-Encoding">Content-Encoding</a></code>: então um único recurso pode ter diversos valores de "digestão".</p> + +<p>A "digestão" é calculada através da representação inteira. A representação em si pode ser:</p> + +<ul> + <li>totalmente contida no corpo da mensagem de resposta</li> + <li>não contida no corpo da mensagem (por exemplo, na resposta para uma requisição <code><a href="/en-US/docs/Web/HTTP/Methods/HEAD">HEAD</a></code>)</li> + <li>parcialmente contido no corpo da mensagem (por exemplo, em uma resposta para uma <a href="/en-US/docs/Web/HTTP/Range_requests">requisição de intervalo</a>).</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo do cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Digest: <digest-algorithm>=<digest-value> + +Digest: <digest-algorithm>=<digest-value>,<digest-algorithm>=<digest-value> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><digest-algorithm></code></dt> + <dd>Algoritmos de digestão suportados são definidos na <a href="https://tools.ietf.org/html/rfc3230">RFC 3230</a> e <a href="https://tools.ietf.org/html/rfc5843">RFC 5843</a>, e incluem <code>SHA-256</code> e <code>SHA-512</code>. Alguns dos algoritmos suportados, incluindo <code>unixsum</code> e <code>MD5</code> são sujeitos a colisões e não são recomendados para aplicações onde resistência à colisções é importante.</dd> + <dt><code><digest-value></code></dt> + <dd>O resultado de aplicação do algoritmo de digestão na representação do recurso e codificando o resultado. A escolha do algoritmo de digestão também determina a codificação a ser usada: por exemplo <code>SHA-256</code> usa codificação <em>base64</em>.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="syntaxbox notranslate">Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE= +Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=,unixsum=30637</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a class="smpl" href="https://datatracker.ietf.org/doc/draft-ietf-httpbis-digest-headers">draft-ietf-httpbis-digest-headers-latest</a></p> + </td> + <td>Resource Digests for HTTP</td> + </tr> + </tbody> +</table> + +<p>Este cabeçalho foi originalmente definido na <a href="https://tools.ietf.org/html/rfc3230">RFC 3230</a>, mas a definição de "representação selecionada" na <a href="https://www.rfc-editor.org/info/rfc7231">RFC 7231</a> fez com que a definição original ficasse inconsistente com as especificações atuais do HTTP. Quando lançado, o rascunho de "Digestão de recursos para HTTP" tornará a RFC 3230 obsoleta e atualizará o padrão para ser consistente.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Digest")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Want-Digest")}}</li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests">Requisições de intervalo HTTP</a></li> + <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206" title="The HTTP 206 Partial Content success status response code indicates that the request has succeeded and has the body contains the requested ranges of data, as described in the Range header of the request."><code>206 Partial Content</code></a></li> +</ul> diff --git a/files/pt-br/web/http/headers/dnt/index.html b/files/pt-br/web/http/headers/dnt/index.html new file mode 100644 index 0000000000..5088fdf2c1 --- /dev/null +++ b/files/pt-br/web/http/headers/dnt/index.html @@ -0,0 +1,88 @@ +--- +title: DNT +slug: Web/HTTP/Headers/DNT +tags: + - DNT + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/DNT +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição <strong><code>DNT</code></strong> (<strong>D</strong>o <strong>N</strong>ot <strong>T</strong>rack) indica a preferência do usuário de permitir ser "seguido". Ele indica se o usuário prefere privacidade ao invés de conteúdo personalizado.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">DNT: 0 +DNT: 1 +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>0</dt> + <dd>O usuário prefere <strong>permitir</strong> ser seguido no site alvo.</dd> + <dt>1</dt> + <dd>O usuário prefere <strong>não permitir</strong> ser seguido no site alvo.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Lendo_status_Do_Not_Track_status_do_JavaScript">Lendo status Do Not Track status do JavaScript</h3> + +<p>A preferência DNT do usuário também pode ser lida do JavaScript usando a propriedade {{domxref("Navigator.doNotTrack")}}:</p> + +<pre class="brush: js">navigator.doNotTrack; // "0" or "1"</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + <tr> + <td>{{SpecName('Tracking','#dnt-header-field', 'DNT Header Field for HTTP Requests')}}</td> + <td>{{Spec2("Tracking")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.DNT")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{domxref("Navigator.doNotTrack")}}</li> + <li>Cabeçalho {{HTTPHeader("Tk")}}</li> + <li><a href="https://en.wikipedia.org/wiki/Do_Not_Track">Do Not Track no Wikipedia</a></li> + <li><a href="https://www.eff.org/deeplinks/2011/02/what-does-track-do-not-track-mean">What Does the "Track" in "Do Not Track" Mean? – EFF</a></li> + <li><a href="https://donottrack.us/">donottrack.us</a></li> + <li>Ajuda das configurações DNT dos navegadores: + <ul> + <li><a href="https://www.mozilla.org/en-US/firefox/dnt/">Firefox</a></li> + <li><a href="https://support.google.com/chrome/answer/2790761">Chrome</a></li> + </ul> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/dpr/index.html b/files/pt-br/web/http/headers/dpr/index.html new file mode 100644 index 0000000000..f159528f85 --- /dev/null +++ b/files/pt-br/web/http/headers/dpr/index.html @@ -0,0 +1,63 @@ +--- +title: DPR +slug: Web/HTTP/Headers/DPR +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - Client hints + - DPR + - HTTP +translation_of: Web/HTTP/Headers/DPR +--- +<div>{{HTTPSidebar}}{{securecontext_header}}{{SeeCompatTable}}</div> + +<p>O cabeçalho <code><strong>DPR</strong></code> é um cabeçalho de requisição <em><a href="/en-US/docs/Glossary/Client_hints">Client Hints</a></em> que representa a razão de pixeis do dispositivo do cliente, por isso ({{Glossary("DPR")}})(<em>device pixel ratio</em>), que é o número de pixeis físicos do dispositivo correspondendo a cada pixel CSS.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>?</td> + </tr> + </tbody> +</table> + +<div class="blockIndicator note"> +<p><strong>Nota:</strong> <em>Client Hints</em> são acessíveis somente em origens seguras (via TLS). Servidor deve optar em receber um cabeçalho <code>DPR</code> do cliente enviando cabeçalhos de resposta {{HTTPHeader("Accept-CH")}} e {{HTTPHeader("Accept-CH-Lifetime")}}.</p> +</div> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">DPR: <number> +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<p>O servidor primeiro optar por receber o cabeçalho <code>DPR</code> enviando os cabeçalhos de resposta {{HTTPHeader("Accept-CH")}} contendo <code>DPR</code> e {{HTTPHeader("Accept-CH-Lifetime")}}.</p> + +<pre>Accept-CH: DPR +Accept-CH-Lifetime: 86400 +</pre> + +<p>Então as requisições subsequentes do cliente podem enviar o cabeçalho <code>DPR</code> de volta:</p> + +<pre>DPR: 1.0 +</pre> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.DPR")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-CH")}}</li> + <li>{{HTTPHeader("Accept-CH-Lifetime")}}</li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/early-data/index.html b/files/pt-br/web/http/headers/early-data/index.html new file mode 100644 index 0000000000..1c68eea70c --- /dev/null +++ b/files/pt-br/web/http/headers/early-data/index.html @@ -0,0 +1,63 @@ +--- +title: Early-Data +slug: Web/HTTP/Headers/Early-Data +tags: + - Cabeçalho HTTP + - Client hints + - HTTP + - cabeçalho + - requisição +translation_of: Web/HTTP/Headers/Early-Data +--- +<div>{{SeeCompatTable}}{{HTTPSidebar}}</div> + +<p><span class="seoSummary">O cabeçalho <code><strong>Early-Data</strong></code> é colocado por um intermediário para indicar que a requisição foi transportada em <a href="/en-US/docs/Web/Security/Transport_Layer_Security#TLS_1.3">dados precoces do TLS (TLS <em>early data</em>)</a>, e também indica que o intermediário entende o código de status {{HTTPStatus("425", "425 (Too Early)")}}.</span></p> + +<p>O cabeçalho <code>Early-Data</code> <strong>não é</strong> definido pelo gerador da requisição (i.e., um navegador).</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sitnaxe">Sitnaxe</h2> + +<pre class="syntaxbox notranslate">Early-Data: 1 +</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">GET /resource HTTP/1.0 +Host: example.com +Early-Data: 1</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("8470", "The Early-Data Header Field", "5.1")}}</td> + <td>Using Early Data in HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Early-Data")}}</p> diff --git a/files/pt-br/web/http/headers/etag/index.html b/files/pt-br/web/http/headers/etag/index.html new file mode 100644 index 0000000000..008533f2ec --- /dev/null +++ b/files/pt-br/web/http/headers/etag/index.html @@ -0,0 +1,107 @@ +--- +title: ETag +slug: Web/HTTP/Headers/ETag +tags: + - Cache + - ETag + - HTTP + - Response + - Trafego + - header +translation_of: Web/HTTP/Headers/ETag +--- +<div>{{HTTPSidebar}}</div> + +<p>O HTTP provê no cabeçalho (header) da resposta (response), a <strong><code>ETag</code></strong> que é um identificador para uma versão específica de um recurso. A ETag permite que o cache torne-se mais eficiente e preserve o tráfego de dados (largura de banda), assim um web server não precisa reenviar uma resposta com todos os dados que não tiveram nenhuma mudança em seu conteúdo. Além disso, as ETags ajudam a impedir que atualizações simultâneas de um recurso sejam feitas por outros. Veja sobre (<a href="#Caching_of_unchanged_resources">"mid-air collisions"</a>).</p> + +<p>Se o recurso numa URL sofre mudança, a <code>Etag</code> assume um novo valor que deve ser gerado pelo Web Server. Uma comparação entre elas podem determinar se as duas representações do recurso são iguais. Etags são similares às nossas impressões digitais, e por isso também podem ser usadas por alguns servidores como um forma de rastreamento. Elas podem ser configuradas a fim de que possam ser persistidas idenfinidamente por um servidor de rastreamento.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">ETag: W/"<etag_value>" +ETag: "<etag_value>" +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>W/</code> {{optional_inline}}</dt> + <dd><code>'W/'</code> (case-sensitive) Indica que um validador fraco está sendo usado (veja mais em <a href="/en-US/docs/Web/HTTP/Conditional_requests#Weak_validation">weak validator</a>). <em>Etags Fracas</em> são fáceis de serem geradas, mas possuem a desvantagem de serem menos usadas para comparações. <em>Validadores Fortes</em> são ideais para comparações mas podem ser muito difíceis de serem gerados de uma forma eficaz. Os valores de uma Etag Fraca para duas representações de um único recurso podem ser equivalentes semanticamente, contudo não são idênticas em byte-for-byte. Isto significa que etags fracas impedem o cache efetivo quando requisições dentro de um intervalo de bytes são realizadas (veja mais em <a href="/en-US/docs/Web/HTTP/Headers/Accept-Ranges">byte range requests</a> ), ao passo que etags fortes permitem que um intervalo de requisições aindam possam ser preservadas no cache.</dd> + <dt>"<etag_value>"</dt> + <dd>Tag na Entidade que possui valor único o qual está representando o recurso requisitado. O valor será do tipo string com caracteres em ASCII que será exibido dentro de aspas duplas, como pode se vê ao lado <code>"675af34563dc-tr34"</code>. O método por qual o valor da <code>ETag</code> foi gerado não está especificado. Frequentemente, uma hash do conteúdo, uma hash da última modificação ou somente um número de revisão é usado. Por exemplo o MDN usa uma hash hexadecimal para o conteúdo do artigo da wiki.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" +ETag: W/"0815"</pre> + +<h3 id="Fugindo_de_ediçoes_simultâneas">Fugindo de ediçoes simultâneas</h3> + +<p>Com a ajuda da <code>ETag</code> e o cabeçalho {{HTTPHeader("If-Match")}} (<em>headers</em>), você pode detectar choque de edições simultânes.</p> + +<p>Por exemplo, quando editamos o MDN, o conteúdo atual da wiki é criptografado e colocado dentro de uma <code>Etag</code> da resposta (response). </p> + +<pre class="notranslate">ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>Quando salvamos as mudanças para a página da wiki, (posting data), a requisição {{HTTPMethod("POST")}} conterá o cabeçalho {{HTTPHeader("If-Match")}} contendo o valor da <code>ETag</code> para checar a atualização.</p> + +<pre class="notranslate">If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>Se o hash não for compatível, isto significa que o documento foi editado durante determinado intervalo e uma resposta com o status {{HTTPStatus("412")}} <code>Precondition Failed</code> será enviada ao cliente.</p> + +<h3 id="Armazenando_recursos_sem_alterações.">Armazenando recursos sem alterações.</h3> + +<p>Outro uso típico de cabeçalho (header) com a <code>ETag</code> é para guardar recursos que não foram alterados. Se um usuário visitar um recurso dado por uma URL de novo, (é necessaíro ter a <code>ETag</code> configurada), e ele deseja saber se está obsoleto (<em>stale) </em>(ou antigo para ser considerado como utilizável), o cliente enviará o valor da sua <code>ETag</code> por meio de um atributo no cabeçalho {{HTTPHeader("If-None-Match")}}, veja o exemplo abaixo:</p> + +<pre class="notranslate">If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</pre> + +<p>O servidor irá comparar a <code>ETag</code> do cliente (enviada com <code>If-None-Match</code>) com a versão da <code>ETag</code> disponível para o recurso, e se ambos os valores forem compatíveis (isto é, o recurso não foi modificado), o servidor enviará de volta a resposta com status {{HTTPStatus("304")}} <code>Sem Modificação (Not modified)</code>, porém sem um body, comunicando ao cliente que a versão guardada na resposta ainda está atualizada (ou boa para uso, <em>fresh</em>).</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "ETag", "2.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_Navegadores">Compatibilidade de Navegadores</h2> + +<div class="hidden">A tabela de compatibilidade nesta página é gerada de uma estrutura de dados. Se você gostaria de contribuir, por favor, cheque nosso repositório no GitHub <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envia-nos um pull request.</div> + +<p>{{Compat("http.headers.ETag")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> + <li> + <p><a href="https://www.w3.org/1999/04/Editing/">W3C Note: Editing the Web – Detecting the Lost Update Problem Using Unreserved Checkout</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/expect-ct/index.html b/files/pt-br/web/http/headers/expect-ct/index.html new file mode 100644 index 0000000000..35c9b64d02 --- /dev/null +++ b/files/pt-br/web/http/headers/expect-ct/index.html @@ -0,0 +1,110 @@ +--- +title: Expect-CT +slug: Web/HTTP/Headers/Expect-CT +tags: + - Certificados + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Expect-CT +--- +<p>{{HTTPSidebar}}</p> + +<p><span class="seoSummary">O cabeçalho <code>Expect-CT</code> deixa sites optarem em reportar e/ou forçar requirimentos do <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificado de Transparência</a>, para previnir o uso incorreto de certificados do site passar despercebido.</span></p> + +<p>Os requerimentos do CT podem ser satisfeitos utilizando qualquer um dos seguintes mecanismos:</p> + +<ul> + <li>A extensão do certificado X.509v3 permite embebedar uma marcação de data e hora de certificados assinados reportados por <em>logs</em> individuais.</li> + <li>A extensão TLS do tipo <code>signed_certificate_timestamp</code> enviada durante um <em>handshake</em>.</li> + <li>Dando suporte a OCSP (que é, a extensão TLS <code>status_request</code>) e provendo uma <code>SignedCertificateTimestampList</code></li> +</ul> + +<div class="note"> +<p>Quando um site habilita o cabeçalho <code>Expect-CT</code>, ele está requisitando que o navegador verifique se qualquer certificado para aquele site aparece em <strong><a href="https://www.certificate-transparency.org/known-logs"><em>logs</em> CT públicos </a></strong>.</p> +</div> + +<div class="note"> +<p><strong>Navegadores ignoram</strong> o cabeçalho <code>Expect-CT</code> através do HTTP; o cabeçalho só tem efeito em conexões HTTPS.</p> +</div> + +<div class="note"> +<p>O <code>Expect-CT</code> provavelmente se tornará obsoleto em Junho de 2021. Desde Maio de 2018, esperasse que novos certificados suportem SCTs por padrão. Certificados de antes de Maio de 2018 eram permitidos ter uma vida útil de 39 meses, todos eles serão expirados em Junho de 2021.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="notranslate">Expect-CT: report-uri="<uri>", + enforce, + max-age=<age></pre> + +<h2 id="Diretivas"> Diretivas</h2> + +<dl> + <dt><code>max-age</code></dt> + <dd> + <p>O número de segundos depois da recepção do cabeçalho <code>Expect-CT</code> durante o qual o agente de usuário deve identificar o hospedeiro da mensagem recebida como um hospedeiro <code>Expect-CT</code> conhecido.</p> + + <p>Se o cache receber um valor maior do que ele pode representar, or se qualquer um dos seus cálculos subsequentes estourar o limite, o cache vai considerar este valor a ser 2,147,483,648 (2<sup>31</sup>) ou o maior inteiro positivo que ele pode representar.</p> + </dd> + <dt><code>report-uri="<uri>"</code> {{optional_inline}}</dt> + <dd> + <p>A URI onde o agente de usuário deve reportar falhas <code>Expect-CT</code>.</p> + Quando presente com a diretiva <code>enforce</code>, a configuração é referida como uma configuração "executar-e-reportar", sinalizando ao agente de usuário<em> </em>que ambos o <em>compliance</em> da política do Certificado de Transparência deve ser executado <em>e</em> que as violações devem ser reportadas.</dd> + <dt><code>enforce</code> {{optional_inline}}</dt> + <dd> + <p>Sinais ao agente do usuário que conforme a política do Certificado de Transparência deve ser executada (ao invés de somente ser reportada) e o agente de usuário deve recusar futuras conexões que violem a política do Certificado de Transparência.</p> + + <p>Quando ambas as diretivas <code>enforce</code> e <code>report-uri</code> estiverem presentes, configuração é referida como uma configuração "executar-e-reportar", sinalizando ao agente de usuário<em> </em>que ambos o <em>compliance</em> da política do Certificado de Transparência deve ser executado <em>e</em> que as violações devem ser reportadas.</p> + </dd> +</dl> + +<h2 id="Exemplo">Exemplo</h2> + +<p>O seguinte exemplo especifica uma execução do Certificado de Transparência por 24 horas e reporta violações para <code>foo.example</code>.</p> + +<pre class="notranslate">Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report"</pre> + +<h2 id="Notas">Notas</h2> + +<p>Certificados de Autoridade Raiz (<em>Root CAs</em>) manualmente adicionados para a loja de confiança, sobrescrevendo e suprimindo relatórios e execuções do <code>Expect-CT</code>.</p> + +<p>Navegadores não vão lembrar de uma política <code>Expect-CT</code>, a menos que o site tenha "provado" que ele pode servir um certificado satisfazendo os requerimentos do certificado de transparência. Navegadores implementam seus próprios modelos em relação a quais <em>logs</em> CT são considerados confiáveis para o certificado logar.</p> + +<p>Versões do Chrome são desenvolvidas para parar execução de políticas de <code>Expect-CT</code> 10 semanas depois da data de instalação da versão.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-08">Internet Draft</a></td> + <td>Expect-CT Extension for HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Expect-CT")}}</p> diff --git a/files/pt-br/web/http/headers/expect/index.html b/files/pt-br/web/http/headers/expect/index.html new file mode 100644 index 0000000000..3b12acecda --- /dev/null +++ b/files/pt-br/web/http/headers/expect/index.html @@ -0,0 +1,96 @@ +--- +title: Expect +slug: Web/HTTP/Headers/Expect +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia +translation_of: Web/HTTP/Headers/Expect +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Expect</code></strong> indica expectativas que precisão ser cumpridas pelo servidor para lidar com a requisição apropriadamente.</p> + +<p>A única expectativa definida na especificação é <code>Expect: 100-continue</code>, para qual o servidor deve responder com:</p> + +<ul> + <li>{{HTTPStatus("100")}} se a informação contida no cabeçalho é suficiente para causar sucesso imediato,</li> + <li>{{HTTPStatus("417")}} (Expectativa Falhou) se ele não pode se comprometer com a expectativa; ou qualquer outro código de status 4xx caso contrário.</li> +</ul> + +<p>Por exemplo, o servidor pode rejeitar a requisição se o cabeçalho {{HTTPHeader("Content-Length")}} for muito grande.</p> + +<p>Navegadores comuns não enviam um cabeçalho <code>Expect</code>, mas alguns clientes como o cURL fazem isso por padrão.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>Nenhuma outra expectativa exceto "100-continue" foi especificada atualmente.</p> + +<pre class="syntaxbox notranslate">Expect: 100-continue +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>100-continue</dt> + <dd>Informa os receptores que o cliente está para mandar uma mensagem com corpo (presumidamente grande) na requisição e deseja receber um código de status {{HTTPStatus("100")}} (Continue) como resposta interina.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Mensagem_de_corpo_grande">Mensagem de corpo grande</h3> + +<p>Um cliente envia uma requisição com cabeçalho Expect e aguarda a resposta do servidor antes de mandar o corpo da mensagem.</p> + +<pre class="notranslate">PUT /somewhere/fun HTTP/1.1 +Host: origin.example.com +Content-Type: video/h264 +Content-Length: 1234567890987 +Expect: 100-continue +</pre> + +<p>O servidor checa os cabeçalhos da requisição e responde com uma resposta {{HTTPStatus("100")}} (Continue) para instruir o cliente a continuar e enviar o corpo da mensagem, ou ele irá mandar um código de status {{HTTPStatus("417")}} (Expectativa Falhou) se qualquer uma das expectativas não pode ser cumprida.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Expect", "5.1.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Expect")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPStatus("417")}}<code> Expectation Failed</code></li> + <li>{{HTTPStatus("100")}}<code> Continue</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/expires/index.html b/files/pt-br/web/http/headers/expires/index.html new file mode 100644 index 0000000000..f3e9a073f2 --- /dev/null +++ b/files/pt-br/web/http/headers/expires/index.html @@ -0,0 +1,77 @@ +--- +title: Expires +slug: Web/HTTP/Headers/Expires +tags: + - Cabeçalhos +translation_of: Web/HTTP/Headers/Expires +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <code><strong>Expires</strong></code> contém a data/hora após a qual a resposta é considerada velha.</p> + +<p>Datas inválidas, como o valor 0, representam uma data no passado e significam que o recurso já expirou.</p> + +<p>Se existe um cabeçalho {{HTTPHeader("Cache-Control")}} com a diretiva "max-age" ou "s-maxage" na resposta, o cabeçalho <code>Expires</code> é ignorado.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de Header</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Expires: <http-date> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><http-date></dt> + <dd> + <p>Ums data/hora HTTP-date.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Expires: Wed, 21 Oct 2015 07:28:00 GMT</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7234", "Expires", "5.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Expires")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Age")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/feature-policy/index.html b/files/pt-br/web/http/headers/feature-policy/index.html new file mode 100644 index 0000000000..f432989f48 --- /dev/null +++ b/files/pt-br/web/http/headers/feature-policy/index.html @@ -0,0 +1,163 @@ +--- +title: Feature-Policy +slug: Web/HTTP/Headers/Feature-Policy +tags: + - Autorização + - Experimental + - Feature-Policy + - HTTP + - Permissões + - Política de Funcionalidade + - Referencia + - Segurança + - Web + - cabeçalho +translation_of: Web/HTTP/Headers/Feature-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">O cabeçalho HTTP <strong><code>Feature-Policy</code></strong> provém um mecanismo para permitir ou proibir o uso de funcionalidades do navegador no seu próprio enquadramento, e o conteúdo dentro de quaisquer elementos {{HTMLElement("iframe")}} no documento.</span></p> + +<div class="note"> +<p>Este cabeçalho ainda está em estado experimental, e é sujeito a mudança a qualquer momento. Tenha cautela quando implementando isso no seu site. O cabeçalho agora foi renomeado para <code>Permissions-Policy</code> na especificação, e este artigo irá eventualmente ser atualizado para refletir estas atualizações.</p> +</div> + +<p>Para mais informação, veja o artigo principal <a href="/docs/Web/HTTP/Feature_Policy">Policy Feature</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Feature-Policy: <directive> <allowlist></pre> + +<dl> + <dt><code><directive></code></dt> + <dd>A diretiva Feature Policy que irá aplicar a <code>allowlist</code>. Veja {{anch("Diretivas")}} abaixo para a lista de nomes de diretivas.</dd> + <dt><code><allowlist></code></dt> + <dd>{{page("Web/HTTP/Feature_Policy/Using_Feature_Policy", "allowlist")}}</dd> +</dl> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>{{httpheader('Feature-Policy/accelerometer','accelerometer')}}</dt> + <dd>Controla se o documento atual é permitido de coletar informação sobre a aceleração do dispositivo através da interface {{DOMxRef("Accelerometer")}}.</dd> + <dt>{{httpheader('Feature-Policy/ambient-light-sensor','ambient-light-sensor')}}</dt> + <dd>Controla se o documento atual é permitido de coletar informação sobre a quantidade de luz no ambiente ao redor do dispositivo através da interface {{DOMxRef("AmbientLightSensor")}}.</dd> + <dt>{{httpheader('Feature-Policy/autoplay','autoplay')}}</dt> + <dd>Controla se o documento atual é permitido de tocar a mídia requisitada automaticamente através da interface {{domxref("HTMLMediaElement")}}. Quando esta política é desabilitada e não há ação do usuário, o {{domxref("Promise")}} returnado pelo {{domxref("HTMLMediaElement.play()")}} irá rejeitar com uma {{domxref("DOMException")}}. O atributo <em>autoplay </em>em elementos {{HTMLELement("audio")}} e {{HTMLElement("video")}} será ignorado.</dd> + <dt>{{httpheader('Feature-Policy/battery','battery')}}</dt> + <dd>Controla se o uso da <a href="/docs/Web/API/Battery_Status_API">API de Status de Bateria</a> é permitido. Quando esta política está desabilitada, o {{JSxRef("Promise")}} returnado pelo{{DOMxRef("Navigator.getBattery","Navigator.getBattery()")}} irá rejeitar com um {{DOMxRef("NotAllowedError")}} {{DOMxRef("DOMException")}}.</dd> + <dt>{{httpheader('Feature-Policy/camera', 'camera')}}</dt> + <dd>Controla se o documento atual é permitido de usar entradas de dispositivos de vídeo. Quando esta política está desabilitada, o {{jsxref("Promise")}} returnado pelo {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}} irá rejeitar com um {{DOMxRef("NotAllowedError")}} {{DOMxRef("DOMException")}}.</dd> + <dt>{{HTTPHeader('Feature-Policy/display-capture', 'display-capture')}}</dt> + <dd>Controla se o documento atual é permitido ou não de usar o método {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}} para capturar conteúdos de tela. Quando esta política está desabilitada, a {{jsxref("Promise")}} retornada pelo <code>getDisplayMedia()</code> irá rejeitar com um <code>NotAllowedError</code> se a permissão não for obtida para capturar os conteúdos da tela.</dd> + <dt>{{httpheader('Feature-Policy/document-domain','document-domain')}}</dt> + <dd>Controle se o documento atual é permitido de colocar {{domxref("document.domain")}}. Quando esta política está desabilitada, tentativas em colocar {{domxref("document.domain")}} irão falhar e causar uma {{DOMxRef("SecurityError")}} {{domxref("DOMException")}} a ser jogada.</dd> + <dt>{{httpheader('Feature-Policy/encrypted-media', 'encrypted-media')}}</dt> + <dd>Controla se o documento atual é permitido de usar a API <a href="/en-US/docs/Web/API/Encrypted_Media_Extensions_API">Extensões de Mídias Encriptadas (<em>Encrypted Media Extensions</em>)</a> (EME). Quando esta política é desabilitada, a {{domxref("Promise")}} returnada pelo {{domxref("Navigator.requestMediaKeySystemAccess()")}} irá rejeitar com um {{domxref("DOMException")}}.</dd> + <dt>{{httpheader('Feature-Policy/execution-while-not-rendered', 'execution-while-not-rendered')}}</dt> + <dd>Controla se as tarefas devem ser executadas em enquadramentos enquanto não são renderizados (e.g. se um enquadramento é <code><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/hidden">hidden</a></code> ou <code>display: none</code>).</dd> + <dt>{{httpheader('Feature-Policy/execution-while-out-of-viewport', 'execution-while-out-of-viewport')}}</dt> + <dd>Controla se as tarefas devem ser executadas em enquadramentos enquanto eles estão fora da janela de visualização visível.</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/fullscreen','fullscreen')}}</dt> + <dd>Controla se o documento atual é permitido de usar {{DOMxRef("Element.requestFullScreen()")}}. Quando esta política está desabilitada, a {{JSxRef("Promise")}} retornada rejeita com um {{JSxRef("TypeError")}} {{DOMxRef("DOMException")}}.</dd> + <dt>{{httpheader('Feature-Policy/geolocation','geolocation')}}</dt> + <dd>Controla se o documento atual é permitido de usar a interface {{domxref('Geolocation')}}. Quando a política está desabilitada, chamadas para {{domxref('Geolocation.getCurrentPosition','getCurrentPosition()')}} e {{domxref('Geolocation.watchPosition','watchPosition()')}} irão causar aos <em>callbacks</em> da funções serem invocados com um {{domxref('PositionError')}} de <code>PERMISSION_DENIED</code>.</dd> + <dt>{{httpheader('Feature-Policy/gyroscope','gyroscope')}}</dt> + <dd>Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface {{DOMxRef("Gyroscope")}}.</dd> + <dt>{{httpheader('Feature-Policy/layout-animations','layout-animations')}}</dt> + <dd>Controla se o documento atual é permitido de mostrar animações de <em>layout</em>.</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/legacy-image-formats','legacy-image-formats')}}</dt> + <dd>Controla se o documento atual é permitido de mostrar imagens em formatos legados.</dd> +</dl> + +<dl> + <dt>{{httpheader('Feature-Policy/magnetometer','magnetometer')}}</dt> + <dd>Controla se o documento atual é permitido de coletar informação sobre a orientação do dispositivo através da interface {{DOMxRef("Magnetometer")}}.</dd> + <dt>{{httpheader('Feature-Policy/microphone','microphone')}}</dt> + <dd>Controla se o documento atual é permitido de usar entradas de dispositivos de áudio. Quando esta política está desabilitada, a {{jsxref("Promise")}} returnada pelo {{domxref("MediaDevices.getUserMedia()")}} irá rejeitar com um <code>NotAllowedError</code>.</dd> + <dt>{{httpheader('Feature-Policy/midi', 'midi')}}</dt> + <dd>Controla se o documento atual é permitido de usar a <a href="/en-US/docs/Web/API/Web_MIDI_API">API Web MIDI</a>. Quando esta política está desabilitada, a {{jsxref("Promise")}} returnada pelo {{domxref("Navigator.requestMIDIAccess()")}} irá rejeitar com um {{domxref("DOMException")}}.</dd> + <dt>{{httpheader('Feature-Policy/navigation-override','navigation-override')}}</dt> + <dd>Controla a disponibilidade de mecanismos que habilitam o autor da página a tomar controle sobre o comportamento da <a href="https://www.w3.org/TR/css-nav/">navegação espacial (spatial navigation)</a>, ou cancelar completamente.</dd> + <dt>{{httpheader('Feature-Policy/oversized-images','oversized-images')}}</dt> + <dd>Controla se o documento atual é permitido de baixar e mostrar imagens grandes.</dd> + <dt>{{httpheader('Feature-Policy/payment', 'payment')}}</dt> + <dd>Controla se o documento atual permite o uso da <a href="/en-US/docs/Web/API/Payment_Request_API">API de Requisição de Pagamento (<em>Payment Request API</em>)</a>. Quando esta política está desabilitada, o construtor {{domxref("PaymentRequest","PaymentRequest()")}} irá jogar um <code>SecurityError</code> {{domxref("DOMException")}}.</dd> + <dt>{{httpheader('Feature-Policy/picture-in-picture', 'picture-in-picture')}}</dt> + <dd>Controla se o documento atual permite que um vídeo seja permitido tocar no modo <em>Picture-in-Picture</em> através da API correspondente.</dd> + <dt>{{httpheader("Feature-Policy/publickey-credentials-get", "publickey-credentials-get")}}</dt> + <dd>Controla se o documento atual é permitido de usar a <a href="/en-US/docs/Web/API/Web_Authentication_API">API de Autenticação Web</a> para resgatar credenciais de chave pública já guardadas, i.e. através do {{domxref("CredentialsContainer.get","navigator.credentials.get({publicKey: ..., ...})")}}.</dd> + <dt>{{httpheader('Feature-Policy/sync-xhr', 'sync-xhr')}}</dt> + <dd>Controla se o documento atual é permitido de fazer requisições síncronas {{DOMxRef("XMLHttpRequest")}}.</dd> + <dt>{{httpheader('Feature-Policy/usb', 'usb')}}</dt> + <dd>Controla se o documento atual é permitido de usar a <a href="https://wicg.github.io/webusb/">API WebUSB</a>.</dd> + <dt>{{httpheader('Feature-Policy/vr', 'vr')}} {{deprecated_inline}}</dt> + <dd>Controla se o documento atual é permitido de usar a <a href="/en-US/docs/Web/API/WebVR_API">API WebVR</a>. Quando esta política é desabilitada, o {{jsxref("Promise")}} returnado pelo {{domxref("Navigator.getVRDisplays","Navigator.getVRDisplays()")}} irá rejeitar com um {{domxref("DOMException")}}. Tenha em mente que o padrão WebVR está em processo de ser substituído pelo <a href="/en-US/docs/Web/API/WebXR_Device_API">WebXR</a>.</dd> + <dt>{{httpheader('Feature-Policy/wake-lock', 'wake-lock')}}</dt> + <dd>Controla se o documento atual é permitido de usar a <a href="https://www.w3.org/TR/wake-lock/">API Wake Lock</a> para indicar que o dispositivo não deve entrar em modo de economia de energia.</dd> + <dt>{{httpheader('Feature-Policy/screen-wake-lock', 'screen-wake-lock')}}</dt> + <dd>Controla se o documento atual é permitido de utilizar a <a href="/en-US/docs/Web/API/Screen_Wake_Lock_API">API Screen Wake Lock</a> para indicar se o dispositivo deve ou não escurecer a tela.</dd> + <dt>{{httpheader("Feature-Policy/xr-spatial-tracking", "xr-spatial-tracking")}}</dt> + <dd>Controla se o documento atual é permitido ou não de usar a <a href="/en-US/docs/Web/API/WebXR_Device_API">API WebXR Device</a> para intergir com a sessão WebXR.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>SecureCorp Inc. quer desabilitar o Microfone e as APIs de Geolocalização em sua aplicação. Isso pode ser feito entregando o seguinte cabeçalho de resposta HTTP para definir a política de funcionalidade:</p> + +<pre class="notranslate">Feature-Policy: microphone 'none'; geolocation 'none'</pre> + +<p>Especificando a palavra-chave <code>'none'</code> para a lista de origem, as funcionalidades especificadas serão desabilitadas para todos os contextos de navegaçnao (incluindo todos os <em>iframes</em>), independente da origem.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName("Feature Policy","#permissions-policy-http-header-field","Permissions-Policy")}}</td> + <td>{{Spec2("Feature Policy")}}</td> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p>{{Compat("http.headers.Feature-Policy")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Feature_Policy">Feature Policy</a></li> + <li><a href="/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy">Usando Feature Policy</a></li> + <li>{{DOMxRef("Document.featurePolicy")}} and {{DOMxRef("FeaturePolicy")}}</li> + <li><a class="external external-icon" href="https://chrome.google.com/webstore/detail/feature-policy-tester-dev/pchamnkhkeokbpahnocjaeednpbpacop" rel="noopener">Feature-Policy Tester (Chrome Developer Tools extensão)</a></li> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>{{HTTPHeader("Referrer-Policy")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/forwarded/index.html b/files/pt-br/web/http/headers/forwarded/index.html new file mode 100644 index 0000000000..f251147bbe --- /dev/null +++ b/files/pt-br/web/http/headers/forwarded/index.html @@ -0,0 +1,118 @@ +--- +title: Forwarded +slug: Web/HTTP/Headers/Forwarded +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Forwarded +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>Forwarded</code></strong> contém informação dos <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling">servidores de proxy reverso</a> que é alterada ou perdida quando um proxy está envolvido no caminho da requisição.</p> + +<p>A versão alternativa e de fato padrão deste cabeçalho são os cabeçalhos {{HTTPHeader("X-Forwarded-For")}}, {{HTTPHeader("X-Forwarded-Host")}} e {{HTTPHeader("X-Forwarded-Proto")}}.</p> + +<p>Este cabeçalho é utilizado para depuração, estatísticas, e gerar conteúdo localmente dependente e por design ele expõe informações privadas sensíveis, como o endereço IP do cliente. Sendo assim, a privacidade do usuário deve sempre estar em mente quando utilizando este cabeçalho.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Forwarded: by=<identifier>;for=<identifier>;host=<host>;proto=<http|https> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><identifier></dt> + <dd>Um identificador divulgando a informação que é alterada ou perdida usando um proxy. Ela pode ser tanto: + <ul> + <li>um endereço IP (v4 ou v6, opicionalmente com a porta, e IPv6 encapsulado por colchetes e aspas),</li> + <li>um identificador ofuscado (como um "_hidden" ou "_secret"),</li> + <li>ou "unknown" (desconhecido) quando a entidade precedente não é conhecida (e você ainda quer indicar que aquela repassagem da requisição foi feita).</li> + </ul> + </dd> + <dt>by=<identifier></dt> + <dd>A interface onde a requisição chegou ao servidor proxy.</dd> + <dt>for=<identifier></dt> + <dd>O cliente que iniciou a requisição e subsequentes proxies na cadeia de proxies.</dd> + <dt>host=<host></dt> + <dd>O cabeçalho de requisição {{HTTPHeader("Host")}} como foi recebido pelo proxy.</dd> + <dt>proto=<http|https></dt> + <dd> + <p>Indica qual protocolo foi usado para fazer a requisição (tipicamente "http" ou "https").</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Usando_o_cabeçalho_Forwarded">Usando o cabeçalho <code>Forwarded</code></h3> + +<pre class="notranslate">Forwarded: for="_mdn" + +# sem sensibilidade de capitalização +Forwarded: For="[2001:db8:cafe::17]:4711" + +# separado por ponto e vírgula +Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 + +# múltiplos valores podem ser concatenados usando uma vírgula +Forwarded: for=192.0.2.43, for=198.51.100.17 +</pre> + +<h3 id="Transicionando_de_X-Forwarded-For_para_Forwarded">Transicionando de <code>X-Forwarded-For</code> para <code>Forwarded</code></h3> + +<p>Se a sua aplicação, servidor, ou proxy suporta o cabeçalho padrozinado <code>Forwarded</code>, o cabeçalho {{HTTPHeader("X-Forwarded-For")}} pode então ser substituído. Note que o endereço IPv6 está entre colchetes e aspas em <code>Forwarded</code>.</p> + +<pre class="notranslate">X-Forwarded-For: 123.34.567.89 +Forwarded: for=123.34.567.89 + +X-Forwarded-For: 192.0.2.43, "[2001:db8:cafe::17]" +Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]" +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7239", "Forwarded", "4")}}</td> + <td>Forwarded HTTP Extension</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Forwarded")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> + <li>{{HTTPHeader("Via")}} – provém informação sobre o proxy em si, não sobre o cliente conectando a ele.</li> +</ul> diff --git a/files/pt-br/web/http/headers/from/index.html b/files/pt-br/web/http/headers/from/index.html new file mode 100644 index 0000000000..d0dd429117 --- /dev/null +++ b/files/pt-br/web/http/headers/from/index.html @@ -0,0 +1,74 @@ +--- +title: From +slug: Web/HTTP/Headers/From +tags: + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/From +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição <code><strong>From</strong></code> contém um endereço de email da Internet para um usuário humano que controla o agente de usuário requisitante poder enviar uma mensagem.</p> + +<p>Se você está rodando um agente de usuário robótico (e.g. um <em>crawler</em>), o cabeçalho <code>From</code> deve ser enviado, para que você possa contatar se problemas ocorrerem em servidores, como por exemplo, o robô estar enviando requisições excessivas, não desejadas ou inválidas.</p> + +<div class="warning"> +<p>Você não deve usar o cabeçalho <code>From</code> para controle de acesso ou autenticação.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">From: <email> +</pre> + +<h2 id="Directives">Directives</h2> + +<dl> + <dt><email></dt> + <dd>Um endereço de email utilizável para mensagens serem enviadas.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">From: webmaster@example.org</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "From", "5.5.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.From")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/host/index.html b/files/pt-br/web/http/headers/host/index.html new file mode 100644 index 0000000000..de12664090 --- /dev/null +++ b/files/pt-br/web/http/headers/host/index.html @@ -0,0 +1,72 @@ +--- +title: Host +slug: Web/HTTP/Headers/Host +translation_of: Web/HTTP/Headers/Host +--- +<div>{{HTTPSidebar}}</div> + +<div> </div> + +<p>O cabeçalho de solicitação de <code><strong>Host</strong></code> especifica o nome de domínio do servidor (para hospedagem virtual), e (opcionalmente) o número da porta TCP no qual o servidor está escutando.</p> + +<p>Se nenhuma porta for fornecida a porta padrão para o serviço solicitado (por exemplo, "80" para um HTTP URL) está implícita.</p> + +<p>Um campo de cabeçalho de <code>Host </code>deve ser enviado em todas as mensagens desolicitação HTTP / 1. 1. Um código de status {{HTTPStatus("400")}} (Bad Request) será enviado para qualquer mensagem de solicitação HTTP/1.1 que não contenha um campo de cabeçalho do host ou contenha mais de um.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Host: <host>:<port> +</pre> + +<h2 id="Directives">Directives</h2> + +<dl> + <dt><host></dt> + <dd>the domain name of the server (for virtual hosting).</dd> + <dt><port> {{optional_inline}}</dt> + <dd>TCP port number on which the server is listening.</dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<pre>Host: developer.cdn.mozilla.net</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7230", "Host", "5.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Host")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{HTTPStatus("400")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/if-match/index.html b/files/pt-br/web/http/headers/if-match/index.html new file mode 100644 index 0000000000..29d3be3e2d --- /dev/null +++ b/files/pt-br/web/http/headers/if-match/index.html @@ -0,0 +1,94 @@ +--- +title: If-Match +slug: Web/HTTP/Headers/If-Match +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - Requisições Condicionais +translation_of: Web/HTTP/Headers/If-Match +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>If-Match</code></strong> faz a requisição condicional. Para métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, o servidor irá mandar de volta o recurso requisitado somente se ele corresponde com uma das <code>ETags</code> listadas. Para {{HTTPMethod("PUT")}} e outros métodos não-seguros, ele somente irá fazer o upload do recurso neste caso.</p> + +<p>A comparação com a {{HTTPHeader("ETag")}} guardada usa o <em>algoritmo de comparação forte</em>, significa dois arquivos são considerados idênticos <em>byte </em>a <em>byte </em>somente. Se a <code>ETag</code> listada com o prefixo <code>W/</code> indicando a <em>tag</em> como uma entidade fraca, ele nunca irá combinar usando este algoritmo de comparação.</p> + +<p>Existem dois casos de uso comuns:</p> + +<ul> + <li>Para os métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, utilizado em combinação com o cabeçalho {{HTTPHeader("Range")}}, ele pode garantir que novos intervalos requisitados venham do mesmo recurso ao invés do anterior. Se ele não corresponde, então uma resposta {{HTTPStatus("416")}} (Range Not Satisfiable) é retornarda.</li> + <li>Para outros métodos, e em particular para o método {{HTTPMethod("PUT")}}, <code>If-Match</code> pode ser usado para previnir o <a href="https://www.w3.org/1999/04/Editing/#3.1">problema de perde de atualização</a>. Ele pode checar se a modificação de um recurso que o usuário que fazer o upload não sobrescreverá outra modificação que foi feita desde que o recurso original foi buscado. Se a requisição não puder ser completada, a resposta {{HTTPStatus("412")}} (Precondition Failed) é retornada.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">If-Match: <etag_value> +If-Match: <etag_value>, <etag_value>, … +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><etag_value></dt> + <dd><em>Tags</em> de entidade que representam unicamente os recursos requisitados. Eles são uma cadeia de caracteres ASCII colocados entre aspas duplas (como <code>"675af34563dc-tr34"</code>). Elas podem ser prefixadas por <code>W/</code> para indicar que elas são "fracas", i.e. que elas representam o recurso semânticamente, mas não byte-por-byte. Entretanto, em um cabeçalho <strong><code>If-Match</code></strong>, <em>tags</em> de entidade fraca nunca irão corresponder.</dd> + <dt><code>*</code></dt> + <dd>O asterísco é um valor especial representando qualquer recurso.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" + +If-Match: "67ab43", "54ed21", "7892dd" + +If-Match: * +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7232", "If-Match", "3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.If-Match")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("416")}}<code> Range Not Satisfiable</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/if-modified-since/index.html b/files/pt-br/web/http/headers/if-modified-since/index.html new file mode 100644 index 0000000000..2b8f52775f --- /dev/null +++ b/files/pt-br/web/http/headers/if-modified-since/index.html @@ -0,0 +1,89 @@ +--- +title: If-Modified-Since +slug: Web/HTTP/Headers/If-Modified-Since +translation_of: Web/HTTP/Headers/If-Modified-Since +--- +<div>{{HTTPSidebar}}</div> + +<p>A requisição do cabeçalho HTTP <strong><code>If-Modified-Since</code></strong> torna a requisição condicional: o servidor enviará de volta o recurso solicitado, com um status {{HTTPStatus("200")}}, apenas se foi modificado pela ultima vez após a data fornecida. Se a requisição não foi modificada, a resposta será um {{HTTPStatus("304")}} sem qualquer corpo; o cabeçalho {{HTTPHeader("Last-Modified")}} irá conter a data da ultima modificação. Ao contrário {{HTTPHeader("If-Unmodified-Since")}}, <code>If-Modified-Since </code>pode ser apenas utilizado com um {{HTTPMethod("GET")}} ou {{HTTPMethod("HEAD")}}.</p> + +<p>Quando utilizado em combinação com {{HTTPHeader("If-None-Match")}}, é ignorado, a menos que não suporte <code>If-None-Match</code>.</p> + +<p>O uso mais comum é para atualizar uma entidade em cache que não tem um {{HTTPHeader("ETag")}} associado.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">If-Modified-Since: <nome-dia>, <dia> <mês> <ano> <hora>:<minuto>:<segundo> GMT +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><nome-dia></dt> + <dd>Um entre "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (sensível ao caso).</dd> + <dt><dia></dt> + <dd>2 digitos, número do dia. Por exemplo "04" ou "23".</dd> + <dt><mês></dt> + <dd>Um entre "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (sensível ao caso).</dd> + <dt><ano></dt> + <dd>4 digitos, número do ano,. Por exemplo. "1990" ou "2016".</dd> + <dt><hora></dt> + <dd>2 digitos, número da hora. Por exemplo. "09" ou "23".</dd> + <dt><minuto></dt> + <dd>2 digiitos, número do minuto. Por exemplo. "04" ou "59".</dd> + <dt><segundos></dt> + <dd>2 digitos, número dos segundos, Por exemplo. "04" ou "59".</dd> + <dt><code>GMT</code></dt> + <dd> + <p>Horário de Greenwich (Greenwich Mean Time). Datas HTTP sempre são expressas em GMT, nunca em tempo local.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7232", "If-Modified-Since", "3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">A tabela de compatibilidade nesta pagina é gerada a partir da estrutuda de dados. Se você deseja contribuir com os dados, por favor verifique em <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e nos envie um pull request.</p> + +<p>{{Compat("http.headers.If-Modified-Since")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/if-none-match/index.html b/files/pt-br/web/http/headers/if-none-match/index.html new file mode 100644 index 0000000000..fde8dcc764 --- /dev/null +++ b/files/pt-br/web/http/headers/if-none-match/index.html @@ -0,0 +1,96 @@ +--- +title: If-None-Match +slug: Web/HTTP/Headers/If-None-Match +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - Requisições Condicionais +translation_of: Web/HTTP/Headers/If-None-Match +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>If-None-Match</code></strong> faz uma requisição condicional. Para os métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, o servidor irá mandar de volta o recurso requisitado, com um código de status {{HTTPStatus("200")}}, somente se ele não tiver um {{HTTPHeader("ETag")}} correspondendo as <em>tags</em> dadas pela requisição. Para outros métodos, a requisição será processada somente o recurso existente eventualmente não possuir nenhuma<em> </em>{{HTTPHeader("ETag")}} correspondente nos valores listados.</p> + +<p>Quando a condição falha para métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, então o servidor deve returnar um código de status HTTP 304 (Not Modified). Para outros métodos que aplicam mudanças no lado do servidor, o código de status 412 (Precondition Failed) é utilizado. Note que o servidor gerando uma resposta 304 DEVE gerar qualquer um dos seguintes cabeçalhos que seriam enviados em uma resposta 200 (OK) para a mesma requisição: Cache-Control, Content-Location, Date, ETag, Expires, and Vary.</p> + +<p>A comparação com a {{HTTPHeader("ETag")}} guardada usa o <em>algoritmo de comparação fraco</em>, significa que dois arquivos são considerados idênticos se o conteúdo é equivalente — eles não precisam ser idênticos <em>byte</em> por <em>byte</em>. Por exemplo, duas páginas que diferem pela data de sua geração no rodapé ainda assim serão consideradas como idênticas.</p> + +<p>Quando usado em combinação com {{HTTPHeader("If-Modified-Since")}}, <strong><code>If-None-Match</code></strong> tem precedência (se o servidor suporta isso).</p> + +<p>Existem dois casos de uso comuns:</p> + +<ul> + <li>Para métodos {{HTTPMethod("GET")}} e {{HTTPMethod("HEAD")}}, para atualizar uma entidade cacheada que possui um {{HTTPHeader("ETag")}} associado.</li> + <li>Para outros métodos, e em particular para {{HTTPMethod("PUT")}}, <code>If-None-Match</code> usado com o valor <code>*</code> pode ser utilizado para salvar um arquivo que não se sabia existir, garantindo que outro <em>upload</em> não tenha acontecido anteriormente, perdendo os dados do <em>PUT</em> anterior; esse problema é uma variação do <a href="https://www.w3.org/1999/04/Editing/#3.1">problema de perda de atualização</a>.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">If-None-Match: "<etag_value>" +If-None-Match: "<etag_value>", "<etag_value>", … +If-None-Match: *</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><etag_value></dt> + <dd><em>Tags</em> de entidade que representam unicamente os recursos requisitados. Eles são uma cadeia de caracteres ASCII colocados entre aspas duplas (como <code>"675af34563dc-tr34"</code>). Elas podem ser prefixadas por <code>W/</code> para indicar que o <em>algoritmo de comparação fraco</em> deve ser utilizado (Isso é inútil com <code>If-None-Match</code> por ele utilizar somente este algoritmo).</dd> + <dt><code>*</code></dt> + <dd>O asterísco é um valor especial representando qualquer recurso. Eles somente são úteis quando fazendo o <em>upload</em> de um recurso, geralmente com {{HTTPMethod("PUT")}}, para checar se outro recurso com a identidade já teve seu <em>upload</em> feito anteriormente.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d" + +If-None-Match: W/"67ab43", "54ed21", "7892dd" + +If-None-Match: * +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7232", "If-None-Match", "3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.If-None-Match")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPStatus("304")}}<code> Not Modified</code></li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/if-range/index.html b/files/pt-br/web/http/headers/if-range/index.html new file mode 100644 index 0000000000..0ca997356d --- /dev/null +++ b/files/pt-br/web/http/headers/if-range/index.html @@ -0,0 +1,104 @@ +--- +title: If-Range +slug: Web/HTTP/Headers/If-Range +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - Requisições Condicionais + - Requisições de Intervalo +translation_of: Web/HTTP/Headers/If-Range +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>If-Range</code></strong> faz uma requisição de intervalo condicional: se a condição é realizada, a requisição de intervalo será enviada e o servidor mandará de volta como resposta um {{HTTPStatus("206")}} <code>Partial Content</code> com o corpo apropriado. Se a condição não é realizada, a recurso inteiro é enviado de volta, com um código de status {{HTTPStatus("200")}} <code>OK</code>.</p> + +<p>Este cabeçalho pode ser usado ou com um validador {{HTTPHeader("Last-Modified")}}, ou com um {{HTTPHeader("ETag")}}, mas não com ambos.</p> + +<p>O caso de uso mais comum é continuar um <em>download</em>, para garantir que o recurso guardado não tenha sido modificado desde o último fragmento que foi recebido.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">If-Range: <nome-dia>, <dia> <mês> <ano> <hora>:<minuto>:<segundo> GMT +If-Range: <etag></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><etag></dt> + <dd><em>Tags</em> de entidade que representam unicamente os recursos requisitados. Eles são uma cadeia de caracteres ASCII colocados entre aspas duplas (como <code>"675af34563dc-tr34"</code>). Elas podem ser prefixadas por <code>W/</code> para indicar que o <em>algoritmo de comparação fraco</em> deve ser utilizado.</dd> +</dl> + +<dl> + <dt><nome-dia></dt> + <dd>Um entre "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (sensível ao caso).</dd> + <dt><dia></dt> + <dd>2 digitos, número do dia. Por exemplo "04" ou "23".</dd> + <dt><mês></dt> + <dd>Um entre "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (sensível ao caso).</dd> + <dt><ano></dt> + <dd>4 digitos, número do ano,. Por exemplo. "1990" ou "2016".</dd> + <dt><hora></dt> + <dd>2 digitos, número da hora. Por exemplo. "09" ou "23".</dd> + <dt><minuto></dt> + <dd>2 digiitos, número do minuto. Por exemplo. "04" ou "59".</dd> + <dt><segundo></dt> + <dd>2 digitos, número dos segundo, Por exemplo. "04" ou "59".</dd> + <dt><code>GMT</code></dt> + <dd> + <p>Horário de Greenwich (Greenwich Mean Time). Datas HTTP sempre são expressas em GMT, nunca em tempo local.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">If-Range: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7233", "If-Range", "3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.If-Range")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("ETag")}}</li> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPStatus("206")}}<code> Partial Content</code></li> + <li><a href="/en-US/docs/Web/HTTP/Conditional_requests">Requisições Condicionais HTTP</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/if-unmodified-since/index.html b/files/pt-br/web/http/headers/if-unmodified-since/index.html new file mode 100644 index 0000000000..00d1001643 --- /dev/null +++ b/files/pt-br/web/http/headers/if-unmodified-since/index.html @@ -0,0 +1,95 @@ +--- +title: If-Unmodified-Since +slug: Web/HTTP/Headers/If-Unmodified-Since +translation_of: Web/HTTP/Headers/If-Unmodified-Since +--- +<div>{{HTTPSidebar}}</div> + +<p>A requisição <strong><code>If-Unmodified-Since</code></strong> do cabeçalho HTTP realiza uma requisição condicional: o servidor enviará de volta o recurso solicitado ou o aceitará no caso de um {{HTTPMethod("POST")}} ou non-{{Glossary("safe")}} método, somente se não tiver sido modificado pela última vez após a data especificada. Se a solicitação tiver sido modificada após a data já especificada, a resposta será um erro {{HTTPStatus("412")}} (Precondition Failed).</p> + +<p>A requisição</p> + +<p>There are two common use cases:</p> + +<ul> + <li>In conjunction with non-{{Glossary("safe")}} methods, like {{HTTPMethod("POST")}}, it can be used to implement an <a href="https://en.wikipedia.org/wiki/Optimistic_concurrency_control">optimistic concurrency control</a>, like done by some wikis: editions are rejected if the stored document has been modified since the original has been retrieved.</li> + <li>In conjunction with a range request with a {{HTTPHeader("If-Range")}} header, it can be used to ensure that the new fragment requested comes from an unmodified document.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><day-name></dt> + <dd>One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).</dd> + <dt><day></dt> + <dd>2 digit day number, e.g. "04" or "23".</dd> + <dt><month></dt> + <dd>One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).</dd> + <dt><year></dt> + <dd>4 digit year number, e.g. "1990" or "2016".</dd> + <dt><hour></dt> + <dd>2 digit hour number, e.g. "09" or "23".</dd> + <dt><minute></dt> + <dd>2 digit minute number, e.g. "04" or "59".</dd> + <dt><second></dt> + <dd>2 digit second number, e.g. "04" or "59".</dd> + <dt><code>GMT</code></dt> + <dd> + <p>Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7232", "If-Unmodified-Since", "3.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_com_o_Browser">Compatibilidade com o Browser</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.If-Unmodified-Since")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Last-Modified")}}</li> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Match")}}</li> + <li>{{HTTPHeader("If-None-Match")}}</li> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPStatus("412")}}<code> Precondition Failed</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/index.html b/files/pt-br/web/http/headers/index.html new file mode 100644 index 0000000000..bb02e87319 --- /dev/null +++ b/files/pt-br/web/http/headers/index.html @@ -0,0 +1,370 @@ +--- +title: Cabeçalhos HTTP +slug: Web/HTTP/Headers +tags: + - Cabeçalhos + - HTTP + - Internet + - Networking + - Rede + - Referencia + - Web +translation_of: Web/HTTP/Headers +--- +<div> +<div>{{HTTPSidebar}}</div> +</div> + +<div>Os cabeçalhos HTTP permitem que o cliente e o servidor passem informações adicionais com a solicitação ou a resposta HTTP. Um cabeçalho de solicitação é composto por seu nome <em>case-insensitive</em> (não diferencia letras maiúsculas e minúsculas), seguido por dois pontos ':' e pelo seu valor (sem quebras de linha). Espaços em branco antes do valor serão ignorados.</div> + +<div></div> + +<p>Cabeçalhos proprietários personalizados podem ser adicionados usando o prefixo 'X-', mas essa convenção foi descontinuada em Junho de 2012, devido aos inconvenientes que causou quando os campos não-padronizados tornaram-se padronizados na <a href="https://tools.ietf.org/html/rfc6648">RFC 6648</a>; outros estão listados em um <a href="http://www.iana.org/assignments/message-headers/perm-headers.html">registro IANA</a>, cujo o conteúdo original foi definido na <a class="external" href="http://tools.ietf.org/html/rfc4229">RFC 4229</a>. O IANA também mantém o <a href="http://www.iana.org/assignments/message-headers/prov-headers.html">registro das propostas de novas mensagens de cabeçalhos HTTP</a>.</p> + +<p>Cabeçalhos podem ser classificados de acordo com os seus contextos:</p> + +<ul> + <li>{{Glossary("General header" ,"Cabeçalho genérico")}}: Cabeçalhos que podem ser usados tanto em solicitações quanto em respostas, porém sem relação com os dados eventualmente transmitidos no corpo da mensagem.</li> + <li>{{Glossary( "Request header" ,"Cabeçalho de solicitação")}}: Cabeçalhos contendo mais informação sobre o recurso a ser obtido ou sobre o próprio cliente.</li> + <li>{{Glossary( "Response header" ,"Cabeçalho de resposta")}}: Cabeçalhos contendo informação adicional sobre a solicitação, como a sua localização ou sobre o servidor.</li> + <li>{{Glossary( "Entity header" ,"Cabeçalho de entidade")}}: Cabeçalhos contendo mais informação sobre o conteúdo da entidade, como o tamanho do conteúdo ou o seu <em>MIME-type</em>.</li> +</ul> + +<p>Cabeçalhos também podem ser classificados de acordo com a forma que são manipulados por <em>proxies</em>.</p> + +<dl> + <dt>End-to-end headers</dt> + <dd>Esses cabeçalhos devem ser transmitidos para o destinatário final da mensagem; isso é, o servidor em caso de solicitação ou o cliente caso resposta. <em>Proxies</em> intermediários devem reenviar cabeçalhos de <em>end-to-end</em> sem alterações e caches devem armazená-los.</dd> + <dt>Hop-by-hop headers</dt> + <dd>Esses cabeçalhos são significativos apenas para uma única conexão a nível de transporte e não devem ser reenviados por <em>proxies</em> ou armazenados em cache. Tais cabeçalhos são: {{ httpheader("Connection") }}, {{ httpheader("Keep-Alive") }}, {{ httpheader("Proxy-Authenticate") }}, {{ httpheader("Proxy-Authorization") }}, {{ httpheader("TE") }}, {{ httpheader("Trailer") }}, {{ httpheader("Transfer-Encoding") }} and {{ httpheader("Upgrade") }}. Observe que apenas cabeçalhos <em>hop-by-hop </em>podem ser definidos utilizando o cabeçalho genérico {{ httpheader("Connection") }}.</dd> +</dl> + +<p>A lista a seguir resume os cabeçalhos HTTP pela categoria de uso. Para uma lista alfabética, utilize o menu à esquerda.</p> + +<h2 id="Autenticação">Autenticação</h2> + +<dl> + <dt>{{HTTPHeader("WWW-Authenticate")}}</dt> + <dd>Define o método de autenticação que deve ser utilizado para conseguir acesso ao recurso.</dd> + <dt>{{HTTPHeader("Authorization")}}</dt> + <dd>Contém as credenciais para autenticar um User-Agent com o servidor.</dd> + <dt>{{HTTPHeader("Proxy-Authenticate")}}</dt> + <dd>Define o método de autenticação que deve ser utilizado para conseguir acesso ao recurso por trás de um servidor Proxy.</dd> + <dt>{{HTTPHeader("Proxy-Authorization")}}</dt> + <dd>Contém as credenciais para autenticar um User-Agent com o servidor Proxy.</dd> +</dl> + +<h2 id="Caching">Caching</h2> + +<dl> + <dt>{{HTTPHeader("Age")}}</dt> + <dd>O tempo em segundos em que o objeto esteve em um cache de proxy.</dd> + <dt>{{HTTPHeader("Cache-Control")}}</dt> + <dd>Especifica diretivas para mecanismos de cache em requisições e respostas.</dd> + <dt>{{HTTPHeader("Expires")}}</dt> + <dd>A data/hora depois que a resposta é considerada obsoleta.</dd> + <dt>{{HTTPHeader("Pragma")}}</dt> + <dd>Cabeçalho específico da implementação que pode ter varios efeitos em qualquer lugar ao longo da sequência de requisição-resposta. Usado para compatibilidade de versões anteriores com caches HTTP/1.0 onde o header Cache-Control ainda não está presente.</dd> + <dt>{{HTTPHeader("Warning")}}</dt> + <dd>Um campo de alerta geral contendo informações sobre possíveis problemas.</dd> +</dl> + +<h2 id="Client_hints">Client hints</h2> + +<p>O recurso HTTP <a href="https://wiki.developer.mozilla.org/docs/Glossary/Client_hints">Client hints</a> ainda está em desenvolvimento. A documentação está disponível no site do <a href="https://httpwg.org/http-extensions/client-hints.html">HTTP working group.</a></p> + +<dl> + <dt>{{HTTPHeader("Accept-CH")}} {{experimental_inline}}</dt> + <dd>Os servidores podem dar suporte para o <a href="https://wiki.developer.mozilla.org/docs/Glossary/Client_hints">Client hints</a> usando o campo de cabeçalho Accept-CH ou um elemento HTML <meta> equivalente com atributo http-equiv ([HTML5]).</dd> + <dt>{{HTTPHeader("Accept-CH-Lifetime")}} {{experimental_inline}}</dt> + <dd>Os servidores podem solicitar ao cliente que lembre-se do conjunto de <a href="https://wiki.developer.mozilla.org/docs/Glossary/Client_hints">Client hints</a> que o servidor dá suporte por um período de tempo especificado, para permitir a entrega de <a href="https://wiki.developer.mozilla.org/docs/Glossary/Client_hints">Client hints</a> em solicitações seguidas ao servidor de origem([RFC6454]).</dd> + <dt>{{HTTPHeader("Content-DPR")}} {{experimental_inline}}</dt> + <dd><span class="tlid-translation translation" lang="pt"><span title="">Um número que indica a proporção entre pixels físicos sobre pixels CSS da resposta de imagem selecionada.</span></span></dd> + <dt>{{HTTPHeader("DPR")}} {{experimental_inline}}</dt> + <dd><span class="tlid-translation translation" lang="pt"><span title="">Um número que indica o Device Pixel Ratio (DPR) atual do cliente, que é a proporção dos pixels físicos sobre os pixels CSS (Seção 5.2 de </span></span><a href="https://httpwg.org/http-extensions/client-hints.html#CSSVAL"><cite>[CSSVAL]</cite></a><cite>) do viewport do layout </cite>(Seção 9.1.1 do <a href="https://httpwg.org/http-extensions/client-hints.html#CSS2"><cite>[CSS2]</cite></a>) no dispositivo.</dd> + <dt>{{HTTPHeader("Device-Memory")}} {{experimental_inline}}</dt> + <dd>Tecnicamente uma parte da API de Memória do Dispositivo (Device Memory API), este cabeçalho representa uma quantidade aproximada de RAM que o cliente possui.</dd> + <dt>{{HTTPHeader("Save-Data")}} {{experimental_inline}}</dt> + <dd>Um boleano que indica a preferência do agente do usuário pelo uso reduzido de dados.</dd> + <dt>{{HTTPHeader("Viewport-Width")}} {{experimental_inline}}</dt> + <dd>Um número que indica a largura em pixels do viewport do layout em pixels CSS. O valor em pixels disponibilizado é um número arredondado do menor inteiro seguinte. (i.e. valor ceiling).</dd> + <dd>Se <code>Viewport-Width</code> ocorrer em uma mensagem mais de uma vez, o último valor irá sobrescrever todas as ocorrências anteriores.</dd> + <dt>{{HTTPHeader("Width")}} {{experimental_inline}}</dt> + <dd>O campo <code>Width</code> no cabeçalho da requisição é um número que indica a largura desejada do recurso em pixels físicos (i.e. tamanho intrínseco da imagem). O valor do pixel provido é um número arredondado para o menor inteiro seguinte.</dd> + <dd><span class="tlid-translation translation" lang="pt"><span title="">Se a largura do recurso desejada não for conhecida no momento da solicitação ou o recurso não tiver uma largura de exibição, o campo <code>Width</code> poderá ser omitido do cabeçalho.</span> <span title="">Se <code>Width</code> ocorrer em uma mensagem mais de uma vez, o último valor irá sobrescrever todas as ocorrências anteriores.</span></span></dd> +</dl> + +<h2 id="Condicionais">Condicionais</h2> + +<dl> + <dt>{{HTTPHeader("Last-Modified")}}</dt> + <dd>É um validador, a última data de modificação de um recurso, usado para comparar várias versões de um mesmo recurso. É menos preciso que o {{HTTPHeader("ETag")}}, mas é mais fácil calcular em alguns ambientes. Requisições condicionais usando {{HTTPHeader("If-Modified-Since")}} e {{HTTPHeader("If-Unmodified-Since")}} usam esse valor para modificar o comportamento da requisição.</dd> + <dt>{{HTTPHeader("ETag")}}</dt> + <dd>É um validador, uma string única identificando a versão do recurso. Requisições condicionais usando {{HTTPHeader("If-Match")}} e {{HTTPHeader("If-None-Match")}} usam esse valor para modificar o comportamento da requisição.</dd> + <dt>{{HTTPHeader("If-Match")}}</dt> + <dd>Faz a requisição condicional e aplica o método apenas se o recurso armazenado corresponder a uma das ETags fornecidas.</dd> + <dt>{{HTTPHeader("If-None-Match")}}</dt> + <dd>Faz a requisição condicional e aplica o método apenas se o recurso armazenado não corresponder a nenhuma das ETags fornecidas. É usado para atualizar caches ( para requisições seguras), ou para prevenir o upload de um novo recurso quando este já existe.</dd> + <dt>{{HTTPHeader("If-Modified-Since")}}</dt> + <dd>Faz a requisição condicional e espera a entidade ser transmitida somente se tiver sido modificada após a data especificada. É usado para transmitir dados somente se o cache estiver desatualizado.</dd> + <dt>{{HTTPHeader("If-Unmodified-Since")}}</dt> + <dd>Faz a requisição condicional e espera a entidade ser transmitida somente se <strong>não </strong>tiver sido modificada após a data especificada. É usado para garantir a coerência de um novo fragmento de um intervalo específico com os anteriores, ou para implementar um Sistema de Controle de concorrência otimista ao modificar os documentos existentes.</dd> +</dl> + +<h2 id="Gerenciamento_de_Conexão">Gerenciamento de Conexão</h2> + +<dl> + <dt>{{HTTPHeader("Connection")}}</dt> + <dd>Controla se uma conexão de rede continua ou não aberta após o término da transação atual.</dd> + <dt>{{HTTPHeader("Keep-Alive")}}</dt> + <dd>Controla por quanto tempo uma conexão persistente deve permanecer aberta.</dd> +</dl> + +<h2 id="Negociação_de_conteúdo">Negociação de conteúdo</h2> + +<dl> + <dt>{{HTTPHeader("Accept")}}</dt> + <dd>Informa ao servidor sobre os tipos de dados que podem ser enviados de volta. Isto é MIME-type.</dd> + <dt>{{HTTPHeader("Accept-Charset")}}</dt> + <dd>Informa ao servidor sobre qual conjunto de caracter o cliente é capaz de entender.</dd> + <dt>{{HTTPHeader("Accept-Encoding")}}</dt> + <dd>Informa ao servidor sobre o algoritmo de codificação, geralmente um algoritmo de compressão, isto pode ser usado no recurso enviado de volta.</dd> + <dt>{{HTTPHeader("Accept-Language")}}</dt> + <dd>Informa ao servidor sobre a linguagem que é esperada que o servidor envie de volta. Esta é uma dica e não está necessariamente sob controle total do usuário: o servidor deve sempre prestar atenção para não sobrepor uma escolha explícita do usuário (como selecionar uma linguagem em uma lista suspensa).</dd> +</dl> + +<h2 id="Controles">Controles</h2> + +<dl> + <dt>{{HTTPHeader("Expect")}}</dt> + <dd>Indica expectativas que precisam ser atendidas pelo servidor para lidar adequadamente com a solicitação.</dd> + <dt>{{HTTPHeader("Max-Forwards")}}</dt> + <dd>...</dd> +</dl> + +<h2 id="Cookies">Cookies</h2> + +<dl> + <dt>{{HTTPHeader("Cookie")}}</dt> + <dd>Contém <a href="/pt-BR/docs/Web/HTTP/Cookies">cookies </a>HTTP armazenados previamente enviados pelo servidor com o cabeçalho {{HTTPHeader("Set-Cookie")}}.</dd> + <dt>{{HTTPHeader("Set-Cookie")}}</dt> + <dd>Envia cookies do servidor para o agente de usuário.</dd> + <dt>{{HTTPHeader("Cookie2")}} {{obsolete_inline}}</dt> + <dd>Contém um cookie HTTP enviado anteriormente pelo servidor com o cabeçalho {{HTTPHeader("Set-Cookie2")}}, mas se tornou obsoleto pela especificação. Use {{HTTPHeader("Cookie")}} em vez disso.</dd> + <dt>{{HTTPHeader("Set-Cookie2")}} {{obsolete_inline}}</dt> + <dd>Envia cookies do servidor para o agente-usuário, mas se tornou obsoleto pela especificação. Use {{HTTPHeader("Set-Cookie")}} em vez disso.</dd> +</dl> + +<h2 id="CORS">CORS</h2> + +<dl> + <dt>{{HTTPHeader("Access-Control-Allow-Origin")}}</dt> + <dd>Indica se a resposta pode ser compartilhada.</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Credentials")}}</dt> + <dd>Indica se a resposta a requisição pode ou não ser exposta quando a flag de crendenciais é verdadeira.</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Headers")}}</dt> + <dd>Usado na resposta para uma solicitação de comprovação ({{Glossary("Preflight_request", "preflight request")}}) para indicar quais cabeçalhos HTTP podem ser usados ao fazer a solicitação real.</dd> + <dt>{{HTTPHeader("Access-Control-Allow-Methods")}}</dt> + <dd>Especifica o método, ou métodos, permitido ao acessar o recurso em resposta à solicitação de comprovação ({{Glossary("Preflight_request", "preflight request")}}). </dd> + <dt>{{HTTPHeader("Access-Control-Expose-Headers")}}</dt> + <dd>Indica quais cabeçalhos podem ser expostos como parte da resposta listando seus nomes.</dd> + <dt>{{HTTPHeader("Access-Control-Max-Age")}}</dt> + <dd>Indica por quanto tempo os resultados de uma solicitação de comprovação ({{Glossary("Preflight_request", "preflight request")}}) podem ser armazenados em cache.</dd> + <dt>{{HTTPHeader("Access-Control-Request-Headers")}}</dt> + <dd>Utilizado ao emitr uma solicitação de comprovação ({{Glossary("Preflight_request", "preflight request")}}) para informar ao servidor quais cabeçalhos HTTP serão usados quando a solicitação real for realizada. </dd> + <dt>{{HTTPHeader("Access-Control-Request-Method")}}</dt> + <dd>Utilizado ao emitir uma solicitação de comprovação ({{Glossary("Preflight_request", "preflight request")}}) para informar ao servidor qual <a href="/en-US/docs/Web/HTTP/Methods">método HTTP</a> será usado quando a solicitação real for realizada.</dd> + <dt>{{HTTPHeader("Origin")}}</dt> + <dd>Inddica de onde uma busca se origina.</dd> + <dt>{{HTTPHeader("Timing-Allow-Origin")}}</dt> + <dd>Especifica as origens que tem permissão para ver valores de atributos recuperados por meio de recursos da API de Tempo de Recurso (<a href="https://wiki.developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API">Resource Timing API</a>) que, de outra forma, seriam relatados como zero devido a restrições de origem cruzada (cross-origin restrictions).</dd> +</dl> + +<h2 id="Do_Not_Track">Do Not Track</h2> + +<dl> + <dt>{{HTTPHeader("DNT")}}</dt> + <dd>Usado para expressas a preferência de rastreamento do usuário </dd> + <dt>{{HTTPHeader("Tk")}}</dt> + <dd>Indica o status de rastreamento aplicado à requisição correspondente.</dd> +</dl> + +<h2 id="Downloads">Downloads</h2> + +<dl> + <dt>{{HTTPHeader("Content-Disposition")}}</dt> + <dd>Indica se o recurso transmitido deve ser mostrado em linha (inline - comportamento padrão sem o cabeçalho), ou se deve apresentar uma caixa de diálogo "Salvar como". </dd> +</dl> + +<h2 id="Informações_do_corpo_da_mensagem">Informações do corpo da mensagem</h2> + +<dl> + <dt>{{HTTPHeader("Content-Length")}}</dt> + <dd>Indica o tamanho do corpo da mensagem, em decimal, enviado ao destinatário</dd> + <dt>{{HTTPHeader("Content-Type")}}</dt> + <dd>Indica o tipo de mídia do recurso.</dd> + <dt>{{HTTPHeader("Content-Encoding")}}</dt> + <dd>Usado para especificar o algoritmo de compressão.</dd> + <dt>{{HTTPHeader("Content-Language")}}</dt> + <dd>Descreve a linguagem destinada ao público, para permitir que um usuário se diferencie de acordo com o idioma preferido dele.</dd> + <dt>{{HTTPHeader("Content-Location")}}</dt> + <dd>Indica um local alternativo para os dados retornados.</dd> +</dl> + +<h2 id="Roteamento_de_mensagens_Proxies">Roteamento de mensagens (Proxies)</h2> + +<dl> + <dt>{{HTTPHeader("Forwarded")}}</dt> + <dd>Contém informações do lado do cliente dos servidores <em>proxy</em> que é alterado ou perdido quando um <em>proxy</em> é envolvido no caminho de uma solicitação.</dd> + <dt>{{HTTPHeader("X-Forwarded-For")}} {{non-standard_inline}}</dt> + <dd>Identifica os endereços de IP de origem de um cliente que se conecta a um servidor web por meio de um <em>proxy</em> HTTP ou balanceador de carga.</dd> + <dt>{{HTTPHeader("X-Forwarded-Host")}} {{non-standard_inline}}</dt> + <dd>Identifica o host original que um cliente usou para se conectar ao <em>proxy</em> ou balanceador de carga.</dd> + <dt>{{HTTPHeader("X-Forwarded-Proto")}} {{non-standard_inline}}</dt> + <dd>Identifica o protocolo (HTTP ou HTTPS) que um cliente usou para se conectar ao seu <em>proxy </em>ou balanceador de carga.</dd> + <dt>{{HTTPHeader("Via")}}</dt> + <dd>Adicionado por <em>proxies, </em>ambos<em> proxies </em>de encaminhamento<em> (forward) </em>e reverso<em> (reverse), e pode aparecer nos cabeçalhos de solicitação e de resposta.</em></dd> +</dl> + +<h2 id="Redirecionamentos">Redirecionamentos</h2> + +<dl> + <dt>{{HTTPHeader("Location")}}</dt> + <dd>Indica a URL para redirecionar uma página.</dd> +</dl> + +<h2 id="Contexto_da_requisição">Contexto da requisição</h2> + +<dl> + <dt>{{HTTPHeader("From")}}</dt> + <dd>Contém um endereço de e-mail da internet para um usuário humano que controla o agente do usuário solicitante.</dd> + <dt>{{HTTPHeader("Host")}}</dt> + <dd>Especifica o nome de domínio do servidor (para hospedagem virtual), e (opcionalmente) o número da porta TCP na qual o servidor está ouvindo.</dd> + <dt>{{HTTPHeader("Referer")}}</dt> + <dd>The address of the previous web page from which a link to the currently requested page was followed.</dd> + <dt>{{HTTPHeader("Referrer-Policy")}}</dt> + <dd>Governs which referrer information sent in the {{HTTPHeader("Referer")}} header should be included with requests made.</dd> + <dt>{{HTTPHeader("User-Agent")}}</dt> + <dd>Contains a characteristic string that allows the network protocol peers to identify the application type, operating system, software vendor or software version of the requesting software user agent. See also the <a href="/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox">Firefox user agent string reference</a>.</dd> +</dl> + +<h2 id="Contexto_da_resposta">Contexto da resposta</h2> + +<dl> + <dt>{{HTTPHeader("Allow")}}</dt> + <dd>Lista o conjunto de métodos de requisição HTTP suportados por um recurso.</dd> + <dt>{{HTTPHeader("Server")}}</dt> + <dd>Contém informações a respeito do programa utilizado pelo servidor de origem para lidar com a requisição.</dd> +</dl> + +<h2 id="Requisições_Range">Requisições Range</h2> + +<dl> + <dt>{{HTTPHeader("Accept-Ranges")}}</dt> + <dd>Indica se o servidor suporta solicitações de intervalo, se sim, em qual unidade o intervalo pode ser expresso.</dd> + <dt>{{HTTPHeader("Range")}}</dt> + <dd>Indica a parte de um documento que o servidor deve retornar.</dd> + <dt>{{HTTPHeader("If-Range")}}</dt> + <dd>Cria uma solicitação de intervalo condicional que é atendida se a etag ou data fornecida no parâmetro corresponde ao recurso remoto. Usado para impedir o download de dois intervalos da versão incompatível do recurso.</dd> + <dt>{{HTTPHeader("Content-Range")}}</dt> + <dd>Indica onde uma parte da mensagem faz parte de uma mensagem inteira de corpo.</dd> +</dl> + +<h2 id="Segurança">Segurança</h2> + +<dl> + <dt>{{HTTPHeader("Content-Security-Policy")}} ({{Glossary("CSP")}})</dt> + <dd>Controls resources the user agent is allowed to load for a given page.</dd> + <dt>{{HTTPHeader("Content-Security-Policy-Report-Only")}}</dt> + <dd>Allows web developers to experiment with policies by monitoring (but not enforcing) their effects. These violation reports consist of {{Glossary("JSON")}} documents sent via an HTTP <code>POST</code> request to the specified URI.</dd> + <dt>{{HTTPHeader("Public-Key-Pins")}} ({{Glossary("HPKP")}})</dt> + <dd>Associates a specific cryptographic public key with a certain web server to decrease the risk of {{Glossary("MITM")}} attacks with forged certificates.</dd> + <dt>{{HTTPHeader("Public-Key-Pins-Report-Only")}}</dt> + <dd>Sends reports to the report-uri specified in the header and does still allow clients to connect to the server even if the pinning is violated.</dd> +</dl> + +<dl> + <dt>{{HTTPHeader("Strict-Transport-Security")}} ({{Glossary("HSTS")}})</dt> + <dd>Force communication using HTTPS instead of HTTP.</dd> + <dt>{{HTTPHeader("Upgrade-Insecure-Requests")}}</dt> + <dd>Sends a signal to the server expressing the client’s preference for an encrypted and authenticated response, and that it can successfully handle the {{CSP("upgrade-insecure-requests")}} directive.</dd> +</dl> + +<dl> + <dt>{{HTTPHeader("X-Content-Type-Options")}}</dt> + <dd>Disables MIME sniffing and forces browser to use the type given in {{HTTPHeader("Content-Type")}}.</dd> +</dl> + +<dl> + <dt>{{HTTPHeader("X-Frame-Options")}} (XFO)</dt> + <dd>Indicates whether or not a browser should be allowed to render a page in a {{HTMLElement("frame")}}, {{HTMLElement("iframe")}} or {{HTMLElement("object")}}</dd> + <dt>{{HTTPHeader("X-XSS-Protection")}}</dt> + <dd>Enables cross-site scripting filtering.</dd> +</dl> + +<h2 id="Server-sent_events">Server-sent events</h2> + +<dl> + <dt>{{HTTPHeader("Ping-From")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Ping-To")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Last-Event-ID")}}</dt> + <dd>...</dd> +</dl> + +<h2 id="Transfer_coding">Transfer coding</h2> + +<dl> + <dt>{{HTTPHeader("Transfer-Encoding")}}</dt> + <dd>Specifies the the form of encoding used to safely transfer the entity to the user.</dd> + <dt>{{HTTPHeader("TE")}}</dt> + <dd>Specifies the transfer encodings the user agent is willing to accept.</dd> + <dt>{{HTTPHeader("Trailer")}}</dt> + <dd>Allows the sender to include additional fields at the end of chunked message.</dd> +</dl> + +<h2 id="WebSockets">WebSockets</h2> + +<dl> + <dt>{{HTTPHeader("Sec-WebSocket-Key")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Extensions")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Accept")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Protocol")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Sec-WebSocket-Version")}}</dt> + <dd>...</dd> +</dl> + +<h2 id="Outros">Outros</h2> + +<dl> + <dt>{{HTTPHeader("Date")}}</dt> + <dd>Contém a data e hora em que a mensagem foi produzida.</dd> + <dt>{{HTTPHeader("Link")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("Retry-After")}}</dt> + <dd>Indica quanto tempo o User-Agent deve esperar antes de realizar uma requisição de acompanhamento.</dd> + <dt>{{HTTPHeader("Upgrade")}}</dt> + <dd>This is a Proposed Internet Standard. To view a comprehensive list of all Official and Proposed Internet Standards with detailed information about each, <a href="https://www.rfc-editor.org/standards">visit this Internet Standards reference</a>, which is updated daily. The relevant RFC document for the <a href="https://tools.ietf.org/html/rfc7230#section-6.7">Upgrade header field standard is RFC 7230, section 6.7</a>. The standard establishes rules for upgrading or changing to a different protocol on the current client, server, transport protocol connection. For example, this header standard allows a client to change from HTTP 1.1 to HTTP 2.0, assuming the server decides to acknowledge and implement the Upgrade header field. Niether party is required to accept the terms specified in the Upgrade header field. It can be used in both client and server headers. If the Upgrade header field is specified, then the sender MUST also send the Connection header field with the upgrade option specified. For details on the Connection header field <a href="https://tools.ietf.org/html/rfc7230#section-6.1">please see section 6.1 of the aforementioned RFC</a>.</dd> + <dt>{{HTTPHeader("Vary")}}</dt> + <dd>Determines how to match future request headers to decide whether a cached response can be used rather than requesting a fresh one from the origin server.</dd> + <dt>{{HTTPHeader("X-Content-Duration")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("X-DNS-Prefetch-Control")}}</dt> + <dd>Controls DNS prefetching, a feature by which browsers proactively perform domain name resolution on both links that the user may choose to follow as well as URLs for items referenced by the document, including images, CSS, JavaScript, and so forth.</dd> + <dt>{{HTTPHeader("X-Requested-With")}}</dt> + <dd>...</dd> + <dt>{{HTTPHeader("X-UA-Compatible")}}</dt> + <dd>...</dd> +</dl> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields">Wikipedia page on List of HTTP headers</a></li> + <li><a href="https://www.iana.org/assignments/message-headers/perm-headers.html">IANA registry</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/keep-alive/index.html b/files/pt-br/web/http/headers/keep-alive/index.html new file mode 100644 index 0000000000..90908dff57 --- /dev/null +++ b/files/pt-br/web/http/headers/keep-alive/index.html @@ -0,0 +1,90 @@ +--- +title: Keep-Alive +slug: Web/HTTP/Headers/Keep-Alive +translation_of: Web/HTTP/Headers/Keep-Alive +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <code><strong>Keep-Alive</strong></code> permite que o remetente indique como a conexão deve ser usada, para definir um tempo limite e um máximo de requisições.</p> + +<div class="note"> +<p>O {{HTTPHeader("Connection")}} cabeçalho precisa ser definido como "keep-alive" para isso funcionar , {{HTTPHeader("Connection")}} e {{HTTPHeader("Keep-Alive")}} são ignorados em conexões HTTP/2; Gerenciamento de conexões são feitos por outros mecanismos.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Keep-Alive: <var>parametros</var></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><var>parâmetros</var></dt> + <dd>Uma vírgula separa a lista de parâmetros, Cada consiste de um identificador e um valor separado pelo sinal de igualdade (<code>'='</code>). São possíveis os seguintes identificadores: + <ul> + <li><code>timeout</code>: indicando a quantidade mínima de tempo que uma conexão deve ser mantida aberta (em segundos). Observe que os tempos limite maiores que o tempo limite do TCP podem ser ignorados se nenhuma mensagem TCP keep-alive estiver definida na camada de transporte.</li> + <li><code>max</code>: indicando o número máximo de pedidos que podem ser enviados nesta conexão antes de fechá-lo. <span style="font-size: 1rem; letter-spacing: -0.00278rem;">Menor que </span><code style="font-size: 1rem; letter-spacing: -0.00278rem;">0</code><span style="font-size: 1rem; letter-spacing: -0.00278rem;">, este valor será ignorado por conexões non-pipelined, pois outra requisição será enviada na próxima resposta. Um HTTP pipeline pode usar isso para limitar o pipelining. </span></li> + </ul> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Uma resposta content o cabeçalho <code>Keep-Alive</code>:</p> + +<pre>HTTP/1.1 200 OK +<strong>Connection: Keep-Alive</strong> +Content-Encoding: gzip +Content-Type: text/html; charset=utf-8 +Date: Thu, 11 Aug 2016 15:23:13 GMT +<strong>Keep-Alive: timeout=5, max=1000</strong> +Last-Modified: Mon, 25 Jul 2016 04:32:39 GMT +Server: Apache + +(body)</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tools.ietf.org/id/draft-thomson-hybi-http-timeout-01.html#rfc.section.2">HyperText Transport Protocol Keep-Alive Header</a></td> + <td>The Keep-Alive Header (Experimental specification)</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/rfc7230#appendix-A.1.2">RFC 7230, appendix A.1.2: Keep-Alive</a></td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_dos_navegadores">Compatibilidade dos navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Keep-Alive")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Connection")}}</li> + <li><a href="/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x">Connection management in HTTP/1.x</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/large-allocation/index.html b/files/pt-br/web/http/headers/large-allocation/index.html new file mode 100644 index 0000000000..20c3a2c522 --- /dev/null +++ b/files/pt-br/web/http/headers/large-allocation/index.html @@ -0,0 +1,94 @@ +--- +title: Large-Allocation +slug: Web/HTTP/Headers/Large-Allocation +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Não padronizado + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Large-Allocation +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta não padronizado <strong><code>Large-Allocation</code></strong> diz ao nevagador que a página que está sendo carregada vai performar uma grande alocação. Ele é atualmente implementado somente no Firefox, mas é inofensivo para ser enviado para qualquer navegador.</p> + +<p>Aplicações <a href="/en-US/docs/WebAssembly">WebAssembly</a> ou <em>asm.js</em> podem usar grandes blocos contíguos de memória alocada. Para jogos complexos, por exemplo, estas alocações podem ser bem grandes, algumas vezes grandes na escala de 1GB. O <code>Large-Allocation</code> diz ao navegador que o conteúdo web que será carregado vai querer performar uma grande alocação de memória contígua e o navegador pode reagir a este cabeçalho iniciando um processo dedicado para carregador o documento, por exemplo.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Large-Allocation: 0 +Large-Allocation: <megabytes> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>0</code></dt> + <dd>0 é um valor especial que representa incerteza em relação a qual será o tamanho da alocação.</dd> + <dt><code><megabytes></code></dt> + <dd>O tamanho esperado da alocação a ser performada, em megabytes.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Large-Allocation: 0 +Large-Allocation: 500 +</pre> + +<h2 id="Tratamento_de_erros">Tratamento de erros</h2> + +<p>O cabeçalho <code>Large-Allocation</code> joga mensagens de aviso ou erro quando utilizado incorretamente. Você vai encontrá-los no <a href="/en-US/docs/Tools/Web_Console">console web</a>.</p> + +<dl> + <dt>This page was loaded in a new process due to a <code>Large-Allocation</code> header.</dt> + <dd>Esta mensagem significa que o navegador viu o cabeçalho <code>Large-Allocation</code>, e conseguiu recarregar a página em um novo processo que deve ter mais memória contígua disponível.</dd> + <dt>A <code>Large-Allocation</code> header was ignored due to the load being triggered by a non-GET request.</dt> + <dd>Quando uma requisição {{HTTPMethod("POST")}} é usada para carregar um documento, aquele carregamento não pode ser redirecionado para um novo processo. Este erro é mostrado quando carregando um documento com um cabeçalho <code>Large-Allocation</code> com um método HTTP que não seja GET. Isto pode ter sido causado devido ao documento estar sendo carregado por um formulário de submissão, por exemplo.</dd> + <dt>A <code>Large-Allocation</code> header was ignored due to the presence of windows which have a reference to this browsing context through the frame hierarchy or {{domxref("window.opener")}}.</dt> + <dd> + <p>Este erro significa que o documento não foi carregado no nível mais alto de uma janela ou aba aberta, ou não aberta do usuário. Ele pode ocorrere nestas situações:</p> + + <ul> + <li>O documento com cabeçalho <code>Large-Allocation</code> foi carregado em um {{HTMLElement("iframe")}}. O Firefox não pode mover um iframe em um novo processo atualmente, então o documento deve carregar no novo processo.</li> + <li>O documento com cabeçalho <code>Large-Allocation</code> foi carregado em uma em uma janela que foi aberta pelo {{domxref("window.open()")}}, <code><a target="_blank"></code> ou outros métodos similares sem <code>rel="noopener"</code> ou a funcionalidade <code>"noopener"</code> sendo colocado. Estas janelas devem permanecer no mesmo processo que o abriu, já que eles podem se comunicar, significando que não podemos permití-los trocar processos.</li> + <li>O documento cabeçalho <code>Large-Allocation</code> abriu outra janela com {{domxref("window.open()")}}, <code><a target="_blank"></code> ou outros métodos similares sem a funcionalidade <code>rel="noopener"</code> ou <code>"noopener"</code> sem colocada. Isto é para o mesmo motivo, This is for the same reason as above, ou seja, que eles podem se comunicar e, portanto, não podemos permitir que eles alternem processos.</li> + </ul> + </dd> + <dt>A <code>Large-Allocation</code> header was ignored due to the document not being loaded out of process.</dt> + <dd>O Firefox moveu para uma <a href="/en-US/docs/Mozilla/Firefox/Multiprocess_Firefox">arquitetura multiprocesso</a>, e esta arquitetura é necessária para suportar o cabeçalho <code>Large-Allocation</code>. Alguns <a href="/en-US/docs/Mozilla/Add-ons/SDK">Addons legado</a> podem previnir o Firefox de usar esta nova, e mais rápida arquitetura multiprocesso. Se você tem um destes Addons, então nós vamos continuar a utilizar a antiga arquitetura de processo único para compatibilidade, e não pode lidar com o cabeçalho <code>Large-Allocation</code>.</dd> + <dt>This page would be loaded in a new process due to a <code>Large-Allocation</code> header, however <code>Large-Allocation</code> process creation is disabled on non-Win32 platforms.</dt> + <dd>O Firefox atualmente somente suporta o cabeçalho <code>Large-Allocation</code> nas versões 32-bits do Windows, como fragmentação de memória não é um problema em versões 64-bits. Se você está rodando uma versão não <em>win32 </em>do Firefox, este erro irá aparecer. Esta checagem pode ser desabilitada com a preferência de booleano "dom.largeAllocation. + <p>forceEnable" em about:config.</p> + </dd> +</dl> + +<h2 id="Especificações">Especificações</h2> + +<p>Não faz parte de nenhuma especificação atualmente. Uma explicação das ideias por trás deste cabeçalho podem ser encontradas <a href="https://gist.github.com/mystor/5739e222e398efc6c29108be55eb6fe3">neste documento</a>.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Large-Allocation")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/WebAssembly">WebAssembly</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/last-modified/index.html b/files/pt-br/web/http/headers/last-modified/index.html new file mode 100644 index 0000000000..308e6fe46a --- /dev/null +++ b/files/pt-br/web/http/headers/last-modified/index.html @@ -0,0 +1,87 @@ +--- +title: Last-Modified +slug: Web/HTTP/Headers/Last-Modified +translation_of: Web/HTTP/Headers/Last-Modified +--- +<div>{{HTTPSidebar}}</div> + +<p>A linha de cabeçalho <strong><code>Last-Modified</code></strong> do cabeçalho de resposta HTTP contém a data e a hora em que o servidor de origem acredita que o recurso foi modificado pela última vez. É usado como um validador para determinar se um recurso recebido ou armazenado é o mesmo. Menos preciso do que um cabeçalho {{HTTPHeader("ETag")}}, é um mecanismo de retorno. Os pedidos condicionais {{HTTPHeader("If-Modified-Since")}} or {{HTTPHeader("If-Unmodified-Since")}} fazem uso deste campo.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + <tr> + <th scope="row">{{Glossary("Simple response header", "CORS-safelisted response-header")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox">Last-Modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT +</pre> + +<h2 id="Directives">Directives</h2> + +<dl> + <dt><day-name></dt> + <dd>One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).</dd> + <dt><day></dt> + <dd>2 digit day number, e.g. "04" or "23".</dd> + <dt><month></dt> + <dd>One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).</dd> + <dt><year></dt> + <dd>4 digit year number, e.g. "1990" or "2016".</dd> + <dt><hour></dt> + <dd>2 digit hour number, e.g. "09" or "23".</dd> + <dt><minute></dt> + <dd>2 digit minute number, e.g. "04" or "59".</dd> + <dt><second></dt> + <dd>2 digit second number, e.g. "04" or "59".</dd> + <dt><code>GMT</code></dt> + <dd> + <p>Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.</p> + </dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<pre>Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT +</pre> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7232", "Last-Modified", "2.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Last-Modified")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{HTTPHeader("If-Modified-Since")}}</li> + <li>{{HTTPHeader("If-Unmodified-Since")}}</li> + <li>{{HTTPHeader("Etag")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/link/index.html b/files/pt-br/web/http/headers/link/index.html new file mode 100644 index 0000000000..3df78e1a35 --- /dev/null +++ b/files/pt-br/web/http/headers/link/index.html @@ -0,0 +1,77 @@ +--- +title: Link +slug: Web/HTTP/Headers/Link +tags: + - Cabeçalho HTTP + - HTTP + - Link + - Rascunho + - Referencia +translation_of: Web/HTTP/Headers/Link +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de entidade <strong><code>Link</code></strong> provém maneiras para serializar um ou mais links em cabeçalhos HTTP. Ele é semanticamente equivalente ao elemento HTML {{HTMLElement("link")}}.</p> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Link: < <var>uri-reference</var> >; <var>param1</var>=<var>value1</var>; <var>param2</var>="<var>value2</var>"</pre> + +<dl> + <dt><code><uri-reference></code></dt> + <dd>A referência da URI, precisa ser encapsulado entre <code><</code> e <code>></code>.</dd> +</dl> + +<h3 id="Parâmetros">Parâmetros</h3> + +<p>O cabeçalho <em>link</em> contém parâmetros, os quais são separados com <code>;</code> e são equivalentes aos atributos do elemento {{HTMLElement("link")}}.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<p>A URI precisa ser encapsulado entre <code><</code> e <code>></code>:</p> + +<pre class="brush: http; no-line-numbers example-good notranslate">Link: <https://example.com>; rel="preconnect"</pre> + +<pre class="brush: http; no-line-numbers example-bad notranslate">Link: https://bad.example; rel="preconnect"</pre> + +<h3 id="Especificando_múltiplos_links">Especificando múltiplos <em>links</em></h3> + +<p>Você pode especificar múltiplos <em>links</em> separados por vírgulas, por exemplo:</p> + +<pre class="notranslate">Link: <https://one.example.com>; rel="preconnect", <https://two.example.com>; rel="preconnect", <https://three.example.com>; rel="preconnect"</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(8288, "Link Serialisation in HTTP Headers", 3)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td></td> + </tr> + <tr> + <td>{{RFC(5988, "The Link Header Field", 5)}}</td> + <td><span class="spec-RFC">IETF RFC</span></td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Link")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPStatus(103, "103 Early Hints")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/localização/index.html b/files/pt-br/web/http/headers/localização/index.html new file mode 100644 index 0000000000..2b8ebcc404 --- /dev/null +++ b/files/pt-br/web/http/headers/localização/index.html @@ -0,0 +1,82 @@ +--- +title: Location +slug: Web/HTTP/Headers/Localização +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP +translation_of: Web/HTTP/Headers/Location +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Location</code></strong> indica o URL para qual página deve-se ser redirecionada. Ele só tem significado quando é enviado junto a uma resposta de status <code>3xx</code> (redirecionamento) ou <code>201</code> (criado).</p> + +<p>Em casos de redirecionamento, o método HTTP utilizado para fazer a nova requisição à página apontada pelo cabeçalho <code>Location</code> depende do método original e do tipo de redirecionamento:</p> + +<ul> + <li>Se respostas com status {{HTTPStatus("303")}} (Veja também) sempre levam ao uso do método {{HTTPMethod("GET")}}, {{HTTPStatus("307")}} (Redirecionamento Temporário) e {{HTTPStatus("308")}} (Redirecionamento Permanente) não mudam o método utilizado na requisição original;</li> + <li>{{HTTPStatus("301")}} (Movido Permanentemente) e {{HTTPStatus("302")}} (Encontrado) não mudam o método na maior parte das vezes, entretanto agentes de usuário antigos talvez mudem (basicamente você não sabe se eles farão isso).</li> +</ul> + +<p>Todas as respostas com um desses códigos de status enviam um cabeçalho <code>Location</code>.</p> + +<p>Em casos de recursos de criação, ele indica o URL para o novo recurso criado.</p> + +<p><code>Location</code> e {{HTTPHeader("Content-Location")}} são diferentes: <code>Location</code> indica o alvo de redirecionamento (ou URL do novo recurso criado), enquanto {{HTTPHeader("Content-Location")}} indica o URL direto para ter acesso ao recurso quando <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a> acontecer, sem a necessidade de futura negociação de conteúdo. <code>Location</code> é um cabeçalho associado com a resposta, enquanto {{HTTPHeader("Content-Location")}} é associado com a entidade retornada.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Location: <url> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><url></dt> + <dd>Uma URL relativa (ao URL de requisição) ou absoluta.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Location: /index.html</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "Location", "7.1.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Location")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Location")}}</li> + <li>Código de status de respostas que incluem o cabeçalho <code>Location</code>: {{HTTPStatus("201")}}, {{HTTPStatus("301")}}, {{HTTPStatus("302")}}, {{HTTPStatus("303")}}, {{HTTPStatus("307")}}, {{HTTPStatus("308")}}.</li> +</ul> diff --git a/files/pt-br/web/http/headers/nel/index.html b/files/pt-br/web/http/headers/nel/index.html new file mode 100644 index 0000000000..850c145784 --- /dev/null +++ b/files/pt-br/web/http/headers/nel/index.html @@ -0,0 +1,52 @@ +--- +title: NEL +slug: Web/HTTP/Headers/NEL +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Referencia + - Registro de Erros de Rede + - cabeçalho +translation_of: Web/HTTP/Headers/NEL +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>NEL</code></strong> é usado para configurar o registro de <em>logs</em> de requisição na rede.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">NEL: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_fraction": 0.0, "failure_fraction": 1.0 } +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + </tr> + <tr> + <td><a href="https://w3c.github.io/network-error-logging/#nel-response-header">Registro de Erros de Rede</a></td> + </tr> + </tbody> +</table> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Network_Error_Logging">Explicação do Registro de Redes de Log [Network Error Logging (NEL)]</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/origin/index.html b/files/pt-br/web/http/headers/origin/index.html new file mode 100644 index 0000000000..f110e557d7 --- /dev/null +++ b/files/pt-br/web/http/headers/origin/index.html @@ -0,0 +1,87 @@ +--- +title: Origin +slug: Web/HTTP/Headers/Origin +tags: + - Cabeçalho de requisição + - HTTP + - Origem + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Origin +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição <strong><code>Origin</code></strong> indica onde a requisição se originou. Ele não inclui nenhuma informação do caminho, somente o nome do servidor. Ele é enviado com requisições {{Glossary("CORS")}}, também como requisições {{HTTPMethod("POST")}}. Ele é similar ao cabeçalho {{HTTPHeader("Referer")}}, mas, diferente deste cabeçalho, ele não mostra o caminho inteiro.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: O cabeçalho {{httpheader("Origin")}} não é colocado em <a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch">requisições Fetch</a> com um método {{HTTPMethod("HEAD")}} ou {{HTTPMethod("GET")}} (este comportamento foi corrigido no Firefox 65 — veja {{bug(1508661)}}).</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Origin: null +Origin: <scheme> "://" <hostname> [ ":" <port> ] +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><scheme></dt> + <dd>O protocolo que é usado. Usualmente ele é o protocolo HTTP ou na sua versão segura, HTTPS.</dd> + <dt><hostname></dt> + <dd>O nome do domínio do servidor (para <em>host</em> virtual) ou o endereço IP.</dd> + <dt><port> {{optional_inline}}</dt> + <dd>O número da porta TCP que o servidor está escutando. Se a porta não é dada, a porta padrão do serviço requisitado é implítica (e.g., "80" para uma URL HTTP).</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Origin: https://developer.mozilla.org</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Comentários</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6454", "Origin", "7")}}</td> + <td>Conceito da Origem da Internet</td> + </tr> + <tr> + <td>{{SpecName('Fetch','#origin-header','Origin header')}}</td> + <td>Substitui o cabeçalho <code>Origin</code> como definido na RFC6454.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<div>{{Compat("http.headers.Origin")}}</div> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> + <li>{{HTTPHeader("Referer")}}</li> + <li><a href="/en-US/docs/Web/Security/Same-origin_policy">Same-origin policy</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/pragma/index.html b/files/pt-br/web/http/headers/pragma/index.html new file mode 100644 index 0000000000..863e0cab99 --- /dev/null +++ b/files/pt-br/web/http/headers/pragma/index.html @@ -0,0 +1,81 @@ +--- +title: Pragma +slug: Web/HTTP/Headers/Pragma +tags: + - Cacheamento + - Depreciado + - HTTP + - cabeçalho + - requisição +translation_of: Web/HTTP/Headers/Pragma +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho genérico HTTP/1.0 <code><strong>Pragma</strong></code> é um cabeçalho de implementação específica que pode ter vários efeitos ao longo da cadeia de requisição e resposta. Ele é usado para compatibilidade retroativa com caches do HTTP/1.0 onde o cabeçalho HTTP/1.1 <code>Cache-Control</code> ainda não está presente.</p> + +<div class="note"> +<p><strong>Nota</strong>: <code>Pragma</code> não é especificado para respostas HTTP e por isso não é uma substituição confiável para o cabeçalho genérico HTTP/1.1 <code>Cache-Control</code>, apesar de ele ter o mesmo comportamento que <code>Cache-Control: no-cache</code>, se o cabeçalho <code>Cache-Control</code> for omitido na requisição. Use <code>Pragma</code> somente para compatibilidade retroativa com clientes HTTP/1.0.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}, mas o comportamente de resposta não é especificado e portanto específico de implementação.</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Pragma: no-cache +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>no-cache</dt> + <dd> + <p>O mesmo que <code>Cache-Control: no-cache</code>. Força os caches a mandarem uma requisição ao servidor de origem para validação antes de liberar a versão cacheada.</p> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Pragma: no-cache</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7234", "Pragma", "5.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Pragma")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Cache-Control")}}</li> + <li>{{HTTPHeader("Expires")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/proxy-authenticate/index.html b/files/pt-br/web/http/headers/proxy-authenticate/index.html new file mode 100644 index 0000000000..4c3a9c338a --- /dev/null +++ b/files/pt-br/web/http/headers/proxy-authenticate/index.html @@ -0,0 +1,85 @@ +--- +title: Proxy-Authenticate +slug: Web/HTTP/Headers/Proxy-Authenticate +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Proxy + - Referencia +translation_of: Web/HTTP/Headers/Proxy-Authenticate +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Proxy-Authenticate</code></strong> define o método de autenticação que deve ser utilizado para conseguir acesso ao recurso por trás de um {{Glossary("proxy server")}}. Ele autentica a requisição ao servidor proxy, permitindo que transmita a requisição em frente.</p> + +<p>O cabeçalho <code>Proxy-Authenticate</code> é enviado junto com um {{HTTPStatus("407")}} <code>Proxy Authentication Required</code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Proxy-Authenticate: <type> realm=<realm> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><type></dt> + <dd><a href="/en-US/docs/Web/HTTP/Authentication#Authentication_schemes">Tipo de autenticação</a>. Um tipo comum é <a href="/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a>. A IANA mantém uma <a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">lista de esquemas de autenticação</a>.</dd> + <dt>realm=<realm></dt> + <dd>A descrição da área protegida, o reino. Se um reino não foi especificado, clientes geralmente mostram um nome de <em>host</em> formatado.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Proxy-Authenticate: Basic + +Proxy-Authenticate: Basic realm="Access to the internal site" +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7235", "Proxy-Authenticate", "4.3")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Proxy-Authenticate")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Authentication">Autenticação HTTP</a></li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/proxy-authorization/index.html b/files/pt-br/web/http/headers/proxy-authorization/index.html new file mode 100644 index 0000000000..8203042adc --- /dev/null +++ b/files/pt-br/web/http/headers/proxy-authorization/index.html @@ -0,0 +1,83 @@ +--- +title: Proxy-Authorization +slug: Web/HTTP/Headers/Proxy-Authorization +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Proxy-Authorization +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Proxy-Authorization</code></strong> contém as credenciais para autenticar o agente de usuário em um servidor proxy, usualmente depois do servidor responder com um código de status {{HTTPStatus("407")}} <code>Proxy Authentication Required</code> e cabeçalho {{HTTPHeader("Proxy-Authenticate")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Proxy-Authorization: <type> <credentials></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><type></dt> + <dd><a href="/en-US/docs/Web/HTTP/Authentication#Authentication_schemes">Tipo de autentação</a>. Um tipo comum é <a href="/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a>. Veja também o <a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">registro IANA de esquemas de autenticação</a>.</dd> + <dt><credentials></dt> + <dd>As credenciais são construídas assim: + <ul> + <li>O nome de usuário e senha combinados com dois pontos (<code>aladdin:opensesame</code>).</li> + <li>O resultado é uma cadeia de caracteres codificado em <a href="/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding">base64</a> (<code>YWxhZGRpbjpvcGVuc2VzYW1l</code>).</li> + </ul> + + <div class="note"> + <p><strong>Nota</strong>: Codificação Base64 não significa encriptação ou hashing! Esse método é igualmente seguro se mandar as credenciais em texto limpo (base64 é uma codificação reversível). Prefira o uso de HTTPS em conjunto com Autenticação Básica.</p> + </div> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7235", "Proxy-Authorization", "4.4")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Authentication">Autenticação HTTP</a></li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPHeader("WWW-Authenticate")}}</li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/public-key-pins-report-only/index.html b/files/pt-br/web/http/headers/public-key-pins-report-only/index.html new file mode 100644 index 0000000000..082b05d730 --- /dev/null +++ b/files/pt-br/web/http/headers/public-key-pins-report-only/index.html @@ -0,0 +1,89 @@ +--- +title: Public-Key-Pins-Report-Only +slug: Web/HTTP/Headers/Public-Key-Pins-Report-Only +tags: + - Depreciado + - HPKP + - HTTP + - Obsoleto + - Segurança + - cabeçalho +translation_of: Web/HTTP/Headers/Public-Key-Pins-Report-Only +--- +<p>{{HTTPSidebar}}{{deprecated_header}}</p> + +<div class="blockIndicator note"><strong>Nota:</strong> O mecanismo de Fixação de Chave Pública (<em>Public Key Pinning</em>) foi depreciado em favor do <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificado de Transparência (Certificate Transparency)</a> e do cabeçalho {{HTTPHeader("Expect-CT")}}.</div> + +<p>O cabeçalho de resposta HTTP <code><strong>Public-Key-Pins-Report-Only</strong></code> era utilizado para enviar relatórios de violação de fixação para a <code>report-uri</code> especificada em cabeçalho mas, diferente do {{HTTPHeader("Public-Key-Pins")}} que ainda permite os navegadores se conectarem ao servidor se a fixação é violada. O cabeçalho é silenciosamente ignorado em navegadores modernos já que o suporte para HPKP foi removido. Use o <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificado de Transparência</a> e o cabeçalho {{HTTPHeader("Expect-CT")}} ao invés disso.</p> + +<p>Para mais informação, veja a página de referência do cabeçalho {{HTTPHeader("Public-Key-Pins")}} e o artigo de <a href="/en-US/docs/Web/HTTP/Public_Key_Pinning">Fixação de Chaves Públicas HTTP (HTTP Public Key Pinning)</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Public-Key-Pins-Report-Only: pin-sha256="<pin-value>"; + max-age=<expire-time>; + includeSubDomains; + report-uri="<uri>"</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>pin-sha256="<pin-value>"</code></dt> + <dd>A cadeia de caracteres entre aspas duplas é a impressão digital da Informação da Chave Pública do Sujeito [<em>Subject Public Key Information</em> ({{Glossary("SPKI")}})] codificada em Base64. É possível especificar múltiplos <em>pins</em> para diferentes chaves públicas. Alguns navegadores podem permitir outros algoritmos de hasheamento além do SHA-256 no futuro.</dd> + <dt>max-age=<expire-time></dt> + <dd>Esta diretiva não tem significado para o cabeçalho Public-Key-Pins-Report-Only, ela será ignorada pelos agentes de usuário e o cabeçalho não será cacheado.</dd> + <dt><code>includeSubDomains</code> {{optional_inline}}</dt> + <dd>Se este parâmetro opcional for especificado, esta regra é aplicada a todos os subdomínios do site também.</dd> + <dt><code>report-uri="<uri>"</code></dt> + <dd>Falhas na validação da fixação são reportadas para a URL dada. Esta diretiva deve ser usada com este cabeçalho, caso contrário o cabeçalho não terá efeito.</dd> +</dl> + +<h2 id="Exemplo">Exemplo</h2> + +<pre class="notranslate">Public-Key-Pins-Report-Only: + pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; + pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; + includeSubDomains; + report-uri="https://www.example.org/hpkp-report"</pre> + +<p>Neste exemplo, <strong>pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="</strong> fixa a chave pública do servidor em produção. A segunda declaração de fixação <strong>pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="</strong> também fixa a chave de <em>backup</em>. Esta fixação de chave também é válida para todos os subdomínios, que é dito pela declaração <strong>includeSubDomains</strong>. Finalmente, <strong>report-uri="https://www.example.org/hpkp-report"</strong> explica para onde devem ser reportar falhas de validação de fixação.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7469", "Public-Key-Pins-Report-Only", "2.1")}}</td> + <td>Public Key Pinning Extension for HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Public-Key-Pins-Report-Only")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Public-Key-Pins")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/public-key-pins/index.html b/files/pt-br/web/http/headers/public-key-pins/index.html new file mode 100644 index 0000000000..d9f98be919 --- /dev/null +++ b/files/pt-br/web/http/headers/public-key-pins/index.html @@ -0,0 +1,95 @@ +--- +title: Public-Key-Pins +slug: Web/HTTP/Headers/Public-Key-Pins +tags: + - Depreciado + - HPKP + - HTTP + - Obsoleto + - Referencia + - Segurança + - cabeçalho +translation_of: Web/HTTP/Headers/Public-Key-Pins +--- +<div>{{HTTPSidebar}}{{deprecated_header}}</div> + +<div class="blockIndicator note"><strong>Nota:</strong> O mecanismo de Fixação de Chaves Públicas (Public Key Pinning) foi depreciado em favor do <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificado de Transparência</a> e do cabeçalho {{HTTPHeader("Expect-CT")}}.</div> + +<p>O cabeçalho de resposta HTTP <code><strong>Public-Key-Pins</strong></code> usado para associar uma {{Glossary("key")}} pública criptográfica especifica com um certo servidor web para reduzir o risco de ataques {{Glossary("MITM")}} com certificados forjados, entretanto, ele foi removido em navegadores modernos e não é mais suportado. Use <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificado de Transparência</a> e o cabeçalho {{HTTPHeader("Expect-CT")}} ao invés disso.</p> + +<p>Para mais informação, veja o artigo <em><a href="/en-US/docs/Web/HTTP/Public_Key_Pinning">HTTP Public Key Pinning</a></em>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Public-Key-Pins: pin-sha256="<pin-value>"; + max-age=<expire-time>; + includeSubDomains; + report-uri="<uri>"</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>pin-sha256="<pin-value>"</code></dt> + <dd>A cadeia de caracteres entre aspas duplas é a impressão digital da Informação da Chave Pública do Sujeito [<em>Subject Public Key Information</em> ({{Glossary("SPKI")}})] codificada em Base64. É possível especificar múltiplos <em>pins</em> para diferentes chaves públicas. Alguns navegadores podem permitir outros algoritmos de hasheamento além do SHA-256 no futuro.</dd> + <dt><code>max-age=<expire-time></code></dt> + <dd>O tempo, em segundos, que o navegador deve lembrar que o site só deve ser acessado usando uma das chaves definidas.</dd> + <dt><code>includeSubDomains</code> {{optional_inline}}</dt> + <dd>Se este parâmetro opcional é especificado, este regra vale para todos os subdomínios do site também.</dd> + <dt><code>report-uri="<uri>"</code> {{optional_inline}}</dt> + <dd>Se este parâmetro opcional é especificado, validações de <em>pin</em> que falharam são reportadas ao URL dado.</dd> +</dl> + +<h2 id="Exemplo">Exemplo</h2> + +<div class="warning"> +<p id="HPKP_has_the_potential_to_lock_out_users_for_a_long_time_if_used_incorrectly!_The_use_of_backup_certificates_andor_pinning_the_CA_certificate_is_recommend.">HPKP tem o potencial de bloquear usuários por um longo período de tempo de usado incorretamente! O uso de <em>backup</em> de certificados e/ou fixação do Autoridade de Certificados é recomendado.</p> +</div> + +<pre class="notranslate">Public-Key-Pins: + pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="; + pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="; + max-age=5184000; includeSubDomains; + report-uri="https://www.example.org/hpkp-report"</pre> + +<p>Neste exemplo, <strong>pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs="</strong> fixa a chave pública do servidor usada em produção. A segunda declaração de fixação <strong>pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE="</strong> também fixa a chave de <em>backup</em>. <strong>max-age=5184000</strong> diz ao cliente para guardar esta informação por dois meses, que é um tempo limite razoável de acordo com a IETF RFC. Esta fixação de chave também é valida para todos os subdomínios, que é dito pela declaração do <strong>includeSubDomains</strong>. Finalmente, <strong>report-uri="https://www.example.org/hpkp-report"</strong> diz para onde reportar as validação de fixação que falharam.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7469", "Public-Key-Pins", "2.1")}}</td> + <td>Public Key Pinning Extension for HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Public-Key-Pins")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Public-Key-Pins-Report-Only")}}</li> + <li>{{HTTPHeader("Expect-CT")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/range/index.html b/files/pt-br/web/http/headers/range/index.html new file mode 100644 index 0000000000..440120fd3b --- /dev/null +++ b/files/pt-br/web/http/headers/range/index.html @@ -0,0 +1,94 @@ +--- +title: Range +slug: Web/HTTP/Headers/Range +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - Requisições de Intervalo +translation_of: Web/HTTP/Headers/Range +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <strong><code>Range</code></strong> indica a parte do documento que o servidor deve retornar. Várias partes podem ser requisitadas com um cabeçalho <code>Range</code> de uma vez, e o servidor pode mandar de volta estes intervalos em um documento de múltiplas partes. Se o servidor manda de volta os intervalos, ele usa o {{HTTPStatus("206")}} <code>Partial Content</code> para resposta. Se os intervalos são inválidos, o servidor retorna o erro {{HTTPStatus("416")}} <code>Range Not Satisfiable</code>. O servidor também pode ignorar o cabeçalho <code>Range</code> e enviar o documento inteiro com um código de status {{HTTPStatus("200")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Range: <unit>=<range-start>- +Range: <unit>=<range-start>-<range-end> +Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end> +Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end> +Range: <unit>=-<suffix-length></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><unit></dt> + <dd>A unidade no qual os intervalos são especificados. É geralmente em <code>bytes</code>.</dd> +</dl> + +<dl> + <dt><range-start></dt> + <dd>Um inteiro na dada unidade indicando o começo da requisição de intervalo.</dd> + <dt><range-end></dt> + <dd>Um inteiro na dada unidade indicando o fim da requisição de intervalo. Este valor é opcional e, se omitido, o fim do documento é utilizado como fim do intervalo.</dd> + <dt><suffix-length></dt> + <dd>Um inteiro na dada unidade indicando o número de unidades ao fim do arquivo para retornar.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Requisitando três intervalos deste arquivo.</p> + +<pre class="notranslate">Range: bytes=200-1000, 2000-6576, 19000- +</pre> + +<p>Requisitando os primeiros 500 e últimos 500 <em>bytes</em> do arquivo. A requisição pode ser rejeitada pelo servidor se os intervalos se sobrepõem.</p> + +<pre class="notranslate">Range: bytes=0-499, -500 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7233", "Range", "3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Range")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("If-Range")}}</li> + <li>{{HTTPHeader("Content-Range")}}</li> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPStatus("206")}} <code>Partial Content</code></li> + <li>{{HTTPStatus("416")}} <code>Range Not Satisfiable</code></li> +</ul> diff --git a/files/pt-br/web/http/headers/referer/index.html b/files/pt-br/web/http/headers/referer/index.html new file mode 100644 index 0000000000..5fc94d349a --- /dev/null +++ b/files/pt-br/web/http/headers/referer/index.html @@ -0,0 +1,88 @@ +--- +title: Referer +slug: Web/HTTP/Headers/Referer +tags: + - HTTP + - Reference + - Referencia + - Referenciado + - cabeçalho + - header + - referer +translation_of: Web/HTTP/Headers/Referer +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição HTTP <code><strong>Referer</strong></code> contém o endereço da página web anterior do qual a página atual requerida foi chamada. O <code>Referer</code> permite aos servidores identificar de onde as pessoas estão visitando eles e pode usar esses dados para análise, log e cacheamento otimizado, por exemplo.</p> + +<div class="warning"> +<p><strong>Importante</strong>: Apesar que esse cabeçalho tenha diversos usos inocentes, ele pode ter consequências undesejáveis para segurança e privacidade dos usuários. Veja <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Referer_header:_privacy_and_security_concerns">Referer header: privacy and security concerns</a> para mais informações e mitigações.</p> +</div> + +<p>Note que <em>referer </em>é na verdade, uma má pronúncia da palavra "referrer"("referenciador"). Veja {{interwiki("wikipedia", "HTTP_referer", "HTTP referer no Wikipedia")}} para mais detalhes.</p> + +<p>O cabeçalho <code>Referer</code> não é enviado pelos navegadores se:</p> + +<ul> + <li>O recurso referenciado é um arquivo local ou URI de dados.</li> + <li>Uma requisição HTTP insegura é usada e a página referenciada utilizou o protocolo seguro (HTTPS).</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Referer: <url> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><url></dt> + <dd>Um endereço parcial ou absoluto da página web anterior do qual a página atual requirida foi alcançada. Fragmentos de URL (i.e. "#section") e informações de usuário (i.e. "username:password" em "https://username:password@example.com/foo/bar/") não são inclusos.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "Referer", "5.5.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_d_e_navegador">Compatibilidade d e navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Referer")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{interwiki("wikipedia", "HTTP_referer", "HTTP referer no Wikipedia")}}</li> + <li>{{HTTPHeader("Referrer-Policy")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/referrer-policy/index.html b/files/pt-br/web/http/headers/referrer-policy/index.html new file mode 100644 index 0000000000..b57a57a0a1 --- /dev/null +++ b/files/pt-br/web/http/headers/referrer-policy/index.html @@ -0,0 +1,257 @@ +--- +title: Referrer-Policy +slug: Web/HTTP/Headers/Referrer-Policy +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Referencia + - Referrer-Policy + - Resposta + - privacidade +translation_of: Web/HTTP/Headers/Referrer-Policy +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">O cabeçalho HTTP <strong><code>Referrer-Policy</code></strong> controla quanta <a href="/en-US/docs/Web/Security/Referer_header:_privacy_and_security_concerns">informação de referência</a> (enviado pelo cabeçalho {{HTTPHeader("Referer")}}) deve ser incluída nas requisições.</span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<div class="blockIndicator note"> +<p>O nome original do cabeçalho {{HTTPHeader("Referer")}} é um erro ortográfico da palavra "referrer". O cabeçalho <code>Referrer-Policy</code> não compartilha do mesmo erro ortográfico.</p> +</div> + +<pre class="syntaxbox notranslate">Referrer-Policy: no-referrer +Referrer-Policy: no-referrer-when-downgrade +Referrer-Policy: origin +Referrer-Policy: origin-when-cross-origin +Referrer-Policy: same-origin +Referrer-Policy: strict-origin +Referrer-Policy: strict-origin-when-cross-origin +Referrer-Policy: unsafe-url +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>no-referrer</code></dt> + <dd>O cabeçalho {{HTTPHeader("Referer")}} será omitido completamente. Nenhuma informação de referência será enviada junto com as requisições.</dd> + <dt><code>no-referrer-when-downgrade</code> (padrão)</dt> + <dd>Este é o comportamento padrão quando nenhuma política é especificada, ou se o valor provido é inválido. A origem, caminho e cadeia de consulta ({{glossary("origin")}}, {{glossary("path")}}, and {{glossary("querystring")}}) da URL são enviadas como referência quando os níveis de protocolo de segurança continuam os mesmos (HTTP→HTTP, HTTPS→HTTPS) ou melhora (HTTP→HTTPS), mas não é enviado para destinos menos seguros (HTTPS→HTTP). + <div class="note">Existe um esforço dos navegadores em mover para um valor padrão mais estrito, chamado de <code>strict-origin-when-cross-origin</code> (veja <a href="https://github.com/whatwg/fetch/pull/952">https://github.com/whatwg/fetch/pull/952</a>), considere usar este valor (ou um mais estrito), se possível, quando trocando a Referrer-Policy.</div> + </dd> + <dt><code>origin</code></dt> + <dd>Somente envia a origem ({{glossary("origin")}}) do documento como referência.<br> + Por exemplo, um documento em <code>https://example.com/page.html</code> irá mandar a referência <code>https://example.com/</code>.</dd> + <dt><code>origin-when-cross-origin</code></dt> + <dd>Envia a origem, caminho e cadeia de consulta quando performando uma requisição {{glossary("Same-origin_policy", "same-origin")}}, mas somente envia a origem do documento em outros casos.</dd> + <dt><code>same-origin</code></dt> + <dd>A referência será enviada para <a href="/en-US/docs/Web/Security/Same-origin_policy">origens do mesmo site</a>, mas requisições entre origens não enviarão informação de referência.</dd> + <dt><code>strict-origin</code></dt> + <dd>Envia somente a origem do documento como referência quando o nível de protocolo de segurança se mantém o mesmo (HTTPS→HTTPS), mas não o envia para um destinatário menos seguro (HTTPS→HTTP).</dd> + <dt><code>strict-origin-when-cross-origin</code></dt> + <dd>Envia a origem, caminho e cadeia de consulta quando performando uma requisição de mesma origem, somente envia a origem quando o nível do protocolo de segurança se mantém o mesmo durante uma requisição entre origens (HTTPS→HTTPS), e envia nenhum cabeçalho para destinatários menos seguros (HTTPS→HTTP).</dd> + <dt><code>unsafe-url</code></dt> + <dd>Envia a origem, o caminho e a cadeia de consulta quando performando qualquer requisição, independente da segurança. + <div class="blockIndicator warning"> + <p>Esta política irá vazar informações potencialmente privadas da URL HTTPS do recurso para origens inseguras. Considere o impacto desta configuração com cuidado.</p> + </div> + </dd> +</dl> + +<h2 id="Integração_com_HTML">Integração com HTML</h2> + +<p>Você também pode colocar política de referência dentro do HTML. Por exemplo, você pode colocar uma política de referência para o documento inteiro com um elemento {{HTMLElement("meta")}} com um <a href="/en-US/docs/Web/HTML/Element/meta#attr-name">nome</a> de <code>referrer</code>:</p> + +<pre class="brush: html notranslate"><meta name="referrer" content="origin"></pre> + +<p>Ou colocar ele para requisições individuais com o atributo <code>referrerpolicy</code> nos elementos {{HTMLElement("a")}}, {{HTMLElement("area")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}}, {{HTMLElement("script")}}, or {{HTMLElement("link")}}:</p> + +<pre class="brush: html notranslate"><a href="http://example.com" referrerpolicy="origin"></pre> + +<p>Alternativamente, uma <a href="/en-US/docs/Web/HTML/Link_types">relação de link</a> <code>noreferrer</code> em um elemento <code>a</code>, <code>area</code>, ou <code>link</code> pode ser colocada:</p> + +<pre class="brush: html notranslate"><a href="http://example.com" rel="noreferrer"></pre> + +<h2 id="Integração_com_CSS">Integração com CSS</h2> + +<p>CSS pode buscar recursos referênciados de suas folhas de estilo. Estes recursos seguem a política de referência também como:</p> + +<ul> + <li>Folhas de estilo CSS externas usam a política padrão (<code>no-referrer-when-downgrade</code>), a não ser que seja sobrescrita por um cabeçalho HTTP <code>Referrer-Policy</code> na resposta da folha de estilo CSS.</li> + <li>Para elementos {{HTMLElement("style")}} ou <a href="/en-US/docs/Web/API/HTMLElement/style">atributos <code>style</code></a>, a política de referência do dono do documento é utilizada.</li> +</ul> + +<h2 id="Exemplos">Exemplos</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Política</th> + <th scope="col">Documento</th> + <th scope="col">Navegar para</th> + <th scope="col">Referência</th> + </tr> + </thead> + <tbody> + <tr> + <th><code>no-referrer</code></th> + <td>https://example.com/page</td> + <td><em>qualquer lugar</em></td> + <td><em>(sem referência)</em></td> + </tr> + <tr> + <th rowspan="3"><code>no-referrer-when-downgrade</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(sem referência)</em></td> + </tr> + <tr> + <th><code>origin</code></th> + <td>https://example.com/page</td> + <td><em>qualquer lugar</em></td> + <td>https://example.com/</td> + </tr> + <tr> + <th rowspan="3"><code>origin-when-cross-origin</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.com/page</td> + <td>https://example.com/</td> + </tr> + <tr> + <th rowspan="2"><code>same-origin</code></th> + <td rowspan="2">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td><em>(sem referência)</em></td> + </tr> + <tr> + <th rowspan="3"><code>strict-origin</code></th> + <td rowspan="2">https://example.com/page</td> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(sem referência)</em></td> + </tr> + <tr> + <td><strong>http</strong>://example.com/page</td> + <td><em>qualquer lugar</em></td> + <td>http://example.com/</td> + </tr> + <tr> + <th rowspan="3"><code>strict-origin-when-cross-origin</code></th> + <td rowspan="3">https://example.com/page</td> + <td>https://example.com/otherpage</td> + <td>https://example.com/page</td> + </tr> + <tr> + <td>https://mozilla.org</td> + <td>https://example.com/</td> + </tr> + <tr> + <td><strong>http</strong>://example.org</td> + <td><em>(sem referência)</em></td> + </tr> + <tr> + <th><code>unsafe-url</code></th> + <td>https://example.com/page?q=123</td> + <td><em>qualquer lugar</em></td> + <td>https://example.com/page?q=123</td> + </tr> + </tbody> +</table> + +<h3 id="Especificando_uma_política_de_recuo_fallback">Especificando uma política de recuo (<em>fallback)</em></h3> + +<p>Se você quer especificar uma política de recuo em qualquer caso que a política desejada não tenha um grande suporte do navegador, use uma lista separada por vírgulas com a política desejada especificada por último:</p> + +<pre class="notranslate">Referrer-Policy: no-referrer, strict-origin-when-cross-origin</pre> + +<p>No cenário acima, <code>no-referrer</code> só será usada se <code>strict-origin-when-cross-origin</code> não for suportada pelo navegador.</p> + +<p class="note">Especificar múltiplos valores só é suportado no cabeçalho HTTP <code>Referrer-Policy</code>, e não no atributo <code>referrerpolicy</code>.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-header">Referrer Policy </a></td> + <td>Rascunho do editor</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<div class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</div> + +<p>{{Compat("http.headers.Referrer-Policy")}}</p> + +<div class="note"> +<ul> + <li>Da versão 53 em diante, Gecko possui uma preferência disponível em <code>about:config</code> para permitir usuários colocarem a <code>Referrer-Policy</code> padrão — <span class="quote"> <code>network.http.referer.userControlPolicy</code>.</span></li> + <li>Da versão 59 em diante (veja <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=587523">#587523</a>), isso foi substituído por <code>network.http.referer.defaultPolicy</code> e <code>network.http.referer.defaultPolicy.pbmode</code>.</li> +</ul> + +<p>Valores possíveis são:</p> + +<ul> + <li>0 — <code>no-referrer</code></li> + <li>1 — <code>same-origin</code></li> + <li>2 — <code>strict-origin-when-cross-origin</code></li> + <li>3 — <code>no-referrer-when-downgrade</code> (o padrão)</li> +</ul> +</div> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{interwiki("wikipedia", "HTTP_referer", "HTTP referer on Wikipedia")}}</li> + <li>Quando usando <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a>: {{domxref("Request.referrerPolicy")}}</li> + <li>A obsoleta diretiva <span style="white-space: nowrap;">{{HTTPHeader("Content-Security-Policy")}}</span> {{HTTPHeader("Content-Security-Policy/referrer", "referrer")}} {{Obsolete_Inline}}.</li> + <li><a href="/en-US/docs/Web/Security/Same-origin_policy">Política de mesma origem (<em>Same-origin policy</em>)</a></li> + <li> + <p><a href="https://blog.mozilla.org/security/2015/01/21/meta-referrer/">Tighter Control Over Your Referrers – Mozilla Security Blog</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/retry-after/index.html b/files/pt-br/web/http/headers/retry-after/index.html new file mode 100644 index 0000000000..cc590e0790 --- /dev/null +++ b/files/pt-br/web/http/headers/retry-after/index.html @@ -0,0 +1,80 @@ +--- +title: Retry-After +slug: Web/HTTP/Headers/Retry-After +translation_of: Web/HTTP/Headers/Retry-After +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Retry-After</code></strong> indica quanto tempo o agente de usuário deve aguardar antes de fazer outro pedido de acompanhamento. Existem dois casos principais em que este cabeçalho é usado:</p> + +<ul> + <li>Quando enviado com uma resposta {{HTTPStatus(503)}} (Service Unavailable), indica quanto tempo o serviço deve ficar indisponível.</li> + <li>Quando enviado com uma resposta de redirecionamento, como {{HTTPStatus(301)}} (Moved Permanently), indica o tempo mínimo solicitado que o agente de usuário aguarde antes de realizar o pedido de redirecionamento.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Retry-After: <data-http> +Retry-After: <atraso-segundos> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><data-http></dt> + <dd>Uma data para tentar novamente posteriormente. Veja o cabeçalho {{HTTPHeader("Date")}} para mais detalhes sobre o formato de data HTTP.</dd> + <dt><atraso-segundos></dt> + <dd>Um decimal inteiro não-negativo indicando o tempo em segundos para esperar após a resposta ser recebida.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Lidando_com_uma_indisponibilidade_programada">Lidando com uma indisponibilidade programada</h3> + +<p>O suporte para o cabeçalho <code>Retry-After</code> tanto em clientes quanto em servidores ainda é inconsistente. Apesar disto, alguns indexadores e robôs, como o Googlebot, honram o cabeçalho <code>Retry-After</code>. É útil enviá-lo junto com uma resposta {{HTTPStatus(503)}} (Service Unavailable), assim, os mecanismos de busca poderão continuar indexando o seu site quando a indisponibilidade acabar.</p> + +<pre>Retry-After: Wed, 21 Oct 2015 07:28:00 GMT +Retry-After: 120 +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "Retry-After", "7.1.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_com_navegadores">Compatibilidade com navegadores</h2> + +<p class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você gostaria de contribuir para estes dados, por favor confira <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e nos envie um pull request.</p> + +<p>{{Compat("http.headers.Retry-After")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="https://webmasters.googleblog.com/2011/01/how-to-deal-with-planned-site-downtime.html">Google Webmaster blog: How to deal with planned site downtime</a></li> + <li>{{HTTPStatus(503)}} (Service Unavailable)</li> + <li>{{HTTPStatus(301)}} (Moved Permanently)</li> +</ul> diff --git a/files/pt-br/web/http/headers/save-data/index.html b/files/pt-br/web/http/headers/save-data/index.html new file mode 100644 index 0000000000..dcb2442a0f --- /dev/null +++ b/files/pt-br/web/http/headers/save-data/index.html @@ -0,0 +1,104 @@ +--- +title: Save-Data +slug: Web/HTTP/Headers/Save-Data +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Referencia + - Save-Data + - cabeçalho +translation_of: Web/HTTP/Headers/Save-Data +--- +<p>{{HTTPSidebar}}</p> + +<p>O cabeçalho <strong><code>Save-Data</code></strong> é um booleano no qual, em requisições, indica a preferência do cliente para reduzir uso de dados. Isso pode ser por algumas razões como custo de transferência alto, baixa velocidade de conexão, etc.</p> + +<p>Um valor de <code>On</code> indica uma opção explícita do usuário em querer reduzir a quantidade de dados usados no cliente, e quando comunicade para origens permite elas entregarem conteúdo alternativo para reduzir a quantidade de dados baixados como recursos de imagem e vídeo menores, marcação e estilo diferente, desabilitar <em>polling</em> e atualizações automáticas, e assim por diante.</p> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: Desabilitar HTTP/2 Server Push ({{RFC("7540", "Server Push", "8.2")}}) pode ser desejável para reduzir o <em>download</em> de dados.</p> +</div> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Save-Data: <sd-token></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><sd-token></code></dt> + <dd>Um valor numérico indicando se o cliente quer optar ou não em entrar em modo de utilização de dados reduzido. <code>on</code> significa sim, enquanto <code>off</code> (o padrão) indica não.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>O cabeçalho {{HTTPHeader("Vary")}} assegura que o conteúdo é cacheado apropriadamante (por exemplos assegurando que o usuário não é servido com uma imagem de baixa qualidade do cache quando o cabeçalho <code>Save-Data</code> não está mais presente [<em>e.g.</em> depois de ter trocado de rede celular para Wi-Fi]).</p> + +<h3 id="Com_Save-Data_on">Com <code>Save-Data: on</code></h3> + +<p>Requisição:</p> + +<pre class="notranslate">GET /image.jpg HTTP/1.0 +Host: example.com +Save-Data: on</pre> + +<p>Resposta:</p> + +<pre class="notranslate">HTTP/1.0 200 OK +Content-Length: 102832 +Vary: Accept-Encoding, Save-Data +Cache-Control: public, max-age=31536000 +Content-Type: image/jpeg + +[...] +</pre> + +<h3 id="Sem_Save-Data">Sem <code>Save-Data</code></h3> + +<p>Requisição:</p> + +<pre class="notranslate">GET /image.jpg HTTP/1.0 +Host: example.com +</pre> + +<p>Resposta:</p> + +<pre class="notranslate">HTTP/1.0 200 OK +Content-Length: 481770 +Vary: Accept-Encoding, Save-Data +Cache-Control: public, max-age=31536000 +Content-Type: image/jpeg + +[...] +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/draft-grigorik-http-client-hints-03#section-7">draft-grigorik-http-client-hints-03, section 7: Save-Data</a></td> + <td>HTTP Client Hints</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Save-Data")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="https://css-tricks.com/help-users-save-data/">Ajude seus usuários a "salvar-dados" (Help Your Users `Save-Data`) - CSS Tricks</a></li> + <li><a href="https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/save-data/">Entregando aplicações leves e rápidas com Save-Data (Delivering Fast and Light Applications with Save-Data) - Google Developers</a></li> + <li>Cabeçalho para indicar que o conteúdo servidor varia por <code>Save-Data</code>: {{HTTPHeader("Vary")}}</li> + <li>Funcionalidade CSS @media <code><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-data">prefers-reduced-data</a></code> {{experimental_inline}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/sec-fetch-site/index.html b/files/pt-br/web/http/headers/sec-fetch-site/index.html new file mode 100644 index 0000000000..8d583a9364 --- /dev/null +++ b/files/pt-br/web/http/headers/sec-fetch-site/index.html @@ -0,0 +1,85 @@ +--- +title: Sec-Fetch-Site +slug: Web/HTTP/Headers/Sec-Fetch-Site +translation_of: Web/HTTP/Headers/Sec-Fetch-Site +--- +<p>{{HTTPSidebar}}{{Draft}}</p> + +<p>O cabeçalho de busca de metadados <strong><code>Sec-Fetch-Site</code></strong> indica a relação entre a origem do iniciador da requisição e a origem do recurso.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Fetch Metadata Request Header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>yes, since it has prefix <code>Sec-</code></td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted response header")}}</th> + <td></td> + </tr> + <tr> + <th scope="row">{{Glossary("CORS-safelisted request header")}}</th> + <td></td> + </tr> + </tbody> +</table> + +<h2 id="Syntax">Syntax</h2> + +<pre class="syntaxbox notranslate">Sec-Fetch-Site: cross-site +Sec-Fetch-Site: same-origin +Sec-Fetch-Site: same-site +Sec-Fetch-Site: none +</pre> + +<h2 id="Values">Values</h2> + +<dl> + <dt><code>cross-site</code></dt> + <dd></dd> + <dt><code>same-origin</code></dt> + <dd></dd> + <dt><code>same-site</code></dt> + <dd></dd> + <dt><code>none</code></dt> + <dd>This request does not relate to any context like site, origin, or frame. This can happen when user had initiated this request by, e.g. directly entering a URL in the address bar, opening a bookmark, or draging-and-dropping a file into the browser window.</dd> +</dl> + +<h2 id="Examples">Examples</h2> + +<p>TODO</p> + +<h2 id="Specifications">Specifications</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header">Fetch Metadata Request Headers</a></td> + <td>The Sec-Fetch-Site HTTP Request Header</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + + + +<p>{{Compat("http.headers.Sec-Fetch-Site")}}</p> + +<h2 id="See_also">See also</h2> + +<ul> + <li>{{HTTPHeader("Sec-Fetch-Mode")}}</li> + <li>{{HTTPHeader("Sec-Fetch-User")}}</li> + <li>{{HTTPHeader("Sec-Fetch-Dest")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/server-timing/index.html b/files/pt-br/web/http/headers/server-timing/index.html new file mode 100644 index 0000000000..ff88fe8a52 --- /dev/null +++ b/files/pt-br/web/http/headers/server-timing/index.html @@ -0,0 +1,87 @@ +--- +title: Server-Timing +slug: Web/HTTP/Headers/Server-Timing +tags: + - HTTP + - Performance + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Server-Timing +--- +<p>{{HTTPSidebar}}</p> + +<p>O cabeçalho <strong><code>Server-Timing</code></strong> comunica uma ou mais métricas e descrições para um dado ciclo de requisição e resposta. Ele é usado para dar uma visão superficial de qualquer métrica de tempo do servidor <em>backend</em> (e.g. leitura e escrita de banco de dados, tempo de CPU, acesso ao sistema de arquivos, etc.) nas ferramentas do desenvolvedor no navegador do usuário ou na interface {{domxref("PerformanceServerTiming")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>A sintaxe do cabeçalho <code>Server-Timing</code> permite você comunicar métricas de diversas formas: nome da métrica do servidor somente, métrica com valor, métrica com valor e descrição, métrica com descrição.</p> + +<p>A especificação aconselha que nomes e descrições devem ser mantidas o mais curtas possível (use abreviações e omita valores opicionais quando possível) para minimizar o sobrecarregamento HTTP.</p> + +<pre class="notranslate">// Métrica único sem valor +Server-Timing: missedCache + +// Métrica única com valor +Server-Timing: cpu;dur=2.4 + +// Métrica única com descrição e valor +Server-Timing: cache;desc="Cache Read";dur=23.2 + +// Duas métricas com valor +Server-Timing: db;dur=53, app;dur=47.2 + +// Server-Timing como reboque (trailer) +Trailer: Server-Timing +--- response body --- +Server-Timing: total;dur=123.4 +</pre> + +<h2 id="Privacidade_e_segurança">Privacidade e segurança</h2> + +<p>O cabeçalho <code>Server-Timing</code> pode expôr potenciais aplicações sensíveis e informação de infraestrutura. Considere controlar quais métricas são retornadas, quando e para quem no lado do servidor. Por exemplo, você pode mostrar métricas somente para usuários autenticados e nada para o público.</p> + +<h2 id="Interface_PerformanceServerTiming">Interface PerformanceServerTiming</h2> + +<p>Em adição tendo o cabeçalho <code>Server-Timing</code> de métricas aparecendo nas ferramentas de desenvolvedor do navegador, a interface {{domxref("PerformanceServerTiming")}} habilita ferramentas para automaticamente coletar e processar métricas do JavaScript. Essa interface é restrita para a mesma origem, mas você pode usar o cabeçalho {{HTTPHeader("Timing-Allow-Origin")}} para especificar domínios que estão permitidos de ter acesso às métricas do servidor. A interface está somente disponível em contextos seguros (HTTPS) em alguns navegadores.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{SpecName('Server Timing','#the-server-timing-header-field', 'Server-Timing Header Field')}}</td> + <td>{{Spec2("Server Timing")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Server-Timing")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{domxref("PerformanceServerTiming")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/server/index.html b/files/pt-br/web/http/headers/server/index.html new file mode 100644 index 0000000000..93069ae7aa --- /dev/null +++ b/files/pt-br/web/http/headers/server/index.html @@ -0,0 +1,66 @@ +--- +title: Server +slug: Web/HTTP/Headers/Server +translation_of: Web/HTTP/Headers/Server +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <code><strong>Server</strong></code> contem informação sobre o <span id="result_box" lang="pt"><span>software usado pelo servidor de origem para manipular a solicitação.</span></span></p> + +<p><span id="result_box" lang="pt"><span>Valores excessivamente longos e detalhados do Servidor devem ser evitados, já que eles potencialmente revelam detalhes internos de implementação que podem tornar (um pouco) mais fácil para os invasores encontrarem e explorarem falhas de segurança conhecidas.</span></span></p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Syntaxe">Syntaxe</h2> + +<pre class="syntaxbox">Server: <product> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><product></dt> + <dd><span id="result_box" lang="pt"><span>O nome do software ou (sub) produto que manipula as solicitações.</span></span></dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>Server: Apache/2.4.1 (Unix)</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "Server", "7.4.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semântica e Conteúdo</td> + </tr> + </tbody> +</table> + +<h2 id="Browsers_compatíveis">Browsers compatíveis</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Server")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Allow")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/set-cookie/index.html b/files/pt-br/web/http/headers/set-cookie/index.html new file mode 100644 index 0000000000..35857d6b4b --- /dev/null +++ b/files/pt-br/web/http/headers/set-cookie/index.html @@ -0,0 +1,167 @@ +--- +title: Set-Cookie +slug: Web/HTTP/Headers/Set-Cookie +translation_of: Web/HTTP/Headers/Set-Cookie +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Set-Cookie</code></strong> é usado para enviar cookies de um servidor para o agente usuário.</p> + +<p>Para mais informações, veja o guia em <a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Set-Cookie: <nome-cookie>=<valor-cookie> +Set-Cookie: <nome-cookie>=<valor-cookie>; Expires=<date> +Set-Cookie: <nome-cookie>=<valor-cookie>; Max-Age=<non-zero-digit> +Set-Cookie: <nome-cookie>=<valor-cookie>; Domain=<domain-value> +Set-Cookie: <nome-cookie>=<valor-cookie>; Path=<path-value> +Set-Cookie: <nome-cookie>=<valor-cookie>; Secure +Set-Cookie: <nome-cookie>=<valor-cookie>; HttpOnly + +Set-Cookie: <nome-cookie>=<valor-cookie>; SameSite=Strict +Set-Cookie: <nome-cookie>=<valor-cookie>; SameSite=Lax + +// São possíveis multiplas diretivas, por exemplo: +Set-Cookie: <nome-cookie>=<valor-cookie>; Domain=<domain-value>; Secure; HttpOnly +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><nome-cookie>=<valor-cookie></code></dt> + <dd>Um cookie começa com um par nome-valor: + <ul> + <li>Um <code><nome-cookie></code> pode ser qualquer caractere US-ASCII exeto caracteres de controle (CTLs), espaços, ou tabulações (TAB). Também não deve conter um separador de caractere como os seguintes: ( ) < > @ , ; : \ " / [ ] ? = { }.</li> + <li>Um <code><valor-cookie></code> pode opcionalmente ser atribuido entre aspas duplas e qualquer caractere US-ASCII são permitidos, exceto caracteres de controle (CTLs), espaços em branco, aspas duplas, vírgula, barra invertida e ponto e vírgula. <strong>Codificação</strong>: Muitas implementações realizam codificação URL nos valores de cookie, contudo não é obrigatório pela especificação do RFC. Isso ajuda a satisfazer os requisitos sobre quais caracteres são permitidos para <valor-cookie>.</li> + <li><strong><code>Prefixo __Secure-</code></strong>: Cookies com o nome começando com <code>__Secure-</code> (hífen faz parte do prefixo) precisam ser atribuidos com a flag de segurança e precisam ser de uma página segura (HTTPS).</li> + <li><strong><code>Prefixo __Host-</code></strong>: Cookies com o nome começando com <code>__Host- </code>(hífen faz parte do prefixoprecisam ser atribuidos com a flag de segurança, precisam ser de uma página segura (HTTPS), não precisam ter um domínio especificado (portanto não são enviados para subdomínios) e o caminho (path) precisa ser "/".</li> + </ul> + </dd> + <dt>Expires=<data> {{optional_inline}}</dt> + <dd>O tempo de vida máximo do cookie como uma marcação de tempo (timestamp) HTTP. Veja {{HTTPHeader("Date")}} para a formatação detalhada. Se não especificado, o cookie terá o tempo de vida de uma <strong>sessão de cookie. </strong>Uma sessão é finalizada quando o cliente é desligado, significando que as sessões de cookies serão removidos nesse momento. Contudo, muitos navegadores web têm uma característica denominada de "restaurar sessão" que salvará todas suas abas e as trará de volta na próxima vez em que você utilizar o navegador. Os cookies estarão também presentes e será como se o navegador nunca tivesse sido fechado.</dd> + <dt></dt> + <dd> + <p>Quando uma data de expiração é atribuída, o tempo e a data são relativos ao cliente em que os cookies estão sendo configurados e não ao servidor.</p> + </dd> + <dt>Max-Age=<digito-diferente-de-0> {{optional_inline}}</dt> + <dd>Número de segundos até o cookie expirar. Um ou mais digitos de 1 a 9. Navegadores antigos (ie6, ie7 e ie8) não suportam Max-Age. Para cada navegador, se ambos (Expires e Max-Age) forem atribuídos, Max-Age terá precedência.</dd> + <dt>Domain=<valor-domínio> {{optional_inline}}</dt> + <dd>Especifica os hosts aos quais o cookie será enviado. + <ul> + <li>Se não for especificado, será usado o host do URL do documento atual, não incluindo subdomínios.</li> + <li>Ao contrário das especificações anteriores, pontos de prefixo em nomes de domínio (<code>.example.com</code>) são ignorados.</li> + <li>Se um domínio for especificado, subdomínios estarão sempre incluídos.</li> + </ul> + </dd> + <dt>Path=<valor-caminho> {{optional_inline}}</dt> + <dd>Indica um caminho (path) de URL que necessita existir no recurso solicitado antes de enviar o cabeçalho de Cookie. O caractere %x2F ("/") é interpretado como um separador de diretório e os sub-diretórios serão também correspondidos (por exemplo: Path=/docs, "/docs", "/docs/Web", ou "/docs/Web/HTTP" serão todos correspondidos).</dd> + <dt>Secure {{optional_inline}}</dt> + <dd>Um cookie seguro apenas será enviado para o servidor quando uma requisição utilizando os protocol SSL e HTTPS for realizada. No entanto, informações confidenciais ou sensíveis não deverão ser armazenadas ou transmitidas em Cookies HTTP pois todo o mecanismo é inerentemente inseguro e isso não significa, por exemplo que qualquer informação é criptografada. + <p class="note"><strong>Nota:</strong> Sites inseguros (<code>http:</code>) não podem mais atribuir cookies com a diretiva "secure" (novo em Chrome 52+ firefox Firefox 52+).</p> + </dd> + <dt>HttpOnly {{optional_inline}}</dt> + <dd>Cookies HttpOnly não são acessíveis via JavaScript através da propriedade {{domxref("Document.cookie")}}, as API's {{domxref("XMLHttpRequest")}} e {{domxref("Request")}} são utilizadas para aliviar ataques de cross-site scripting ({{Glossary("XSS")}}).</dd> + <dt>SameSite=Strict<br> + SameSite=Lax {{optional_inline}} {{experimental_inline}}</dt> + <dd>Permite que servidores garantam que um cookie não deve ser enviado juntamente com solicitações de sites cruzados (cross-site) , o que fornece novamente alguma proteção aos ataques de falsificação de solicitação entre sites (CSRF) ({{Glossary("CSRF")}})<em> .</em></dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Sessão_de_cookie">Sessão de cookie</h3> + +<p>Sessão de cookie serão removidos quando o cliente desligar. Eles não especificam as diretivas Expires ou Max-Age. Note que o navegador web tem frequentemente a opção "restaurar sessão" habilitada..</p> + +<pre>Set-Cookie: sessionid=38afes7a8; HttpOnly; Path=/</pre> + +<h3 id="Cookie_permanente">Cookie permanente</h3> + +<p>Ao invés de expirar quando o cliente fecha, os cookies permantentes expiram numa data especificada (Expires), ou depois de uma duração de tempo especificada (Max-Age).</p> + +<pre>Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly +</pre> + +<h3 id="Domínios_inválidos">Domínios inválidos</h3> + +<p>Um cookie pertencente a um domínio que não inclui o servidor original, <a href="https://tools.ietf.org/html/rfc6265#section-4.1.2.3">deve ser rejeitado pelo agente usuário</a>. Por exemplo: O cookie seguinte será rejeitado se foi atribuído por um servidor hospedado em originalcompany.com.</p> + +<pre>Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2019 00:00:00 GMT</pre> + +<h3 id="Prefixo_do_cookie">Prefixo do cookie</h3> + +<p>Nomes de cookies com os prefixos "__Secure-" e "__Host-" podem ser utilizados apenas de eles forem atribuídos com a diretiva "secure" de uma origem segura (HTTPS). Além disso, cookies com o prefixo "__Host-" devem ter um caminho (path) de "/" (o host inteiro) e não devem ter um atributo de dominio. Para clientes que não implementam prefixos de cookie, você não pode contar com essas garantias adicionais e os cookies serão sempre aceitos.</p> + +<pre>// Ambos aceitos quando de uma origem segura (HTTPS) +Set-Cookie: __Secure-ID=123; Secure; Domain=example.com +Set-Cookie: __Host-ID=123; Secure; Path=/ + +// Rejeitado devido a não atribuição da diretiva Secure +Set-Cookie: __Secure-id=1 + +// Rejeitado devido a falta da diretiva Path=/ +Set-Cookie: __Host-id=1; Secure + +// Rejeitado devido a atribuição de um domínio +Set-Cookie: __Host-id=1; Secure; Path=/; domain=example.com +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td> + <td>HTTP State Management Mechanism</td> + </tr> + <tr> + <td>{{RFC("draft-ietf-httpbis-cookie-prefixes-00")}}</td> + <td>Cookie Prefixes</td> + </tr> + <tr> + <td>{{RFC("draft-ietf-httpbis-cookie-same-site-00")}}</td> + <td>Same-Site Cookies</td> + </tr> + <tr> + <td>{{RFC("draft-ietf-httpbis-cookie-alone-01")}}</td> + <td>Strict Secure Cookies</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">A tabela de compatibilidade desta página é gerada a partir das estrutura de dados. Se você quiser contribir com os dados, verifique <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e nos envie um pull request.</p> + +<p>{{Compat("http.headers.Set-Cookie")}}</p> + +<h2 id="Notas_de_compatibilidade">Notas de compatibilidade</h2> + +<ul> + <li>Começando com Chrome 53 e Firefox 52, sites inseguros (<code>http:</code>) não podem mais atribuir cookies com a diretiva "secure".</li> +</ul> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a></li> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/set-cookie/samesite/index.html b/files/pt-br/web/http/headers/set-cookie/samesite/index.html new file mode 100644 index 0000000000..08b3240d24 --- /dev/null +++ b/files/pt-br/web/http/headers/set-cookie/samesite/index.html @@ -0,0 +1,114 @@ +--- +title: SameSite cookies +slug: Web/HTTP/Headers/Set-Cookie/SameSite +tags: + - Referências +translation_of: Web/HTTP/Headers/Set-Cookie/SameSite +--- +<p>O atributo <span class="seoSummary"> <strong><code>SameSite</code></strong> </span> do <span class="seoSummary">{{HTTPHeader("Set-Cookie")}} </span>. O cabeçalho de resposta HTTP permite que você declare se o seu cookie deve ser restrito a um contexto de primeira ou mesma parte.</p> + +<h2 id="Valores">Valores</h2> + +<p>The <code>SameSite</code> aceita três valores:</p> + +<h3 id="Lax"><code>Lax</code></h3> + +<p>Os cookies podem ser enviados com navegação de alto nível e serão enviados juntamente com a solicitação GET iniciada pelo site de terceiros. Este é o valor padrão nos navegadores modernos.</p> + +<h3 id="Strict"><code>Strict</code></h3> + +<p>Os cookies serão enviados apenas em um contexto de primeira parte e não serão enviados juntamente com solicitações iniciadas por sites de terceiros.</p> + +<h3 id="None"><code>None</code></h3> + +<p>Cookies serão enviados em todos os contextos, ou seja, é permitido enviar origem cruzada.</p> + +<p><code>None</code> costumava ser o valor padrão, mas as versões recentes do navegador fizeram <code>Lax</code> o valor padrão para ter uma defesa razoavelmente robusta contra algumas classes de falsificação de solicitações entre sites ({{Glossary("CSRF")}}).</p> + +<p><code>None</code> requer o atributo <a href="#Secure"><code>Secure</code></a> nas versões mais recentes do navegador. Veja abaixo para mais informações.</p> + +<h2 id="Fixação_de_avisos_comuns">Fixação de avisos comuns</h2> + +<h3 id="SameSiteNone_requer_Secure"><code>SameSite=None</code> requer <code>Secure</code></h3> + +<p>O aviso a seguir pode aparecer no seu console:</p> + +<blockquote> +<p>Alguns cookies estão usando mal o atributo "sameSite", então não funcionará como esperado.<br> + Cookie "myCookie" rejeitado porque tem o atributo "sameSite=none", mas está perdendo o atributo "seguro".</p> +</blockquote> + +<p>O aviso aparece porque qualquer cookie que solicitar <code>SameSite=None</code> mas não está marcado <code>Secure</code> será rejeitado.</p> + +<pre class="example-bad notranslate">Set-Cookie: flavor=choco; SameSite=None</pre> + +<p>Para corrigir isso, você terá que adicionar o atributo <code>Secure</code> aos seus cookies <code>SameSite=None</code>.</p> + +<pre class="example-good notranslate">Set-Cookie: flavor=choco; SameSite=None; <strong>Secure</strong></pre> + +<p>Um cookie <a href="#Secure"><code>Secure</code></a> só é enviado ao servidor com uma solicitação criptografada sobre o protocolo HTTPS. Observe que sites inseguros (http:) não pode definir cookies com a diretiva <code>Secure</code>.</p> + +<h3 id="Cookies_sem_padrão_SameSite_para_SameSiteLax">Cookies sem padrão <code>SameSite</code> para <code>SameSite=Lax</code></h3> + +<p>Versões recentes de navegadores modernos fornecem um padrão mais seguro para <code>SameSite</code> para seus cookies e assim a seguinte mensagem pode aparecer no seu console:</p> + +<blockquote> +<p>Alguns cookies estão usando mal o atributo "sameSite", então não funcionará como esperado.<br> + Cookie "myCookie" tem a política "sameSite" definida como "frouxa" porque está faltando um atributo "sameSite" e "sameSite=lax" é o valor padrão para este atributo.</p> +</blockquote> + +<p>O aviso aparece porque a política <code>SameSite</code> para um cookie não especificou explicitamente:</p> + +<pre class="example-bad notranslate">Set-Cookie: flavor=choco</pre> + +<p>Embora você possa confiar em navegadores modernos para aplicar <code>SameSite=Lax</code> automaticamente, você deve sim especificá-lo explicitamente para comunicar claramente sua intenção que <code>SameSite</code> política se aplica ao seu cookie. Isso também melhorará a experiência entre os navegadores, pois nem todos eles são padrão para <code>Lax</code> ainda.</p> + +<pre class="example-good notranslate">Set-Cookie: flavor=choco; <strong>SameSite=Lax</strong></pre> + +<h2 id="Examplo"><strong>Examplo:</strong></h2> + +<pre class="notranslate">RewriteEngine on +RewriteBase "/" +RewriteCond "%{HTTP_HOST}" "^example\.org$" [NC] +RewriteRule "^(.*)" "https://www.example.org/index.html" [R=301,L,QSA] +RewriteRule "^(.*)\.ht$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:01:https://www.example.org:30/:SameSite=None:Secure] +RewriteRule "^(.*)\.htm$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:02:https://www.example.org:30/:SameSite=None:Secure] +RewriteRule "^(.*)\.html$" "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:03:https://www.example.org:30/:SameSite=None:Secure] +[...] +RewriteRule "^admin/(.*)\.html$" "admin/index.php?nav=$1 [NC,L,QSA,CO=RewriteRule:09:https://www.example.org:30/:SameSite=Strict:Secure] +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("6265", "Set-Cookie", "4.1")}}</td> + <td>Mecanismo de gestão do estado HTTP</td> + </tr> + <tr> + <td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-05">draft-ietf-httpbis-rfc6265bis-05</a></td> + <td>Cookie Prefixes, Same-Site Cookies, e Strict Secure Cookies</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Set-Cookie", 5)}}</p> + +<h2 id="Veja_também">Veja também:</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Cookies">HTTP cookies</a></li> + <li>{{HTTPHeader("Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/set-cookie2/index.html b/files/pt-br/web/http/headers/set-cookie2/index.html new file mode 100644 index 0000000000..598e9cc3d4 --- /dev/null +++ b/files/pt-br/web/http/headers/set-cookie2/index.html @@ -0,0 +1,75 @@ +--- +title: Set-Cookie2 +slug: Web/HTTP/Headers/Set-Cookie2 +tags: + - Cookies + - HTTP + - Obsoleto + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Set-Cookie2 +--- +<div>{{HTTPSidebar}} {{obsolete_header}}</div> + +<p>O obsoleto cabeçalho de resposta HTTP <strong><code>Set-Cookie2</code></strong> usado para enviar <em>cookies</em> do servidor para o agente de usuário, mas ele foi depreciado por especificação. Use {{HTTPHeader("Set-Cookie")}} ao invés disso.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Set-Cookie2: <cookie-name>=<cookie-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Comment=<value> +Set-Cookie2: <cookie-name>=<cookie-value>; CommentURL=<http-url> +Set-Cookie2: <cookie-name>=<cookie-value>; Discard +Set-Cookie2: <cookie-name>=<cookie-value>; Domain=<domain-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit> +Set-Cookie2: <cookie-name>=<cookie-value>; Path=<path-value> +Set-Cookie2: <cookie-name>=<cookie-value>; Port=<port-number> +Set-Cookie2: <cookie-name>=<cookie-value>; Secure +Set-Cookie2: <cookie-name>=<cookie-value>; Version=<version-number> + +// Múltiplas diretivas também são possíveis, por exemplo: +Set-Cookie2: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure + +// Múltiplos cookies são separados por vírgula +Set-Cookie2: <cookie-name>=<cookie-value>, <cookie-name>=<cookie-value>, ... +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("2965", "Set-Cookie2")}}</td> + <td>Especificação histórica do Mecanismo de Gerenciamento de Estado do HTTP, obsoleto por {{RFC("6265")}} (<em>Historic specification of HTTP State Management Mechanism, obsoleted by</em> {{RFC("6265")}})</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Set-Cookie2")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Set-Cookie")}}</li> + <li>{{domxref("Document.cookie")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/sourcemap/index.html b/files/pt-br/web/http/headers/sourcemap/index.html new file mode 100644 index 0000000000..075d00e10e --- /dev/null +++ b/files/pt-br/web/http/headers/sourcemap/index.html @@ -0,0 +1,65 @@ +--- +title: SourceMap +slug: Web/HTTP/Headers/SourceMap +translation_of: Web/HTTP/Headers/SourceMap +--- +<div> {{HTTPSidebar}}</div> + +<p>The <strong><code>SourceMap</code></strong> <a href="/en-US/docs/Web/HTTP">HTTP</a> response header links generated code to a <a href="/en-US/docs/Tools/Debugger/How_to/Use_a_source_map">source map</a>, enabling the browser to reconstruct the original source and present the reconstructed original in the debugger.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">SourceMap: <url> +X-SourceMap: <url> (deprecated) +</pre> + +<h3 id="Diretivas">Diretivas</h3> + +<dl> + <dt><code><url></code></dt> + <dd>A relative (to the request URL) or absolute URL pointing to a source map file.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre>SourceMap: /path/to/file.js.map</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Titulo</th> + </tr> + <tr> + <td><a href="https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k">Draft document</a></td> + <td>Source Map Revision 3 Proposal</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p class="hidden">A Tabela de compatibilidade nesta página é gerada de dados estruturados.If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.SourceMap")}}</p> + +<h2 id="Veja_Também">Veja Também</h2> + +<ul> + <li><a href="/en-US/docs/Tools/Debugger/How_to/Use_a_source_map">Firefox Developer Tools: using a source map</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/strict-transport-security/index.html b/files/pt-br/web/http/headers/strict-transport-security/index.html new file mode 100644 index 0000000000..90f2778b4e --- /dev/null +++ b/files/pt-br/web/http/headers/strict-transport-security/index.html @@ -0,0 +1,122 @@ +--- +title: Strict-Transport-Security +slug: Web/HTTP/Headers/Strict-Transport-Security +tags: + - HSTS + - HTTP + - HTTPS + - Segurança + - header +translation_of: Web/HTTP/Headers/Strict-Transport-Security +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong>HTTP <code>Strict-Transport-Security</code></strong> (geralmente abreviado como {{Glossary("HSTS")}}) permite que um site informe aos navegadores que ele deve ser acessado apenas por HTTPS, em vez de usar HTTP.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de Cabeçalho</th> + <td>{{Glossary("Cabeçalho de Resposta")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Nome do cabeçalho proibido")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">Strict-Transport-Security: max-age=<expire-time> +Strict-Transport-Security: max-age=<expire-time>; includeSubDomains +Strict-Transport-Security: max-age=<expire-time>; preload +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>max-age=<expire-time></code></dt> + <dd>O tempo, em segundos, que o navegador deve lembrar que um site só pode ser acessado usando HTTPS.</dd> + <dt><code>includeSubDomains</code> {{optional_inline}}</dt> + <dd>Se este parâmetro opcional for especificado, esta regra também será aplicada a todos os subdomínios do site.</dd> + <dt><code>preload</code> {{optional_inline}}</dt> + <dd>Consulte {{anch("Preloading Strict Transport Security")}} <font>para detalhes. </font><font>Não faz parte da especificação.</font></dd> +</dl> + +<h2 id="Descrição">Descrição</h2> + +<p><font>Se um site aceitar uma conexão por meio de HTTP e redirecionar para HTTPS, os visitantes poderão se comunicar inicialmente com a versão não criptografada do site antes de serem redirecionados, se, por exemplo, o visitante digitar http://www.foo.com/ ou até mesmo apenas foo.com </font><font>Isso cria uma oportunidade para um ataque man-in-the-middle. </font><font>O redirecionamento pode ser explorado para direcionar os visitantes a um site mal-intencionado em vez da versão segura do site original.</font></p> + +<p>O cabeçalho HTTP Strict Transport Security informa ao navegador que ele nunca deve carregar um site usando HTTP e deve converter automaticamente todas as tentativas de acessar o site usando HTTP para solicitações HTTPS.</p> + +<div class="note"><strong>Nota:</strong> O cabeçalho <code>Strict-Transport-Security</code> <font><font>é </font></font><strong><font><font>ignorado</font></font></strong><font><font> pelo navegador quando seu site é acessado usando HTTP; </font><font>isso ocorre porque um invasor pode interceptar conexões HTTP e injetar o cabeçalho ou removê-lo. </font><font>Quando seu site é acessado por HTTPS sem erros de certificado, o navegador sabe que seu site é capaz de HTTPS e honrará o </font></font><code>Strict-Transport-Security</code><font><font>cabeçalho.</font></font></div> + +<h3 id="Um_cenário_de_exemplo"><font><font>Um cenário de exemplo</font></font></h3> + +<p> </p> + +<p><font><font>Você faz login em um ponto de acesso Wi-Fi gratuito em um aeroporto e começa a navegar na Web, visitando seu serviço bancário on-line para verificar seu saldo e pagar algumas contas. </font><font>Infelizmente, o ponto de acesso que você está usando é, na verdade, o laptop de um hacker, e ele está interceptando sua solicitação HTTP original e redirecionando você para um clone do site do seu banco, em vez do real. </font><font>Agora seus dados privados são expostos ao hacker.</font></font></p> + +<p><font><font>Segurança de Transporte Estrito (</font></font>Strict Transport Security<font><font>) resolve esse problema; d</font><font>esde que você tenha acessado o site do seu banco uma vez usando HTTPS, e o site do banco use o Strict Transport Security, seu navegador saberá usar automaticamente apenas HTTPS, o que impede que os hackers realizem um ataque man-in-the-middle.</font></font></p> + +<p> </p> + +<h3 id="Como_o_navegador_lida_com_isso"><font><font> Como o navegador lida com isso</font></font></h3> + +<p> </p> + +<p><font><font>Na primeira vez em que seu site é acessado usando HTTPS e retorna o cabeçalho </font></font><code>Strict-Transport-Security</code><font><font>, o navegador registra essas informações, para que futuras tentativas de carregar o site usando HTTP usem o HTTPS automaticamente.</font></font></p> + +<p><font><font>Quando o tempo de expiração especificado pelo cabeçalho Strict-Transport-Security expirar, a próxima tentativa de carregar o site via HTTP prosseguirá normalmente, em vez de usar automaticamente o HTTPS.</font></font></p> + +<p><font><font>Sempre que o cabeçalho Strict-Transport-Security for entregue ao navegador, ele atualizará o tempo de expiração desse site, para que os sites possam atualizar essas informações e impedir que o tempo limite expire. </font><font>Caso seja necessário desativar a Segurança de Transporte Restrita, a configuração da duração máxima para 0 (através de uma conexão https) expirará imediatamente o cabeçalho </font></font><code>Strict-Transport-Security</code><font><font>, permitindo o acesso via http.</font></font></p> + +<p> </p> + +<h2 id="Pré-Carregamento_-_Strict_Transport_Security">Pré-Carregamento - Strict Transport Security</h2> + +<p><font><font>O Google mantém </font></font><a href="https://hstspreload.appspot.com/" rel="noopener"><font><font>um serviço de pré-carregamento de HSTS</font></font></a><font><font>. </font><font>Ao seguir as diretrizes e enviar seu domínio com sucesso, os navegadores nunca se conectarão ao seu domínio usando uma conexão insegura. </font><font>Enquanto o serviço é hospedado pelo Google, todos os navegadores declararam a intenção de usar (ou de fato começaram a usar) a lista de pré-carregamento. </font><font>No entanto, não faz parte da especificação da HSTS e não deve ser tratada como oficial.</font></font></p> + +<ul> + <li>Informações sobre a lista de pré-carregamento de HSTS no Chrome: <a href="https://www.chromium.org/hsts">https://www.chromium.org/hsts</a></li> + <li>Consulta da lista de pré-carregamento do Firefox HSTS: <a href="https://dxr.mozilla.org/comm-central/source/mozilla/security/manager/ssl/nsSTSPreloadList.inc">nsSTSPreloadList.inc</a></li> +</ul> + +<h2 id="Exemplos">Exemplos</h2> + +<p><font>Todos os subdomínios presentes e futuros serão HTTPS para uma idade máxima de 1 ano. </font><font>Isso bloqueia o acesso a páginas ou subdomínios que só podem ser veiculados por HTTP.</font></p> + +<pre>Strict-Transport-Security: max-age=31536000; includeSubDomains</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName('HSTS')}}</td> + <td>{{Spec2('HSTS')}}</td> + <td>Initial definition</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_do_navegador"><font><font>Compatibilidade do navegador</font></font></h2> + +<p class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, confira <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> e envie-nos um pedido de pull (pull request).</p> + +<p>{{Compat("http.headers.Strict-Transport-Security")}}</p> + +<h2 id="Veja_também"><font><font>Veja também</font></font></h2> + +<ul> + <li>Postagem no blog: <a class="external" href="http://blog.sidstamm.com/2010/08/http-strict-transport-security-has.html">HTTP Strict Transport Security has landed!</a></li> + <li>Postagem no blog: <a class="external" href="http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/">HTTP Strict Transport Security (force HTTPS)</a></li> + <li>Artigo OWASP: <a href="https://www.owasp.org/index.php/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a></li> + <li>Wikipedia: <a href="http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/te/index.html b/files/pt-br/web/http/headers/te/index.html new file mode 100644 index 0000000000..9009095fca --- /dev/null +++ b/files/pt-br/web/http/headers/te/index.html @@ -0,0 +1,88 @@ +--- +title: TE +slug: Web/HTTP/Headers/TE +tags: + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/TE +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de requisição <code><strong>TE</strong></code> especifica a codificação de transferência que o agente de usuário está propício a aceitar (você poderia informalmente chamar ele de <em><code>Accept-Transfer-Encoding</code></em>, o que seria mais intuitivo).</p> + +<div class="note"><a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2">Em HTTP/2 - o cabeçalho <code>TE</code> somente é aceito se o valor <code>trailers</code> é colocado.</a></div> + +<p>Veja também o cabeçalho de resposta {{HTTPHeader("Transfer-Encoding")}} para maiores detalhes sobre codificações de transferência. Note que <code>chunked</code> é sempre aceito para receptores HTTP/1.1 e você não precisa especificar <code>"chunked"</code> usando o cabeçalho <code>TE</code>. Entretanto, ele é útil para configurar se o cliente está aceitando campos de rabeira (<em>trailer fields</em>) em uma codificação de transferência fragmentada usando os valores "<em>trailers</em>".</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">TE: compress +TE: deflate +TE: gzip +TE: trailers + +// Multiple directives, weighted with the {{glossary("quality values", "quality value")}} syntax: +TE: trailers, deflate;q=0.5 +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>compress</code></dt> + <dd>Um formato usando o algoritmo de <a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW) é aceito como nome de codificação de transferência.</dd> + <dt><code>deflate</code></dt> + <dd>Usar a estrutura <a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> é aceito como nome da codificação de transferência.</dd> + <dt><code>gzip</code></dt> + <dd>Um formato usando a <a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">codificação Lempel-Ziv</a> (LZ77), com um CRC 32-bit é aceito como nome da codificação de transferência.</dd> + <dt><code>trailers</code></dt> + <dd>Indica que o cliente está sujeito a aceitar campos <em>trailer</em> em uma codificação de transferência fragmentada.</dd> + <dt><code>q</code></dt> + <dd> + <p>Quando múltiplas codificações de transferência são aceitas, o parâmetro <code>q</code> da sintaxe de <a href="/en-US/docs/Glossary/Quality_values">valor de qualidade</a> pode elencar codificações por preferência.</p> + </dd> +</dl> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7230", "TE", "4.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.TE")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> + <li>{{HTTPHeader("Trailer")}}</li> + <li> + <p><a href="https://en.wikipedia.org/wiki/Chunked_transfer_encoding">Codificação de transferência fragmentada (<em>Chunked transfer encoding</em>)</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/timing-allow-origin/index.html b/files/pt-br/web/http/headers/timing-allow-origin/index.html new file mode 100644 index 0000000000..6ea05b265b --- /dev/null +++ b/files/pt-br/web/http/headers/timing-allow-origin/index.html @@ -0,0 +1,83 @@ +--- +title: Timing-Allow-Origin +slug: Web/HTTP/Headers/Timing-Allow-Origin +tags: + - CORS + - HTTP + - Referencia + - Timing-Allow-Origin + - cabeçalho +translation_of: Web/HTTP/Headers/Timing-Allow-Origin +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <code><strong>Timing-Allow-Origin</strong></code> especifica origens que são permitidas de ver os valores dos atributos por funcionalidades da <a href="/en-US/docs/Web/API/Resource_Timing_API">Resource Timing API</a>, na qual caso contrário será reportada como zero dada as restrições entre origens.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Timing-Allow-Origin: * +Timing-Allow-Origin: <origin>[, <origin>]* +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>*</dt> + <dd>O servidor pode especificar "*" como um coringa, sendo assim permitindo qualquer origem de ver os tempos dos recursos.</dd> + <dt><origin></dt> + <dd>Especifica uma URI que pode ver os tempos dos recursos. Você pode especificar várias origens, separadas por vírgulas.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Para permitir qualquer recurso veja os tempos dos recursos:</p> + +<pre class="notranslate">Timing-Allow-Origin: *</pre> + +<p>Para permitir <code>https://developer.mozilla.org</code> de ver os tempos de recursos de, você pode especificar:</p> + +<pre class="notranslate">Timing-Allow-Origin: https://developer.mozilla.org</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName('Resource Timing 3', '#sec-timing-allow-origin', 'Timing-Allow-Origin')}}</td> + <td>{{Spec2("Resource Timing 3")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Timing-Allow-Origin")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/API/Resource_Timing_API">Resource Timing API</a></li> + <li><a href="/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API">Usando a Resource Timing API</a></li> + <li>{{HTTPHeader("Vary")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/tk/index.html b/files/pt-br/web/http/headers/tk/index.html new file mode 100644 index 0000000000..afe3890440 --- /dev/null +++ b/files/pt-br/web/http/headers/tk/index.html @@ -0,0 +1,100 @@ +--- +title: Tk +slug: Web/HTTP/Headers/Tk +tags: + - DNT + - HTTP + - Rastreamento + - Referencia + - Resposta + - cabeçalho +translation_of: Web/HTTP/Headers/Tk +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong><code>Tk</code></strong> indica o status de rastreamento que foi aplicado à requisição correspondente.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Tk: ! (em construção) +Tk: ? (dinâmico) +Tk: G (portão ou múltiplas partes) +Tk: N (não está rastreando) +Tk: T (rastreando) +Tk: C (rastreando com consentimento) +Tk: P (potencial consentimento) +Tk: D (desconsiderando DNT) +Tk: U (atualizado) +</pre> + +<h3 id="Diretivas">Diretivas</h3> + +<dl> + <dt>!</dt> + <dd>Em construção. O servidor de origem está atualmente testando sua comunicação de status de rastreamento.</dd> + <dt>?</dt> + <dd>Dinâmico. O servidor de origem precisa de mais informação para determinar o status de rastreamento.</dd> + <dt>G</dt> + <dd>Portão ou múltiplas partes. O servidor está agindo como um portão para uma troca envolvendo várias múltiplas partes.</dd> + <dt>N</dt> + <dd>Não está rastreando.</dd> + <dt>T</dt> + <dd>Rastreando.</dd> + <dt>C</dt> + <dd>Rastreamento com consentimento. O servidor de origem acredita que ele recebeu consentimento a priori para rastrear o usuário, agente de usuário ou dispositivo.</dd> + <dt>P</dt> + <dd>Potencial consentimento. O servidor origem não conhece, em tempo real, se ele recebeu consentimento a priori para rastrear o usuário, o agente de usuário ou dispositivo, mas promete não usar ou compartilhar qualquer dado <code>DNT:1</code> até que o consentimento seja determinado, e promete futuramente deletar ou permanentemente sumir com a identidade em até 48 horas para qualquer dado <code>DNT:1</code> recebido para qual o consentimento não tenha sido recebido.</dd> + <dt>D</dt> + <dd>Desconsiderando DNT. O servidor de origem está incapacitado ou relutante em respeitar uma preferência de rastreamento recebida do agente de usuário requisitante.</dd> + <dt>U</dt> + <dd>Atualizado. A requisição resultou em uma potencial mudança no status de rastreamento aplicado ao usuário, agente de usuário ou dispositivo.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>O cabeçalho <code>Tk</code> para um recurso que diz não querer ser rastreado se parece com isso:</p> + +<pre class="notranslate">Tk: N</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName('Tracking','#Tk-header-defn', 'Tk header field')}}</td> + <td>{{Spec2("Tracking")}}</td> + <td>Definição inicial.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.Tk")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>Cabeçalho {{HTTPHeader("DNT")}}</li> + <li>{{domxref("Navigator.doNotTrack")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/trailer/index.html b/files/pt-br/web/http/headers/trailer/index.html new file mode 100644 index 0000000000..e0d131371b --- /dev/null +++ b/files/pt-br/web/http/headers/trailer/index.html @@ -0,0 +1,105 @@ +--- +title: Trailer +slug: Web/HTTP/Headers/Trailer +tags: + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Trailer +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <strong>Trailer</strong> permite o remetente incluir campos adicionais ao final de mensagens fragmentadas visando prover metadados que podem ser dinamicamente gerados enquanto o corpo da mensagem é enviado, como a mensagem de checagem de integridade, assinatura digital, ou status de pós-processamento.</p> + +<div class="note"> +<p>O cabeçalho de requisição {{HTTPHeader("TE")}} precisa ser colocado como "trailers" para permitir campos de reboque (<em>trailers</em>).</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Trailer: header-names</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>header-names</code></dt> + <dd>Cabeçalhos HTTP que estarão presentes na parte de reboque das mensagens fragmentadas. Estes campos de cabeçalhos <strong>não</strong> estão permitidos: + <ul> + <li>cabeçalhos de enquadramento de mensagem (e.g., {{HTTPHeader("Transfer-Encoding")}} e {{HTTPHeader("Content-Length")}}),</li> + <li>Cabeçalhos de roteamento (e.g., {{HTTPHeader("Host")}}),</li> + <li>Modificadores de requisição (e.g., controles e condicionais, como {{HTTPHeader("Cache-Control")}}, {{HTTPHeader("Max-Forwards")}}, ou {{HTTPHeader("TE")}}), </li> + <li>cabeçalhos de autenticação (e.g., {{HTTPHeader("Authorization")}} ou {{HTTPHeader("Set-Cookie")}}),</li> + <li>ou {{HTTPHeader("Content-Encoding")}}, {{HTTPHeader("Content-Type")}}, {{HTTPHeader("Content-Range")}}, e <code>Trailer</code> em si.</li> + </ul> + </dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Codificação_de_transferência_fragmentada_usando_cabeçalho_de_reboque">Codificação de transferência fragmentada usando cabeçalho de reboque</h3> + +<p>Neste exemplo, o cabeçalho {{HTTPHeader("Expires")}} é usado no fim da mensagem fragmentada e serve como cabeçalho de reboque.</p> + +<pre class="notranslate">HTTP/1.1 200 OK +Content-Type: text/plain +Transfer-Encoding: chunked +Trailer: Expires + +7\r\n +Mozilla\r\n +9\r\n +Developer\r\n +7\r\n +Network\r\n +0\r\n +Expires: Wed, 21 Oct 2015 07:28:00 GMT\r\n +\r\n +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7230", "Trailer", "4.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + <tr> + <td>{{RFC("7230", "Chunked trailer part", "4.1.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Trailer")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Transfer-Encoding")}}</li> + <li>{{HTTPHeader("TE")}}</li> + <li> + <p><a href="https://en.wikipedia.org/wiki/Chunked_transfer_encoding">Codificação de transferência fragmentada</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/transfer-encoding/index.html b/files/pt-br/web/http/headers/transfer-encoding/index.html new file mode 100644 index 0000000000..0b59973bcc --- /dev/null +++ b/files/pt-br/web/http/headers/transfer-encoding/index.html @@ -0,0 +1,112 @@ +--- +title: Transfer-Encoding +slug: Web/HTTP/Headers/Transfer-Encoding +tags: + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Transfer-Encoding +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>Transfer-Encoding</code></strong> especifica a forma de codificação usada para transferir seguramente o corpo da mensagem ({{Glossary("Payload body","payload body")}}) para o usuário.</p> + +<div class="note"><a href="https://wikipedia.org/wiki/HTTP/2">HTTP/2</a> não suporta o mecanismo de codificação de trasferência fragmentada do HTTP 1.1, já que ele provém o próprio, e mais eficiente, mecanismo para <em>streaming</em> de dados.</div> + +<p><code>Transfer-Encoding</code> é um cabeçalho salto-por-salto (<em><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers#hbh">hop-by-hop header</a></em>), que é aplicado a uma mensagem entre dois nós, não ao recurso em si. Cada segmento da conexão multi-nós pode usar diferentes valores <code>Transfer-Encoding</code>. Se você quer comprimir dados através da conexão inteira, use o cabeçalho {{HTTPHeader("Content-Encoding")}} ao invés disso.</p> + +<p>Quando presente em uma resposta para uma requisição {{HTTPMethod("HEAD")}} que não tem corpo, ele indica o valor que seria aplicado a mensagem {{HTTPMethod("GET")}} correspondente.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Transfer-Encoding: chunked +Transfer-Encoding: compress +Transfer-Encoding: deflate +Transfer-Encoding: gzip +Transfer-Encoding: identity + +<em>// Diversos valores podem ser listados, separados por vírgula</em> +Transfer-Encoding: gzip, chunked</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>chunked</code></dt> + <dd>Dados enviados em uma série de fragmentos. O cabeçalho {{HTTPHeader("Content-Length")}} é omitido neste caso e no começo de cada fragmento, você precisa adicionar o tamanho do fragmento atual em formato hexadecimal, seguido por '<code>\r\n</code>' e o fragmento em si, seguido por outro '<code>\r\n</code>'. O fragmento final é um fragmento normal, com exceção que seu tamanho é zero. Ele é seguido por um reboque, que consiste de uma (possívelmente vazia) sequência de cabeçalhos de entidade.</dd> + <dt><code>compress</code></dt> + <dd>Um formato usando o algoritmo <a class="external" href="http://en.wikipedia.org/wiki/LZW">Lempel-Ziv-Welch</a> (LZW). O nome do valor foi pego do programa UNIX <em>compress</em>, que implementa o algoritmo.<br> + Como o programa de compressão, que desapareceu da maioria das distribuições UNIX, esta codificação de conteúdo não é usada por quase nenhum navegador atualmente, em partes por causa do seu problema de patente (que expirou em 2003).</dd> + <dt><code>deflate</code></dt> + <dd>Usando a estrutura <a class="external" href="http://en.wikipedia.org/wiki/Zlib">zlib</a> (definida na <a class="external" href="http://tools.ietf.org/html/rfc1950">RFC 1950</a>), com o algoritmo de compressão <a class="external" href="http://en.wikipedia.org/wiki/DEFLATE"><em>deflate</em></a> (definido em <a class="external" href="http://tools.ietf.org/html/rfc1952">RFC 1951</a>).</dd> + <dt><code>gzip</code></dt> + <dd>O formato usando a <a class="external" href="http://en.wikipedia.org/wiki/LZ77_and_LZ78#LZ77">codificação Lempel-Ziv</a> (LZ77), com CRC 32-bit. Este é originalmente o formato do programa UNIX <em>gzip</em>. O padrão HTTP/1.1 também recomenda que os servidores que suportem esta codificação de conteúdo devem reconhecer <code>x-gzip</code> como um pseudônimo, para propósitos de compatibilidade.</dd> + <dt><code>identity</code></dt> + <dd>Indica a função de identidade (i.e. sem compressão, nem modificação). Este <em>token</em>, exceto se explicitamente especificado, é sempre considerado aceitável.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Codificação_fragmentada">Codificação fragmentada</h3> + +<p>Codificação fragmentada é útil quando grandes quantidade de dados estão sendo enviados para o cliente e o tamanho total da resposta pode não ser conhecido até que a requisição seja totalmente processada. Por exemplo, quando gerando uma grande tabela HTML resultante de uma consulta no banco de dados ou transmitindo grandes imagens. A resposta fragmentada se parece com isto:</p> + +<pre class="notranslate">HTTP/1.1 200 OK +Content-Type: text/plain +Transfer-Encoding: chunked + +7\r\n +Mozilla\r\n +9\r\n +Developer\r\n +7\r\n +Network\r\n +0\r\n +\r\n</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7230", "Transfer-Encoding", "3.3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Transfer-Encoding")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Accept-Encoding")}}</li> + <li>{{HTTPHeader("Content-Encoding")}}</li> + <li>{{HTTPHeader("Content-Length")}}</li> + <li>Cabeçalho que regulam o uso de reboques: {{HTTPHeader("TE")}} (requisições) e {{HTTPHeader("Trailer")}} (respostas).</li> + <li> + <p><a href="https://en.wikipedia.org/wiki/Chunked_transfer_encoding">Codificação de transferência fragmentada</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/upgrade-insecure-requests/index.html b/files/pt-br/web/http/headers/upgrade-insecure-requests/index.html new file mode 100644 index 0000000000..443d8d2d5f --- /dev/null +++ b/files/pt-br/web/http/headers/upgrade-insecure-requests/index.html @@ -0,0 +1,72 @@ +--- +title: Upgrade-Insecure-Requests +slug: Web/HTTP/Headers/Upgrade-Insecure-Requests +translation_of: Web/HTTP/Headers/Upgrade-Insecure-Requests +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho HTTP <strong><code>Upgrade-Insecure-Requests</code></strong> envia um sinal ao servidor expressando a preferência do cliente por uma resposta criptografada e autenticada, e podendo manipular com êxito a diretiva {{CSP("upgrade-insecure-requests")}} <a href="/en-US/docs/Web/Security/CSP">CSP</a>.</p> + +<p> </p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<p> </p> + +<h2 id="Syntaxe">Syntaxe</h2> + +<pre class="syntaxbox">Upgrade-Insecure-Requests: 1</pre> + +<h2 id="Exemplos">Exemplos</h2> + +<p><span id="result_box" lang="pt"><span>Um cliente solicita ao servidor que ele faça o suporte aos mecanismos de upgrade de {{CSP ("upgrade-insecure-requests")}}:</span></span></p> + +<pre>GET / HTTP/1.1 +Host: example.com +Upgrade-Insecure-Requests: 1</pre> + +<p><span id="result_box" lang="pt"><span>O servidor agora pode redirecionar para uma versão segura do site.</span> <span>Um cabeçalho {{HTTPHeader ("Vary")}} pode ser usado para que o site não seja veiculado por caches à clientes que não oferecem suporte ao mecanismo de upgrade.</span></span></p> + +<pre>Local: https://example.com/ +Vary: Upgrade-Insecure-Requests</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{specName("Upgrade Insecure Requests", "#preference", "upgrade-insecure-requests")}}</td> + <td>{{Spec2('Upgrade Insecure Requests')}}</td> + <td>Initial definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_do_Navegador">Compatibilidade do Navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Upgrade-Insecure-Requests")}}</p> + +<h2 id="Veja_também">Veja também:</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li>CSP {{CSP("upgrade-insecure-requests")}} directive</li> +</ul> diff --git a/files/pt-br/web/http/headers/user-agent/index.html b/files/pt-br/web/http/headers/user-agent/index.html new file mode 100644 index 0000000000..8d8341594a --- /dev/null +++ b/files/pt-br/web/http/headers/user-agent/index.html @@ -0,0 +1,147 @@ +--- +title: User-Agent +slug: Web/HTTP/Headers/User-Agent +tags: + - Agente de Usuário + - Cabeçalho HTTP + - HTTP + - Referencia +translation_of: Web/HTTP/Headers/User-Agent +--- +<div>{{HTTPSidebar}}</div> + +<p><span class="seoSummary">O cabeçalho de requisição <strong>User-Agent</strong> é uma cadeia de caracteres característica que permite servidores e pares de rede identificar a aplicação, sistema operacional, fornecedor, e/ou versão do agente de usuário requisitante.</span></p> + +<div class="blockIndicator warning"> +<p>Por favor leia <a href="/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent">Detectando o navegador usando o agente de usuário (Browser detection using the user agent)</a> para por quê servir diferentes páginas Web ou serviços para diferentes navegadores é geralmente uma má ideia.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">User-Agent: <product> / <product-version> <comment></pre> + +<p>Formato comum para navegadores web:</p> + +<pre class="syntaxbox notranslate">User-Agent: Mozilla/5.0 (<system-information>) <platform> (<platform-details>) <extensions></pre> + +<h3 id="Diretivas">Diretivas</h3> + +<dl> + <dt><code><product></code></dt> + <dd>Um identificador do produto - seu nome ou codinome de desenvolvimento.</dd> + <dt><code><product-version></code></dt> + <dd>Número da versão do produto.</dd> + <dt><code><comment></code></dt> + <dd>Zero ou mais comentários contendo mais detalhes; informação de subproduto, por exemplo.</dd> +</dl> + +<h2 id="Firefox_UA_string">Firefox UA string</h2> + +<p>Para mais cadeias de caracteres de agente de usuário do Firefox e Gecko, veja a <a href="/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox">referência para cadeias de caracteres de agente de usuário do Firefox (Firefox user agent string reference)</a>. A cadeia de caracteres UA do Firefox é quebrada em 4 componentes:</p> + +<pre class="notranslate">Mozilla/5.0 (<strong><em>platform</em></strong>; rv:<strong><em>geckoversion</em></strong>) Gecko/<strong><em>geckotrail</em></strong> Firefox/<strong><em>firefoxversion</em></strong></pre> + +<ol> + <li><code>Mozilla/5.0</code> é o <em>token</em> geral que diz que o navegador é compatível com Mozilla. Por razões históricas, quase todo navegador envia isso hoje.</li> + <li><strong><em>platform</em></strong> descreve a plataforma nativa que navegador está executando (Windows, Mac, Linux, Android, etc.), e se é um telefone celular. Telefones {{Glossary("Firefox OS")}} simplesmente dizem <code>Mobile</code> — a web é a plataforma. Note que <strong><em>platform</em></strong> pode consistir de múltiplos <em>tokens</em> separador por "<code>; </code>"(ponto e vírgula). Veja abaixo para mais detalhes e exemplos.</li> + <li><strong>rv:<em>geckoversion</em></strong> indica a versão de <em>release</em> do Gecko (como a "<em>17.0</em>"). Em navegadores recentes, <strong><em>geckoversion</em></strong> é o mesmo que <strong><em>firefoxversion</em></strong>.</li> + <li><strong><em>Gecko/geckotrail</em></strong> indica que o navegador é baseado no <a href="/en-US/docs/Mozilla/Gecko">Gecko</a>. (No Desktop, <em><strong>geckotrail</strong></em> é sempre a cadeia de caracteres fixa <code>20100101</code>.)</li> + <li><em><strong>Firefox/firefoxversion</strong></em> indica que o navegador é o Firefox, e provém a versão (como a "<em>17.0"</em>).</li> +</ol> + +<h3 id="Exemplos">Exemplos</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 +Mozilla/5.0 (Macintosh; Intel Mac OS X <em>x.y</em>; rv:42.0) Gecko/20100101 Firefox/42.0 +</pre> + +<h2 id="Chrome_UA_string">Chrome UA string</h2> + +<p>A cadeia de caracteres do agente de usuário do Chrome (ou baseados em Chromium/Blink) é similar ao do Firefox. Para compatibilidade, ele adiciona cadeias de caracteres como <code>KHTML, like Gecko</code> e <code>Safari</code>.</p> + +<h3 id="Exemplos_2">Exemplos</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36</pre> + +<h2 id="Opera_UA_string">Opera UA string</h2> + +<p>O navegador Opera também é baseado no Blink, o motivo pelo qual se parecem muito, mas adiciona <code>"OPR/<version>"</code>.</p> + +<h3 id="Exemplos_3">Exemplos</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41</pre> + +<p>Mais antigo, versões do Opera baseados no Presto usavam:</p> + +<pre class="no-line-numbers notranslate">Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00 +Opera/9.60 (Windows NT 6.0; U; en) Presto/2.1.1</pre> + +<h2 id="Safari_UA_string">Safari UA string</h2> + +<p>Neste exemplo, a cadeia de caracteres de agente de usuários é a versão de móvel do Safari. Ela contém a palavra <code>"Mobile"</code>.</p> + +<h3 id="Exemplos_4">Exemplos</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1</pre> + +<h2 id="Internet_Explorer_UA_string">Internet Explorer UA string</h2> + +<h3 id="Exemplos_5">Exemplos</h3> + +<pre class="no-line-numbers notranslate">Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)</pre> + +<h2 id="Crawler_e_bot_UA_strings">Crawler e bot UA strings</h2> + +<p>Exemplos</p> + +<pre class="no-line-numbers notranslate">Googlebot/2.1 (+http://www.google.com/bot.html)</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC(7231, "User-Agent", "5.5.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + <tr> + <td>{{RFC(2616, "User-Agent", "14.43")}}</td> + <td>Hypertext Transfer Protocol -- HTTP/1.1</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.User-Agent")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="https://hacks.mozilla.org/2013/09/user-agent-detection-history-and-checklist/">Detecção, histórico e checklist de User-Agent</a></li> + <li><a href="/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox">Referência para cadeias de caracteres de agente de usuário do Firefox (Firefox user agent string reference)</a></li> + <li> + <p><a href="/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent">Detectando o navegador usando o agente de usuário (Browser detection using the user agent)</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/vary/index.html b/files/pt-br/web/http/headers/vary/index.html new file mode 100644 index 0000000000..04fdf604f5 --- /dev/null +++ b/files/pt-br/web/http/headers/vary/index.html @@ -0,0 +1,87 @@ +--- +title: Vary +slug: Web/HTTP/Headers/Vary +tags: + - Cabeçalho de Resposta + - HTTP + - Referencia + - Resposta + - cabeçalho +translation_of: Web/HTTP/Headers/Vary +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>Vary</code></strong> determina como corresponder futuros cabeçalhos de requisição para decidir se uma resposta cacheada pode ser usada ao invés de solicitar uma nova do servidor de origem. Ele é usado pelo servidor para indicar quais cabeçalhos ele utilizou quando selecionando a representação do recurso em um algoritmo de <a href="/en-US/docs/Web/HTTP/Content_negotiation">negociação de conteúdo</a>.</p> + +<p>O cabeçalho <code>Vary</code> deve ser colocado em uma resposta {{HTTPStatus("304")}} <code>Not Modified</code> exatamente como seria colocado em uma resposta {{HTTPStatus("200")}} <code>OK</code> equivalente.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Vary: * +Vary: <header-name>, <header-name>, ... +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt>*</dt> + <dd>Cada requisição para a URL é supostamente tratada como uma requisição única e incacheavél. Um jeito melhor de indicar isso é usar {{HTTPHeader("Cache-Control")}}: <code>no-store</code>, que é mais limpo para se ler e também sinaliza que o objeto não deve ser guardado nunca.</dd> + <dt><header-name></dt> + <dd>Uma lista separada por vírgula de nomes de cabeçalhos para levar em conta quando for decidir se uma resposta cacheada pode ser usada.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Servimento_dinâmico">Servimento dinâmico</h3> + +<p>Quando utilizando o cabeçalho <code>Vary: User-Agent</code>, servidores de cacheamento devem considerar o agente de usuário quando estiverem decidindo se irão servir a página do cache. Por exemplo, se você está servindo conteúdo diferente para usuários móveis, ele pode ajudar você a evitar que um cache possa erroneamente servir uma versão desktop do seu site, para os usuários móveis. Ele pode ajudar o Google e outros motores de busca a descobrir a versão móvel da página, e talvez possa dizer a eles que não existe intenção de <a href="https://en.wikipedia.org/wiki/Cloaking">Cloaking</a>.</p> + +<pre class="notranslate">Vary: User-Agent</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7231", "Vary", "7.1.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Vary")}}</p> + +<h2 id="Notas_de_compatibilidade">Notas de compatibilidade</h2> + +<ul> + <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2009/06/17/vary-with-care/">Vary com cuidado – Problemas do cabeçalho Vary em IE6-9</a></li> +</ul> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="https://www.smashingmagazine.com/2017/11/understanding-vary-header/">Entendendo o cabeçalho Vary (Understanding The Vary Header) - Smashing Magazine</a></li> + <li><a href="https://www.fastly.com/blog/best-practices-for-using-the-vary-header">Melhores práticas quando utilizando o cabeçalho Vary (Best Practices for Using the Vary Header) – fastly.com</a></li> + <li><a href="https://developer.mozilla.org/docs/Web/HTTP/Content_negotiation">Negociação de conteúdo</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/via/index.html b/files/pt-br/web/http/headers/via/index.html new file mode 100644 index 0000000000..45f384086c --- /dev/null +++ b/files/pt-br/web/http/headers/via/index.html @@ -0,0 +1,80 @@ +--- +title: Via +slug: Web/HTTP/Headers/Via +tags: + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Via +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho geral <code><strong>Via</strong></code> é adicionado por proxies, ambos diretos e reversos, e pode aparecer em cabeçalhos de requisição e de cabeçalhos de resposta. Ele é usado para rastrear mensagens direcionadas, evitando laços de requisição, e identificando as capacidades dos protocolos dos remetentes ao longo da cadeia de requisição/resposta.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>sim</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Via: [ <protocol-name> "/" ] <protocol-version> <host> [ ":" <port> ] +or +Via: [ <protocol-name> "/" ] <protocol-version> <pseudonym> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><protocol-name></dt> + <dd>Opcional. O nome do protocolo usado, como "HTTP".</dd> + <dt><protocol-version></dt> + <dd>A versão do protocolo usado, como "1.1".</dd> + <dt><host> e <port></dt> + <dd>URL pública do proxy e sua porta.</dd> + <dt><pseudonym></dt> + <dd>Nome/pseudônimo de um proxy interno.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Via: 1.1 vegur +Via: HTTP/1.1 GWA +Via: 1.0 fred, 1.1 p.example.net +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7230", "Via", "5.7.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Via")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li><a href="https://github.com/heroku/vegur">Biblioteca proxy Vegur do Heroku</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/want-digest/index.html b/files/pt-br/web/http/headers/want-digest/index.html new file mode 100644 index 0000000000..23be9b98ff --- /dev/null +++ b/files/pt-br/web/http/headers/want-digest/index.html @@ -0,0 +1,129 @@ +--- +title: Want-Digest +slug: Web/HTTP/Headers/Want-Digest +tags: + - Cabeçalho HTTP + - HTTP +translation_of: Web/HTTP/Headers/Want-Digest +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho HTTP <code><strong>Want-Digest</strong></code> é primordialmente usado em uma requisição HTTP, para pedir ao respondedor para prover uma digestão ({{Glossary("digest")}}) do recurso requisitado usando o cabeçalho de resposta <code><a href="/en-US/docs/Web/HTTP/Headers/Digest">Digest</a></code>.</p> + +<p>O cabeçalho contém identificadores para um ou mais algoritmos de digestão que o remetente deseja que o respondedor use para criar a digestão. O remetente pode usar <a href="/en-US/docs/Glossary/Quality_values">valores de qualidade</a> para indicar sua preferência ordenando dentre as escolhas que ele oferece.</p> + +<p>Se <code>Want-Digest</code> não inclui nenhum algoritmo de digestão que aquele servidor suporta, o servidor pode responder com:</p> + +<ul> + <li>uma digestão calculada usando outro algoritmo de digestão, ou</li> + <li>um erro <code><a href="/en-US/docs/Web/HTTP/Status/400">400 Bad Request</a></code>, e inclui outro cabeçalho <code>Want-Digest</code> com a resposta, listando os algoritmos que ele suporta.</li> +</ul> + +<p>Veja a página do cabeçalho <code><a href="/en-US/docs/Web/HTTP/Headers/Digest">Digest</a></code> para mais informações.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Want-Digest: <digest-algorithm> + +// Múltiplos algoritmos, pesados com a sintaxe de qualidade de valor: +Want-Digest: <digest-algorithm><q-value>,<digest-algorithm><q-value></pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code><digest-algorithm></code></dt> + <dd>Algoritmos de digestão suportados são definidos na <a href="https://tools.ietf.org/html/rfc3230">RFC 3230</a> e <a href="https://tools.ietf.org/html/rfc5843">RFC 5843</a>, e inclui <code>SHA-256</code> e <code>SHA-512</code>. Alguns algoritmos suportados, incluindo <code>unixsum</code> e <code>MD5</code> são sujeitos a colisões e não são apropriados para aplicações em que resistência à colisão é importante.</dd> + <dt><code><q-value></code></dt> + <dd>O <a href="/en-US/docs/Glossary/Quality_values">valor de qualidade</a> para aplicar aquela opção.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="syntaxbox notranslate">Want-Digest: sha-256 +Want-Digest: SHA-512;q=0.3, sha-256;q=1, md5;q=0</pre> + +<h3 id="Operação_básica">Operação básica</h3> + +<p>O remetente provém a lista de digestões que ele está preparado para aceitar, e o servidor usa um deles:</p> + +<pre class="notranslate">Request: + + GET /item + Want-Digest: sha-256;q=0.3, sha;q=1 + +Response: + + HTTP/1.1 200 Ok + Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=</pre> + +<h3 id="Digestões_não_suportadas">Digestões não suportadas</h3> + +<p>O servidor não suporta nenhum do algoritmos de digestão requisitados, então ele usa um algoritmo diferente:</p> + +<pre class="notranslate">Request: + + GET /item + Want-Digest: sha;q=1 + +Response: + + HTTP/1.1 200 Ok + Digest: sha-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=</pre> + +<p>O servidor não suporta nenhuma dos algoritmos de digestão requisitados, então responde com um erro 400 e inclui outro cabeçalho <code>Want-Digest</code>, listando os algoritmos que ele suporta:</p> + +<pre class="notranslate">Request: + + GET /item + Want-Digest: sha;q=1 + +Response: + + HTTP/1.1 400 Bad Request + Want-Digest: sha-256, sha-512</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td> + <p><a class="smpl" href="https://datatracker.ietf.org/doc/draft-ietf-httpbis-digest-headers">draft-ietf-httpbis-digest-headers-latest</a></p> + </td> + <td>Resource Digests for HTTP</td> + </tr> + </tbody> +</table> + +<p>Este cabeçalho foi originalmente definido na <a href="https://tools.ietf.org/html/rfc3230">RFC 3230</a>, mas a definição de "representação selecionada" na <a href="https://www.rfc-editor.org/info/rfc7231">RFC 7231</a> fez a definição original ficar inconsistente com as atuais especificações HTTP. Quando lançado, o rascunho "Digestões de Recursos para HTTP" tornará a RFC 3230 obsoleta e vai atualizar o padrão para ficar consistente.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Want-Digest")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Digest")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/warning/index.html b/files/pt-br/web/http/headers/warning/index.html new file mode 100644 index 0000000000..f37f345db6 --- /dev/null +++ b/files/pt-br/web/http/headers/warning/index.html @@ -0,0 +1,146 @@ +--- +title: Warning +slug: Web/HTTP/Headers/Warning +tags: + - Cabeçalho Geral + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/Warning +--- +<div>{{HTTPSidebar}}</div> + +<div class="blockIndicator note"> +<p><strong>Nota</strong>: O cabeçalho <code>Warning</code> será depreciado em breve; veja <a href="https://github.com/httpwg/http-core/issues/139">Warning (https://github.com/httpwg/http-core/issues/139)</a> e <a href="https://github.com/whatwg/fetch/issues/913">Warning: header & stale-while-revalidate (https://github.com/whatwg/fetch/issues/913)</a> para mais detalhes.</p> +</div> + +<p>O cabeçalho geral HTTP <strong><code>Warning</code></strong> contém informação sobre possíveis problemas com o status da mensagem. Mais de um cabeçalho <code>Warning</code> pode aparecer na resposta.</p> + +<p>O cabeçalho <code>Warning</code> geralmente pode ser aplicado para qualquer mensagem, entretanto alguns códigos de aviso são específicos para caches e podem somente ser aplicados para mensagens de resposta.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalhos</th> + <td>{{Glossary("General header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">Warning: <warn-code> <warn-agent> <warn-text> [<warn-date>] +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><warn-code></dt> + <dd>Um número de aviso de três dígitos. O primeiro dígito indica se é necessário o <code>Warning</code> ser deletado de uma resposta guardada depois da validação. + <ul> + <li>Códigos de aviso <code>1xx</code> descrevem o frescor ou status de validação da resposta e será deletado por um cache depois da deleção.</li> + <li> + <p>Códigos de aviso <code>2xx</code> descrevem algum aspecto da representação que não é retificada por uma validação e não será deletado por uma cache depois da validação a não que a resposta completa seja enviada.</p> + </li> + </ul> + </dd> + <dt><warn-agent></dt> + <dd> + <p>O nome ou pseudônimo do servidor ou software adicionando o cabeçalho <code>Warning</code> (pode ser "-" quando o agente não é conhecido).</p> + </dd> + <dt><warn-text></dt> + <dd>Texto consultivo descrevendo o erro.</dd> + <dt><warn-date></dt> + <dd>Opcional. Se mais de um cabeçalho <code>Warning</code> é enviado, inclui a data que corresponde com o cabeçalho {{HTTPHeader("Date")}}.</dd> +</dl> + +<h2 id="Códigos_de_aviso_Warning">Códigos de aviso (Warning)</h2> + +<p>O <a href="http://www.iana.org/assignments/http-warn-codes/http-warn-codes.xhtml">registro de Códigos de Aviso HTTP em iana.org</a> define o espaço de nomes para códigos de aviso.</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Código</th> + <th scope="col">Texto</th> + <th scope="col">Descrição</th> + </tr> + </thead> + <tbody> + <tr> + <td>110</td> + <td>Resposta está velha</td> + <td>A resposta provida pela cache está velha (o tempo de expiração já passou).</td> + </tr> + <tr> + <td>111</td> + <td>Revalidação falhou</td> + <td>Uma tentaiva de validar a resposta falhou, por causa da impossibilidade de alcançar o servidor.</td> + </tr> + <tr> + <td>112</td> + <td>Operação Desconectou</td> + <td>O cache desconectou do resto da rede.</td> + </tr> + <tr> + <td>113</td> + <td>Expiração Heurística</td> + <td>Enviado se a cache escolhe heuristicamente um tempo de vida fresco maior que 24 horas e a idade da resposta é maior que 24 horas.</td> + </tr> + <tr> + <td>199</td> + <td>Aviso diverso</td> + <td>Arbitrário, aviso não específico.</td> + </tr> + <tr> + <td>214</td> + <td>Transformação aplicada</td> + <td>Adicionado por um proxy se ele aplica qualquer transformação na representação, como mudar a codificação de conteúdo, tipo de media ou semelhante.</td> + </tr> + <tr> + <td>299</td> + <td>Aviso diverso persistente</td> + <td>O mesmo que 199, mas indicando um aviso persistente.</td> + </tr> + </tbody> +</table> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">Warning: 110 anderson/1.3.37 "Response is stale" + +Date: Wed, 21 Oct 2015 07:28:00 GMT +Warning: 112 - "cache down" "Wed, 21 Oct 2015 07:28:00 GMT" +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + <tr> + <td>{{RFC("7234", "Warning", "5.5")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Caching</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + +<p class="hidden">The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.Warning")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Date")}}</li> + <li><a href="/en-US/docs/Web/HTTP/Status">Código de resposta de status HTTP</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/www-authenticate/index.html b/files/pt-br/web/http/headers/www-authenticate/index.html new file mode 100644 index 0000000000..555854a43d --- /dev/null +++ b/files/pt-br/web/http/headers/www-authenticate/index.html @@ -0,0 +1,93 @@ +--- +title: WWW-Authenticate +slug: Web/HTTP/Headers/WWW-Authenticate +tags: + - Cabeçalho HTTP + - Cabeçalho de Resposta + - HTTP + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/WWW-Authenticate +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho da resposta HTTP <strong><code>WWW-Authenticate</code></strong> define o método de autenticação a ser usado para obter acesso ao recurso.</p> + +<p>O cabeçalho <code>WWW-Authenticate</code> é enviado junto a resposta {{HTTPStatus("401")}} <code>Unauthorized</code>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">WWW-Authenticate: <type> realm=<realm> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><type></dt> + <dd><a href="/en-US/docs/Web/HTTP/Authentication#Authentication_schemes">Tipo de autenticação.</a> Um tipo comum de autenticação é <a href="/en-US/docs/Web/HTTP/Authentication#Basic_authentication_scheme">"Basic"</a>. IANA mantém uma <a href="http://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml">lista de esquema de autenticação</a>.</dd> + <dt>realm=<realm></dt> + <dd>Uma descrição da área protegida. Se nenhuma área for informada, os clientes frequentemente exibirão um hostname formatado.</dd> + <dt>charset=<charset></dt> + <dd>Informa ao cliente qual é o encoding do servidor quando for submetido usuário e senha. O único valor permitido é "UTF-8". Isso não está relacionado ao encoding da realm string.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Tipicamente, uma resposta do servidor contém um cabeçalho <code>WWW-Authenticate</code> que se parece com isso:</p> + +<pre class="notranslate">WWW-Authenticate: Basic + +WWW-Authenticate: Basic realm="Access to the staging site", charset="UTF-8" +</pre> + +<p>Veja também <a href="/en-US/docs/Web/HTTP/Authentication">autenticação HTTP</a> para exemplos em como configurar servidores Apache ou nginx para proteger seu site com senha usando autenticação básica HTTP.</p> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7235", "WWW-Authenticate", "4.1")}}</td> + <td>HTTP/1.1: Authentication</td> + </tr> + <tr> + <td>{{RFC("7617")}}</td> + <td>The 'Basic' HTTP Authentication Scheme</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.WWW-Authenticate")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Authentication">Autenticação HTTP</a></li> + <li>{{HTTPHeader("Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> + <li>{{HTTPHeader("Proxy-Authenticate")}}</li> + <li>{{HTTPStatus("401")}}, {{HTTPStatus("403")}}, {{HTTPStatus("407")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/x-content-type-options/index.html b/files/pt-br/web/http/headers/x-content-type-options/index.html new file mode 100644 index 0000000000..e9abb3793b --- /dev/null +++ b/files/pt-br/web/http/headers/x-content-type-options/index.html @@ -0,0 +1,83 @@ +--- +title: X-Content-Type-Options +slug: Web/HTTP/Headers/X-Content-Type-Options +tags: + - HTTP + - Headers HTTP + - Headers de Resposta + - Referencia +translation_of: Web/HTTP/Headers/X-Content-Type-Options +--- +<div>{{HTTPSidebar}}</div> + +<p>O header de resposta HTTP <strong>X-Content-Type-Options</strong> é um marcador usado pelo servidor para indicar que os <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types">MIME types</a> enviados pelos headers {{HTTPHeader("Content-Type")}} não devem ser alterados e seguidos. Isto permite que o usuário opte por não participar do chamado <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#MIME_sniffing">MIME Type Sniffing</a> ou, em outras palavras, é uma forma de dizer que os webmasters estão vendo o que você está fazendo.</p> + +<p>Este header foi incluído pela Microsoft no IE 8 como uma maneira de webmasters serem capazes de bloquear o <em>sniffing</em> de conteúdo que acontecia na época, e podia transformar tipos MIME não executáveis em tipos executáveis. Desde então, outros browsers acataram a ideia mesmo que seus algoritmos de definição de MIME fossem menos agressivos.</p> + +<p>Experts em segurança da informação geralmente esperam que este header esteja presente.</p> + +<p class="note">Nota: <code>nosniff</code> só se aplica para tipos "script" e "style". Também, aplicar <code>nosniff</code> em tipos de imagem provou-se ser <a href="https://github.com/whatwg/fetch/issues/395">incompatível com sites existentes</a>.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo do header</th> + <td>{{Glossary("Header de resposta")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Alteração de nome proibida")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">X-Content-Type-Options: nosniff +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><code>nosniff</code></dt> + <dd>Bloqueia uma requisição se o tipo for: + <ul> + <li>"<code>style</code>" e o tipo MIME não é "<code>text/css</code>", ou</li> + <li>"<code>script</code>" e o tipo MIME não é um tipo <a href="https://html.spec.whatwg.org/multipage/scripting.html#javascript-mime-type">JavaScript</a>.</li> + </ul> + </dd> +</dl> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Status</th> + <th scope="col">Comentário</th> + </tr> + <tr> + <td>{{SpecName("Fetch", "#x-content-type-options-header", "X-Content-Type-Options definition")}}</td> + <td>{{Spec2("Fetch")}}</td> + <td>Definição inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_dos_browsers">Compatibilidade dos browsers</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.headers.X-Content-Type-Options")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>A <a href="https://blogs.msdn.microsoft.com/ie/2008/09/02/ie8-security-part-vi-beta-2-update/">definição original</a> do X-Content-Type-Options pela Microsoft.</li> + <li>A ferramenta <a href="https://mozilla.github.io/http-observatory-website/">Mozilla Observatory</a> testando a configuração (incluindo este header) de páginas por segurança e precaução.</li> + <li> + <p><a href="https://blog.mozilla.org/security/2016/08/26/mitigating-mime-confusion-attacks-in-firefox/">Mitigando ataques de confusão de MIME no Firefox</a></p> + </li> +</ul> diff --git a/files/pt-br/web/http/headers/x-dns-prefetch-control/index.html b/files/pt-br/web/http/headers/x-dns-prefetch-control/index.html new file mode 100644 index 0000000000..3a15ab7f80 --- /dev/null +++ b/files/pt-br/web/http/headers/x-dns-prefetch-control/index.html @@ -0,0 +1,101 @@ +--- +title: X-DNS-Prefetch-Control +slug: Web/HTTP/Headers/X-DNS-Prefetch-Control +tags: + - DNS + - HTTP + - Prefetch-Control + - X-DNS-Prefetch-Control +translation_of: Web/HTTP/Headers/X-DNS-Prefetch-Control +--- +<div>{{HTTPSidebar}}</div> + +<div> O cabeçalho de resposta HTTP <strong><code>X-DNS-Prefetch-Control</code></strong> controla a pré-busca de DNS, um recurso pelo qual os navegadores realizam proativamente a resolução de nomes de domínio em ambos os links que o usuário pode escolher, além de URLs para itens referenciados pelo documento, incluindo imagens , CSS, JavaScript e assim por diante.</div> + +<div> </div> + +<p>Essa pré-busca é realizada em segundo plano, de forma que o {{glossary ("DNS")}} provavelmente tenha sido resolvido quando os itens referenciados forem necessários. Isso reduz a latência quando o usuário clica em um link.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Header type</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>no</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox">X-DNS-Prefetch-Control: on +X-DNS-Prefetch-Control: off +</pre> + +<h3 id="Diretrivas">Diretrivas</h3> + +<dl> + <dt>on</dt> + <dd>Ativar pré-busca de DNS. Isso é o que os navegadores fazem, se eles suportam o recurso, quando esse cabeçalho não está presente.</dd> + <dt>off</dt> + <dd>Desativa a pré-busca de DNS. Isso é útil se você não controla o link nas páginas ou sabe que não deseja vazar informações para esses domínios.</dd> +</dl> + +<h2 id="Descrição">Descrição</h2> + +<p>As solicitações de DNS são muito pequenas em termos de largura de banda, mas a latência pode ser bastante alta, especialmente em redes móveis. Por meio da pré-busca especulativa de resultados de DNS, a latência pode ser reduzida significativamente em determinados momentos, como quando o usuário clica no link. Em alguns casos, a latência pode ser reduzida em um segundo.</p> + +<p>A implementação desta pré-busca em alguns navegadores permite que a resolução de nomes de domínio ocorra em paralelo com (em vez de em série com) a busca do conteúdo real da página. Ao fazer isso, o processo de resolução de nome de domínio de alta latência não causa atrasos ao buscar conteúdo.</p> + +<p>Os tempos de carregamento de páginas - especialmente em redes móveis - podem ser melhorados dessa maneira. Se os nomes de domínio para imagens puderem ser resolvidos antes das imagens serem solicitadas, as páginas que carregarem muitas imagens poderão ver uma melhoria de 5% ou mais no tempo de carregamento das imagens.</p> + +<h3 id="Configurando_a_Pré-busca_no_Navegador">Configurando a Pré-busca no Navegador</h3> + +<p>Em geral, você não precisa fazer nada para gerenciar a pré-busca. No entanto, o usuário pode querer desabilitar a pré-busca. No Firefox, isso pode ser feito configurando a preferência <code>network.dns.disablePrefetch</code> como <code>true</code>.</p> + +<p>Além disso, por padrão, a pré-busca de nomes de host de link incorporado não é executada em documentos carregados em {{glossary ("HTTPS")}}. No Firefox, isso pode ser alterado configurando a preferência <code>network.dns.disablePrefetchFromHTTPS</code> como <code>false</code>.</p> + +<h2 id="Exemplos">Exemplos</h2> + +<h3 id="Ativando_e_desativando_a_pré-busca">Ativando e desativando a pré-busca</h3> + +<p>Você pode enviar o cabeçalho do lado do servidor X-DNS-Prefetch-Control ou de documentos individuais, usando o atributo {{htmlattrxref ("http-equiv", "meta")}} no {{HTMLElement ("meta" )}} elemento, assim:</p> + +<pre class="brush: html"><meta http-equiv="x-dns-prefetch-control" content="off"> +</pre> + +<p> </p> + +<p>Você pode reverter essa configuração configurando o <code>content</code> como "<code>on</code>".</p> + +<h3 id="Forçando_a_procura_de_nomes_de_host_específicos">Forçando a procura de nomes de host específicos</h3> + +<p>Você pode forçar a pesquisa de nomes de host específicos sem fornecer âncoras específicas usando esse nome de host com o uso de {{htmlattrxref ("rel", "link")}} no elemento {{HTMLElement ("link")}} com um tipo de link de <code>dns-prefetch</code>:</p> + +<pre class="brush: html"><link rel="dns-prefetch" href="http://www.spreadfirefox.com/"> +</pre> + +<p>Neste exemplo, o nome de domínio "<a href="http://www.spreadfirefox.com/" title="Linkification: http://www.spreadfirefox.com">www.spreadfirefox.com</a>" será pré-resolvido.</p> + +<p>Da mesma forma, o elemento de link pode ser usado para resolver nomes de host sem fornecer uma URL completa, mas apenas, precedendo o nome do host com duas barras:</p> + +<pre class="brush: html"><link rel="dns-prefetch" href="//www.spreadfirefox.com"> +</pre> + +<p>Pré-busca forçada de nomes de host pode ser útil, por exemplo, na página inicial de um site para forçar a pré-resolução de nomes de domínio que são referenciados com frequência em todo o site, mesmo que eles não sejam usados na própria home page. Isso melhorará o desempenho geral do site, mesmo que o desempenho da página inicial não seja afetado.</p> + +<h2 id="Compatibilidade_do_navegador">Compatibilidade do navegador</h2> + +<div class="hidden">A tabela de compatibilidade nesta página é gerada a partir de dados estruturados. Se você quiser contribuir com os dados, confira https://github.com/mdn/browser-compat-data e envie-nos uma solicitação de recebimento.</div> + +<p>{{Compat("http.headers.X-DNS-Prefetch-Control")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a class="external" href="http://bitsup.blogspot.com/2008/11/dns-prefetching-for-firefox.html">DNS Prefetching for Firefox (blog post)</a></li> + <li><a class="external" href="http://dev.chromium.org/developers/design-documents/dns-prefetching">Google Chrome handles DNS prefetching control</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/x-forwarded-for/index.html b/files/pt-br/web/http/headers/x-forwarded-for/index.html new file mode 100644 index 0000000000..bb22d31a84 --- /dev/null +++ b/files/pt-br/web/http/headers/x-forwarded-for/index.html @@ -0,0 +1,81 @@ +--- +title: X-Forwarded-For +slug: Web/HTTP/Headers/X-Forwarded-For +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Não padronizado + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/X-Forwarded-For +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>X-Forwarded-For</code></strong> (XFF) é de fato um cabeçalho padrão para identificar o endereço de IP original de um cliente conectando a um servidor web através de um proxy HTTP ou um balenceador de carga. Quando tráfego específico é interceptado entre clientes e servidores, <em>logs</em> de acesso do servidor contém o endereço IP do proxy ou balanceador de carga somente. Para ver o endereço IP original do cliente, o cabeçalho de requisição <code>X-Forwarded-For</code> é utilizado.</p> + +<p>Este cabeçalho é utilizado para depuração, estatísticas, e gerar conteúdo dependente localmente e por design ele expõe informações privadas sensíveis, como o endereço IP do cliente. Então a privacidade do usuário deve estar em mente quando utilizando este cabeçalho.</p> + +<p>Uma versão padronizada deste cabeçalho é o cabeçalho HTTP {{HTTPHeader("Forwarded")}}.</p> + +<p><code>X-Forwarded-For</code> é também um cabeçalho de email indicando que uma mensagem de email foi redirecionada para outra conta.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">X-Forwarded-For: <client>, <proxy1>, <proxy2> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><client></dt> + <dd>O endereço de IP do cliente.</dd> + <dt><proxy1>, <proxy2></dt> + <dd>Se a requisição atravessa múltiplos proxies, os endereços IP de cada proxy sucessivo são listados. Isto significa, o endereço IP mais a direita é o endereço IP mais do proxy mais recente, e o endereço IP mais a esquerda é o endereço IP originário do cliente.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348 + +X-Forwarded-For: 203.0.113.195 + +X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178 +</pre> + +<p>Outras formas não padronizadas:</p> + +<pre class="notranslate"># Usado por alguns serviços da Google +X-ProxyUser-Ip: 203.0.113.19</pre> + +<h2 id="Especificações">Especificações</h2> + +<p>Não pertence a nenhuma especificação atualmente. A versão padronizada do cabeçalho é {{HTTPHeader("Forwarded")}}.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.X-Forwarded-For")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> + <li>{{HTTPHeader("Via")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/x-forwarded-host/index.html b/files/pt-br/web/http/headers/x-forwarded-host/index.html new file mode 100644 index 0000000000..f394616a02 --- /dev/null +++ b/files/pt-br/web/http/headers/x-forwarded-host/index.html @@ -0,0 +1,70 @@ +--- +title: X-Forwarded-Host +slug: Web/HTTP/Headers/X-Forwarded-Host +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Não padronizado + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/X-Forwarded-Host +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>X-Forwarded-Host</code></strong> (XFH) é um cabeçalho padrão de fato para identificar o <em>host</em> original requisitado pelo cliente no cabeçalho de requisição HTTP {{HTTPHeader("Host")}}.</p> + +<p>Nomes de <em>hosts </em>e portes de proxies reversos (balanceadores de carga, CDNs) pode diferir do servidor de origem que manipula a solicitação, neste caso o cabeçalho <code>X-Forwarded-Host</code> é útil para determinar qual Host foi originalmente utilizado.</p> + +<p>Este cabeçalho é utilizado para depuração, estatísticas, e gerar conteúdo dependente localmente e por design ele expõe informações privadas sensíveis, como o endereço IP do cliente. Então a privacidade do usuário deve estar em mente quando utilizando este cabeçalho.</p> + +<p>Uma versão padronizada deste cabeçalho é o cabeçalho HTTP {{HTTPHeader("Forwarded")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">X-Forwarded-Host: <host> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><host></dt> + <dd>O nome do domínio do servidor encaminhado.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">X-Forwarded-Host: id42.example-cdn.com +</pre> + +<h2 id="Especificações">Especificações</h2> + +<p>Não pertence a nenhuma especificação atualmente. A versão padronizada do cabeçalho é {{HTTPHeader("Forwarded")}}.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.X-Forwarded-Host")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Host")}}</li> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Proto")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/x-forwarded-proto/index.html b/files/pt-br/web/http/headers/x-forwarded-proto/index.html new file mode 100644 index 0000000000..c4accb34a1 --- /dev/null +++ b/files/pt-br/web/http/headers/x-forwarded-proto/index.html @@ -0,0 +1,74 @@ +--- +title: X-Forwarded-Proto +slug: Web/HTTP/Headers/X-Forwarded-Proto +tags: + - Cabeçalho HTTP + - Cabeçalho de requisição + - HTTP + - Não padronizado + - Referencia + - cabeçalho +translation_of: Web/HTTP/Headers/X-Forwarded-Proto +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho <strong><code>X-Forwarded-Proto</code></strong> (XFP) é um cabeçalho padrão de fato para identificar o protocolo (HTTP ou HTTPS) que o cliente usava para conectar ao seu proxy ou balanceador de carga. Seus <em>logs </em>de acesso do servidor contém o protocolo usado entre o servidor e o balanceador de carga, não o protocolo usado entre o cliente e o balanceador de carga. Para determinar o protocolo utilizado entre o cliente e o balanceador de carga, o cabeçalho de requisição <code>X-Forwarded-Proto</code> pode ser utilizado.</p> + +<p>Uma versão padronizada deste cabeçalho é o cabeçalho HTTP {{HTTPHeader("Forwarded")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Request header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">X-Forwarded-Proto: <protocol> +</pre> + +<h2 id="Diretivas">Diretivas</h2> + +<dl> + <dt><protocol></dt> + <dd>O protocolo encaminhado (http ou https).</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<pre class="notranslate">X-Forwarded-Proto: https</pre> + +<p>Outras formas não padronizadas:</p> + +<pre class="notranslate"># Microsoft +Front-End-Https: on + +X-Forwarded-Protocol: https +X-Forwarded-Ssl: on +X-Url-Scheme: https +</pre> + +<h2 id="Especificações">Especificações</h2> + +<p>Não pertence a nenhuma especificação atualmente. A versão padronizada do cabeçalho é {{HTTPHeader("Forwarded")}}.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.X-Forwarded-Proto")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Forwarded")}}</li> + <li>{{HTTPHeader("X-Forwarded-For")}}</li> + <li>{{HTTPHeader("X-Forwarded-Host")}}</li> +</ul> diff --git a/files/pt-br/web/http/headers/x-frame-options/index.html b/files/pt-br/web/http/headers/x-frame-options/index.html new file mode 100644 index 0000000000..f72d09ae2c --- /dev/null +++ b/files/pt-br/web/http/headers/x-frame-options/index.html @@ -0,0 +1,160 @@ +--- +title: X-Frame-Options +slug: Web/HTTP/Headers/X-Frame-Options +tags: + - Cabeçalho de Resposta + - Express + - Gecko + - HAProxy + - HTTP + - IIS + - Segurança + - nginx +translation_of: Web/HTTP/Headers/X-Frame-Options +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta <a href="/en-US/docs/Web/HTTP">HTTP</a> <strong><code>X-Frame-Options</code></strong> pode ser usado para indicar se o navegador deve ou não renderizar a página em um {{HTMLElement("frame")}}, {{HTMLElement("iframe")}}, {{HTMLElement("embed")}} ou {{HTMLElement("object")}}. Sites podem usar isso para evitar ataques <em><a href="/en-US/docs/Web/Security/Types_of_attacks#Click-jacking">click-jacking</a></em>, assegurando que seus conteúdos não sejam embebedados em outros sites.</p> + +<p>A segurança adicionada é provida somente se o usuário acessando o documento está usando o navegador que suporte <code>X-Frame-Options</code>.</p> + +<div class="note"> +<p><strong>Nota:</strong> O cabeçalho HTTP {{HTTPHeader("Content-Security-Policy")}}possui uma diretiva <code><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors">frame-ancestors</a></code> que torna este cabeçalho obsoleto para navegadores que o suportam.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<p>Existem duas diretivas possíveis para <code>X-Frame-Options</code>:</p> + +<pre class="syntaxbox notranslate">X-Frame-Options: DENY +X-Frame-Options: SAMEORIGIN +</pre> + +<h3 id="Diretivas">Diretivas</h3> + +<p>Se você especifica <code>DENY</code>, não somente tentativas em carregar a página em um enquadramento irão falhar quando carregadas de outros sites, mas irão falhar também se forem carregadas do mesmo site. Por outro lado, se você especifica <code>SAMEORIGIN</code>, você ainda pode usar a página em um enquadramento enquanto o site que o está incluindo no enquadramento seja o mesmo servindo a página.</p> + +<dl> + <dt><code>DENY</code></dt> + <dd>A página não pode ser mostrada em um enquadramento, independente do site que esteja tentando fazer isso.</dd> + <dt><code>SAMEORIGIN</code></dt> + <dd>A página só pode ser exibida em um enquadramento se for da mesma origem da página em si. A especificação deixa a cargo do navegador para decidir se esta opção se aplica ao nível mais alto, ao parente, ou à cadeia inteira, entretanto é discutido se a opção não é muito útil a não ser que todos os ancestrias estejam na mesma origem (veja {{bug(725490)}}). Veja também {{anch("Browser compatibility")}} para mais detalhes de suporte.</dd> + <dt><code>ALLOW-FROM <em>uri</em></code><em> </em>{{obsolete_inline()}}</dt> + <dd>Esta é uma diretiva obsoleta que não funciona mais em navegadores modernos. Não a utilize. Em navegadores legado que a suportam, a página pode ser mostrada em um enquadramento somente na URI de origem especificada. Note que implementação legada do Firefox isso ainda sofria do mesmo problema que a <code>SAMEORIGIN</code> sofreu — ela não checa se os enquadramentos ancestrais para ver se eles são da mesma origem. O cabeçalho HTTP {{HTTPHeader("Content-Security-Policy")}} tem a diretiva <code>frame-ancestors</code> que você pode usar ao invés disso.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<div class="note"> +<p><strong>Nota:</strong> Colocar X-Frame-Options dentro de um elemento {{HTMLElement("meta")}} é inútil! Por enquanto, <code><meta http-equiv="X-Frame-Options" content="deny"></code> não tem nenhum efeito. Não o utilize! <code>X-Frame-Options</code> funciona somenete colocando a configuração através do cabeçalho HTTP, como nos exemplos abaixo.</p> +</div> + +<h3 id="Configurando_o_Apache">Configurando o Apache</h3> + +<p>Para configurar o Apache para que ele envie o cabeçalho <code>X-Frame-Options</code> para todas as páginas, adicione isto nas configurações do seu site:</p> + +<pre class="notranslate">Header always set X-Frame-Options "SAMEORIGIN" +</pre> + +<p>Para configurar o Apache para colocar o <code>X-Frame-Options</code> como DENY, adicione isto nas configurações do seu site:</p> + +<pre class="notranslate">Header set X-Frame-Options "DENY" +</pre> + +<h3 id="Configurando_o_nginx">Configurando o nginx</h3> + +<p>Para configurar o nginx para enviar o cabeçalho <code>X-Frame-Options</code>, adicione isto na configuração do seu http, servidor ou localização:</p> + +<pre class="notranslate">add_header X-Frame-Options SAMEORIGIN always; +</pre> + +<h3 id="Configurando_o_IIS">Configurando o IIS</h3> + +<p>Para configurar o IIS para enviar o cabeçalho <code>X-Frame-Options</code>, adicione isto no arquivo <code>Web.config</code> do seu site:</p> + +<pre class="brush: xml notranslate"><system.webServer> + ... + + <httpProtocol> + <customHeaders> + <add name="X-Frame-Options" value="SAMEORIGIN" /> + </customHeaders> + </httpProtocol> + + ... +</system.webServer> +</pre> + +<p>Ou veja este <a href="https://support.office.com/en-us/article/Mitigating-framesniffing-with-the-X-Frame-Options-header-1911411b-b51e-49fd-9441-e8301dcdcd79">artigo de suporte de configuração da Microsoft utilizando a interface de usuário IIS Manager</a>.</p> + +<h3 id="Configurando_o_HAProxy">Configurando o HAProxy</h3> + +<p>Para configurar o HAProxy para enviar o cabeçalho <code>X-Frame-Options</code>, adicione isto na sua configuração do seu <em>front-end</em>, <em>listen</em>, ou <em>backend</em>:</p> + +<pre class="notranslate">rspadd X-Frame-Options:\ SAMEORIGIN +</pre> + +<p>Alternativamente, em versões mais novas:</p> + +<pre class="notranslate">http-response set-header X-Frame-Options SAMEORIGIN +</pre> + +<h3 id="Configurando_o_Express">Configurando o Express</h3> + +<p>Para configurar o Express para enviar o cabeçalho <code>X-Frame-Options</code>, você pode usar o <a href="https://helmetjs.github.io/">helmet</a> que utiliza o <a href="https://helmetjs.github.io/docs/frameguard/">frameguard</a> para colocar o cabeçalho. Adicione isto na configuração do seu servidor:</p> + +<pre class="brush: js notranslate">const helmet = require('helmet'); +const app = express(); +app.use(helmet.frameguard({ action: 'SAMEORIGIN' })); +</pre> + +<p>Alternativamente, você pode usar o <em>frameguard</em> diretamente:</p> + +<pre class="brush: js notranslate">const frameguard = require('frameguard') +app.use(frameguard({ action: 'SAMEORIGIN' })) +</pre> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificação</th> + <th scope="col">Título</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7034")}}</td> + <td>HTTP Header Field X-Frame-Options</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.X-Frame-Options")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li><a href="/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors"><code>frame-ancestors</code> (CSP)</a></li> + <li><a href="https://tools.ietf.org/html/rfc7034">Cabeçalho HTTP X-Frame-Options (HTTP Header Field X-Frame-Options) - RFC 7034</a></li> + <li><a class="external" href="https://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx">Defesas contra ClickJacking (ClickJacking Defenses) - IEBlog</a></li> + <li><a href="https://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx">Combatendo ClickJacking com X-Frame-Options (Combating ClickJacking with X-Frame-Options) - IEInternals</a></li> +</ul> diff --git a/files/pt-br/web/http/headers/x-xss-protection/index.html b/files/pt-br/web/http/headers/x-xss-protection/index.html new file mode 100644 index 0000000000..0cf075c016 --- /dev/null +++ b/files/pt-br/web/http/headers/x-xss-protection/index.html @@ -0,0 +1,97 @@ +--- +title: X-XSS-Protection +slug: Web/HTTP/Headers/X-XSS-Protection +tags: + - HTTP + - Referencia + - Segurança + - XSS + - cabeçalho +translation_of: Web/HTTP/Headers/X-XSS-Protection +--- +<div>{{HTTPSidebar}}</div> + +<p>O cabeçalho de resposta HTTP <strong><code>X-XSS-Protection</code></strong> é uma funcionalidade do Internet Explorer, Chrome e Safari que impede páginas de carregarem quando eles detectam ataques de scripting entre sites ({{Glossary("XSS")}}) refletidos. Apesar destas proteções serem majoritariamente desnecessárias em navegadores modernos em sites utilizando uma forte {{HTTPHeader("Content-Security-Policy")}} que desabilita o uso de JavaScript <em>inline</em> (<code>'unsafe-inline'</code>), eles ainda podem oferecer proteções para usuários de navegadores mais antigos que ainda não suportam {{Glossary("CSP")}}.</p> + +<div class="note"> +<ul> + <li>Chrome <a href="https://www.chromestatus.com/feature/5021976655560704">removeu o XSS Auditor deles</a></li> + <li>Firefox não tem, e <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=528661">não irá implementar <code>X-XSS-Protection</code></a></li> + <li>Edge <a href="https://blogs.windows.com/windowsexperience/2018/07/25/announcing-windows-10-insider-preview-build-17723-and-build-18204/">aposentou o filtro XSS deles</a></li> +</ul> + +<p>Isso significa que se você não precisa dar suporte para navegadores legado, é recomendado que você use <code><a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy">Content-Security-Policy</a></code> sem permitir scripts <code>unsafe-inline</code> ao invés disso.</p> +</div> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Tipo de cabeçalho</th> + <td>{{Glossary("Response header")}}</td> + </tr> + <tr> + <th scope="row">{{Glossary("Forbidden header name")}}</th> + <td>não</td> + </tr> + </tbody> +</table> + +<h2 id="Sintaxe">Sintaxe</h2> + +<pre class="syntaxbox notranslate">X-XSS-Protection: 0 +X-XSS-Protection: 1 +X-XSS-Protection: 1; mode=block +X-XSS-Protection: 1; report=<reporting-uri> +</pre> + +<dl> + <dt>0</dt> + <dd>Desabilita filtragem XSS.</dd> + <dt>1</dt> + <dd>Habilita filtragem XSS (geralmente padrão em navegadores). Se um ataque de scripting entre sites é detectado, o navegador irá higienizar a página (remover as partes inseguras).</dd> + <dt>1; mode=block</dt> + <dd>Habilita filtragem XSS. Ao invés de higienizar a página, o navegador irá impedir a renderização da página em que o ataque foi detectado.</dd> + <dt>1; report=<reporting-URI> (Chromium somente)</dt> + <dd>Habilita filtragem XSS. Se o ataque de scripting entre sites é detectado, o navegador irá higienizar a página e reportar a violação. Isso utiliza a funcionalidade da diretiva CSP {{CSP("report-uri")}} para enviar o relatório.</dd> +</dl> + +<h2 id="Exemplos">Exemplos</h2> + +<p>Bloqueia páginas de carregarem quando elas detectam ataques XSS refletidos:</p> + +<pre class="brush: bash notranslate">X-XSS-Protection: 1; mode=block</pre> + +<p>PHP</p> + +<pre class="brush: php notranslate">header("X-XSS-Protection: 1; mode=block");</pre> + +<p>Apache (.htaccess)</p> + +<pre class="brush: bash notranslate"><IfModule mod_headers.c> + Header set X-XSS-Protection "1; mode=block" +</IfModule></pre> + +<p>Nginx</p> + +<pre class="brush: bash notranslate">add_header "X-XSS-Protection" "1; mode=block";</pre> + +<h2 id="Especificações">Especificações</h2> + +<p>Não faz parte de nenhuma especificação ou rascunho.</p> + +<h2 id="Compatibilidade_de_navegador">Compatibilidade de navegador</h2> + + + +<p>{{Compat("http.headers.X-XSS-Protection")}}</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul> + <li>{{HTTPHeader("Content-Security-Policy")}}</li> + <li><a href="https://blogs.msdn.microsoft.com/ieinternals/2011/01/31/controlling-the-xss-filter/">Controlando o XSS Filter (Controlling the XSS Filter) – Microsoft</a></li> + <li><a href="https://www.virtuesecurity.com/blog/understanding-xss-auditor/">Entendendo o XSS Auditor (Understanding XSS Auditor) – Virtue Security</a></li> + <li> + <p><a href="https://blog.innerht.ml/the-misunderstood-x-xss-protection/">O mal-entendido X-XSS-Protection (The misunderstood X-XSS-Protection) – blog.innerht.ml</a></p> + </li> +</ul> |