O protocolo HTTP define um conjunto de métodos de requisição responsáveis por indicar a ação a ser executada para um dado recurso. Um método HTTP é denominado idempotente se:
- A)as requisições em algum momento causam danos ou efeitos colaterais irreversíveis no servidor;
Errada: idempotência não tem relação com causar danos ou efeitos irreversíveis, e sim com manter o mesmo estado ao repetir a requisição.
- B)as requisições com cabeçalhos e parâmetros diferentes causam uma mesma mudança no estado do recurso;
Errada: mudanças de cabeçalhos e parâmetros podem alterar a requisição, mas isso não define idempotência do método HTTP.
- C)toda requisição estabelecer um túnel para o servidor identificado pelo recurso de destino;
Errada: essa descrição lembra estabelecimento de túnel, algo ligado a outros mecanismos, não à noção de idempotência.
- D)o código de status for o mesmo entre requisições que aplicam modificações parciais em um recurso;
Errada: o foco não é o código de status ser igual, mas o efeito final sobre o recurso permanecer o mesmo.
- E)uma requisição idêntica puder ser feita uma ou mais vezes em sequência com o mesmo efeito enquanto deixa o servidor no mesmo estado.
Certa: isso descreve exatamente idempotência, isto é, repetir a mesma requisição não muda o estado final do servidor após a primeira execução.
Gabarito: E
Idempotência, em HTTP, é a ideia de que repetir a mesma requisição não deve mudar o resultado final depois da primeira vez. Pense assim: se você apertar o mesmo botão duas vezes, o sistema não pode “se vingar” e piorar a situação. O ponto central não é o servidor responder igual em todos os detalhes, e sim manter o mesmo estado do recurso após cada repetição da operação. Na prática, métodos como GET, PUT, DELETE e alguns outros são considerados idempotentes quando, ao serem enviados várias vezes com os mesmos dados, produzem o mesmo efeito final. Isso não significa que a resposta do servidor seja sempre idêntica, porque o código de status ou o corpo da resposta podem variar. O que importa é o estado do recurso no servidor. Por isso, a alternativa correta é a que diz que uma requisição idêntica pode ser feita uma ou mais vezes em sequência com o mesmo efeito, deixando o servidor no mesmo estado. Essa é exatamente a definição clássica de idempotência em HTTP, como descrita nas especificações da família RFC 7231 e mantida na evolução da RFC 9110. As demais opções confundem idempotência com dano, túnel, cabeçalho, parâmetros ou com igualdade de status, mas nenhuma dessas ideias traduz o conceito. Em prova, vale decorar o núcleo: repetir não pode alterar o resultado final. Se repetiu e continuou igual, o método é idempotente.