aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/glossario/seguro/index.html
blob: bb16dc429c966988e9ed2fcce941052b44663c35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
---
title: Seguro
slug: Glossario/seguro
tags:
  - Glossary
  - Glossário
  - Mecânicas da Web
  - WebMechanics
translation_of: Glossary/safe
---
<p>Um método HTTP é <strong>seguro</strong> se ele não altera o estado do servidor. Em outras palavras, um método é seguro se ele leva a uma operação de somente leitura. Diversos métodos de HTTP são seguros: {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, ou {{HTTPMethod("OPTIONS")}}. Todos os métodos seguros também são {{glossary("idempotente")}}s, mas nem todos os métodos idempotentes são seguros. Por exemplo, {{HTTPMethod("PUT")}} e {{HTTPMethod("DELETE")}} são ambos idempotentes, entretanto são inseguros.</p>

<p>Mesmo se métodos seguros possuem a semântica de somente leitura, servidores podem alterar o seu estado (e.g., eles podem manter <em>log</em> ou estatísticas). O que é importante aqui, é de que chamando um método seguro, o cliente não requer que o servidor mude seu estado, e portanto não gerará carga desnecessária ao servidor. Navegadores podem chamar métodos seguros sem medo de causarem nenhum dano ao servidor: isso permite a eles a possibilidade de fazer atividades como pré-carregamento sem nenhum risco. <em>Web crawlers</em> também usam métodos seguros.</p>

<p>Métodos seguros não servem somente para buscar arquivos estáticos, o servidor pode gerar uma resposta para um método seguro no voô, enquanto o <em>script</em> gerador garantir segurança: ele não deve ativar gatilhos externos, como ativar um pedido de compras em um site.</p>

<p>É responsabilidade da aplicação no servidor implementar a semântica segura corretamente, o servidor <em>web</em> em si, sendo Apache, nginx ou IIS, não pode forçar ela por si só. Em particular, a aplicação não deve permitir que requisições {{HTTPMethod("GET")}} alterem seu estado.</p>

<p>Uma chamada a um método seguro, não alterando o estado do servidor:</p>

<pre>GET /pageX.html HTTP/1.1
</pre>

<p>Uma chamada a um método não seguro, que pode alterar o estado do servidor:</p>

<pre>POST /pageX.html HTTP/1.1 </pre>

<p>Uma chamada a um método idempotente, mas não seguro:</p>

<pre>DELETE /idX/delete HTTP/1.1</pre>

<h2 id="Aprenda_mais">Aprenda mais</h2>

<h3 id="Conhecimento_geral">Conhecimento geral</h3>

<ul>
 <li>Definição de <a href="https://tools.ietf.org/html/rfc7231#section-4.2.1">seguro</a> na especificação HTTP.</li>
</ul>

<h3 id="Conhecimento_técnico">Conhecimento técnico</h3>

<ul>
 <li>Descrição de métodos seguros comuns: {{HTTPMethod("GET")}}, {{HTTPMethod("HEAD")}}, {{HTTPMethod("OPTIONS")}}</li>
 <li>Descrição de métodos inseguros comuns: {{HTTPMethod("PUT")}}, {{HTTPMethod("DELETE")}}, {{HTTPMethod("POST")}}</li>
</ul>