Sobes.tech
Junior

Fale sobre os códigos de status HTTP.

sobes.tech IA

Resposta da IA

Os códigos de estado HTTP são números padrão de três dígitos devolvidos pelo servidor em resposta a uma solicitação do cliente. Eles indicam o resultado do processamento da solicitação.

Categorias de códigos de estado:

  • 1xx (Informativos): O servidor recebeu a solicitação e continua o processo.
  • 2xx (Sucesso): A solicitação foi processada com sucesso.
  • 3xx (Redirecionamento): É necessária uma ação adicional para completar a solicitação.
  • 4xx (Erro do cliente): A solicitação contém um erro de sintaxe ou não pode ser processada.
  • 5xx (Erro do servidor): O servidor não conseguiu completar a solicitação, mesmo que esta seja válida.

Códigos de estado comuns:

Código Nome Descrição
200 OK A solicitação foi processada com sucesso.
201 Created O recurso foi criado com sucesso.
204 No Content A solicitação foi processada com sucesso, sem corpo na resposta.
301 Moved Permanently O recurso foi movido para uma URL permanente.
302 Found O recurso está disponível temporariamente em outra URL.
304 Not Modified O recurso não foi alterado desde a última solicitação.
400 Bad Request O servidor não conseguiu entender a solicitação devido a uma sintaxe incorreta.
401 Unauthorized É necessária autenticação.
403 Forbidden O acesso ao recurso é proibido.
404 Not Found O recurso solicitado não foi encontrado.
405 Method Not Allowed O método HTTP utilizado na solicitação não é permitido para o recurso.
409 Conflict Conflito ao processar a solicitação, por exemplo, criar um recurso existente.
422 Unprocessable Entity A solicitação é sintaticamente correta, mas semanticamente incorreta.
500 Internal Server Error Erro interno do servidor.
501 Not Implemented O servidor não suporta a funcionalidade necessária para processar a solicitação.
503 Service Unavailable O servidor está temporariamente indisponível.

Ao testar uma API, os códigos de estado são um indicador-chave do sucesso ou fracasso do teste. Verificar o código de estado correto para cada tipo de solicitação (GET, POST, PUT, DELETE, etc.) em diferentes cenários (sucesso, erro de validação, ausência de recurso, autorização) é fundamental para os testes funcionais da API.

Por exemplo, ao criar um novo recurso (requisição POST) espera-se o código 201 Created, ao obter um recurso inexistente (requisição GET) - 404 Not Found.

import requests

# Exemplo de verificação do código de estado em uma solicitação bem-sucedida
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Esperamos o código 200 OK
assert response.status_code == 200

# Exemplo de verificação do código de estado em um recurso não encontrado
response_not_found = requests.get('https://jsonplaceholder.typicode.com/posts/9999')
# Esperamos o código 404 Not Found
assert response_not_found.status_code == 404