Quando acessamos um site na Internet não imaginamos que por traz de toda a dinâmica das páginas construidas, existe nos bastidores da computação o protocolo HTTP ( Hypertext Transfer Protocol ). Tal protocolo é responsavel por efetuar a comunicação entre o navegador web com o servidor remoto, tranferindo páginas, arquivos e outros recursos.

No meio desta comunicação entre cliente e servidor, existe  os códigos que informam ao cliente, um Browser por exemplo, o estado da requisição efetuada ao servidor remoto. tais estados são representador por valores numéricos inteiros que especificam desde informações, redirecionamentos até erros emitidos do lado do servidor web e ou cliente.

Nesta postagem não será apresentada todas as especificações do protocolo HTTP, mas sim os códigos informativos que são cruciais para a comunicação entre cliente e servidor em uma requisição a um dado recurso no servidore remoto.

Para desenvolvedores de páginas de Internet os códigos apresentados são de extrema importância, pois tais estados informam o decorrer das requisições de páginas e ou recursos atrelado a elas. Estas informações podem ser usadas para efetuar o DEBUG da aplicação web estática ou dinâmica.

Os estados dos códigos HTTP são de:

  • Informações.
  • Sucessos.
  • Redirecionamentos.
  • Erros gerados do lado do Cliente.
  • Erros gerados do lado do Servidor.

Este artigo está baseado no documento referêncial RFC 2616 para o protocolo HTTP versão 1.1 e, os códigos mais importantes ou mais visualizados serão comentados.

Código de Informação

Os códigos informacionais, emitem valores inteiros na casa centesimal, códigos como 100, 101 por exemplo são valores emitidos por um servidor para informar o cliente pelo protocolo HTTP 1.1. Vejamos abaixo os valores desta faixa e suas respectivas mensagens.

  • 100 – Continue.
  • 101 – Switching Protocols (Protocolos de Comutação).

Códigos de Sucessos

Códigos de sucessos são os mais esperados por todos, tanto desenvolvedores como usuários não esperam que suas requisições a páginas web venham com problemas no pedido, processamento ou entrgfa dos dados para o cliente. Estes códigos representam que são representados pelo valor numerico na casa centesimal 2xx, como os estados 200, 202 etc. Vejamos abaixo os valores desta faixa e suas respectivas mensagens.

  • 200 – ok.
    • O estados 200 ou Ok informa que uma requisiçao pelo protocolo HTTP 1.1 foi efetuada, aceita e entregue ao destinatário com sucesso. Requisições de dados utilizando GET, POST, HEAD e TRACE são métodos que são informados por este estado em caso de sucesso.
  • 201 – Created (Criado).
  • 202 – Accepted (Aceito).
  • 203 – Non-Authoritative Information (Informações Não Autorizadas) .
  • 204 – No Content (Nenhum Conteúdo).
  • 205 – Reset Content (Redefinir Conteúdo).
  • 206 – Partial Content (Conteúdo Parcial).

Códigos de Redirecionamentos

Os códigos de Redirecionamentos, valores centesimal inteiros na casa dos 3xx, são muito importantes para informar ao cliente que o conteudo requisitados não se encontra no local, mas em outro especificado junto ao protocolo. Códigos como 301 Redirecionamento Permanente, é um exemplo prático e muito utilizado em servidores web, onde informação aos navegadores web ou robos de engines de busca, que o conteúdo requisitados já não se encontra mais neste local e sim oem outro. Vejamos abaixo os valores desta faixa e suas respectivas mensagens.

  • 300 – Multiple Choices (Multiplas Escolhas).
  • 301 – Moved Permanently (Movido Permanentemente).
  • 302 – Found (Encontrado)
  • 303 – See Other (Veja Outros)
  • 304 – Not Modified (Não Modificado)
  • 305 – Use Proxy (Usar o proxy)
  • 306 – Unused (Não Usado)
  • 307 – Temporary Redirect (Redirecionamento Temporário)

Códigos de Erros no Cliente

Os códigos erros no cliente, são estados com valores inteiros centesimal expressos pelos valores 4xx, assim como os valores 404, 403 etc. Estes estados apresentam erros executados no cliente, como solicitações inválidas para o servidor remoto, por exemplo o código 404 de página não existe. Vejamos abaixo os valores desta faixa e suas respectivas mensagens.

  • 400 – Bad Request (Pedido Ruim).
  • 401 – Unauthorized (Não Autorizado).
  • 402 – Payment Required (Pagamento Requerido).
  • 403 – Forbidden (Proibido).
  • 404 – Not Found (Não Existe).
  • 405 – Method Not Allowed (Método Não Permitido).
  • 406 – Not Acceptable (Não Aceitavel).
  • 407 – Proxy Authentication Required (Autenticação de Proxy Requerida).
  • 408 – Request Timeout (Tempo Limite para requisição).
  • 409 – Conflict (Conflito).
  • 410 – Gone (Desaparecido).
  • 411 – Length Required (Comprimento Requerido).
  • 412 – Precondition Failed (Pré Condição Falhou).
  • 413 – Request Entity Too Large (Entidade Solicitada muito Grande).
  • 414 – Request-URI Too Long (Solicitação de URI muito longa).
  • 415 – Unsupported Media Type (Tipo de mídia não suportado).
  • 416 – Requested Range Not Satisfiable (Intervalo solicitado não satisfatório).
  • 417 – Expectation Failed (Expectativa de Falha ).

Códigos de Erros do Servidor

Os códigos erros do servodpr, são estados com valores inteiros centesimal expressos pelos valores 5xx, assim como os valores 404, 403 etc. Estes estados apresentam erros executados no servidor remoto. Tais erros podem ser gerados como processamento invalido por um determinado interpretador em uso, por exemplo PHP, Python, Perl etc, Assim como um serviço requisitado não implementado. Vejamos abaixo os valores desta faixa e suas respectivas mensagens.

  • 500 – Internal Server Error (Erro Interno no Servidor).
  • 501 – Not Implemented (Não Implementado).
  • 502 – Bad Gateway (Porta de Saida Ruim).
  • 503 – Service Unavailable (Serviço Não Avaliado).
  • 504 – Gateway Timeout (Tempo Limite para Porta de Saida).
  • 505 – HTTP Version Not Supported (Versão do protocolo HTTP Não Suportado).

Referências

  1. RFC 2616 – HTTP 1.1