HTTP o protocolo - Parte 1
- Autor: Nelson Rabello |
- Publicado em 31/05/2010 |
- Categoria: Tecnologia e internet
Baseado no livro HTTP Pocket Reference de Clinton Wong
Vou dividir o artigo em partes para uma melhor compreensão.
Introdução
HTTP significa Hypertext Transfer Protocol ou Protocolo de Transferência de HiperTexto. É um protocolo baseado no TCP / IP que é utilizado para transferir praticamente todos os tipos de arquivos e outros dados, coletivamente chamados de recursos, na World Wide Web. Esses recursos poderiam ser arquivos HTML, arquivos de imagem, os resultados de uma consulta ou qualquer outra coisa.
Um navegador funciona como um cliente HTTP porque ele envia pedidos para um servidor HTTP, que é chamado de servidor Web. O servidor de Hospedagem de sites envia respostas de volta para o cliente. A porta padrão para servidores HTTP a porta é 80, mas pode ser alterado para qualquer outra porta como 8080, etc.
Há três coisas importantes sobre HTTP que você deve saber:
Conexão HTTP: Depois de uma solicitação ser feita, o cliente se desconecta do servidor e aguarda uma resposta. O servidor deve re-estabelecer a conexão depois de processar o pedido.
HTTP é mídia independente: Qualquer tipo de dados podem ser enviados por HTTP, o cliente e o servidor devem saber como lidar com o conteúdo dos dados. Isto é determinado pela especificação MIME.
HTTP é stateless: O servidor web e o cliente estão cientes entre si, apenas durante uma requisição. Posteriormente, cada um "esquece" do outro. Por esta razão, nem o cliente nem o navegador podem reter a informação entre diferentes requisições através das páginas da web.
A estrutura das mensagens
Como a maioria dos protocolos de rede, HTTP utiliza o modelo cliente-servidor: um cliente abre uma conexão HTTP e envia uma mensagem de solicitação para um servidor HTTP, o servidor retorna uma mensagem de resposta que geralmente contém o recurso que foi solicitado. Depois de entregar a resposta, o servidor fecha a conexão.
O formato das mensagens de solicitação e resposta são semelhantes e terão a seguinte estrutura:
Uma linha inicial CRLF
Zero ou mais linhas de cabeçalho CRLF
Um exemplo de linha em branco. Um CRLF
O corpo da mensagem opcional como arquivo de dados de consulta ou de saída da consulta.
A linha inicial é diferente para o pedido e para a resposta. A linha de solicitação tem três partes, separadas por espaços:
O nome do método HTTP
O caminho do local do recurso solicitado.
A versão do HTTP está sendo usado.
Aqui está um exemplo da linha inicial para solicitação de mensagens.
GET / path / to / file / index.html HTTP/1.0
GET é o método mais comum, além dele existem POST, HEAD, PUT, DELETE, TRACE, etc.
Path é a parte da URL depois do nome do host. Também chamado URI.
A linha de resposta inicial, chamada de linha de status, também tem três partes separadas por espaços:
A versão do HTTP está sendo usado.
Um código de status de resposta que dá o resultado do pedido.
Uma frase razão Inglês descrevendo o código de status.
Aqui está um exemplo da linha inicial de resposta de mensagens.
HTTP/1.0 200 OK
Linhas de Cabeçalho
Linhas de cabeçalho fornecem informações sobre o pedido ou resposta, ou sobre o objeto enviado no corpo da mensagem.
As linhas de cabeçalho estão no formato habitual do texto do cabeçalho, que é: uma linha por cabeçalho, na forma de "Header-Name:" O valor, que termina com CRLF. É o mesmo formato usado para enviar e-mail e notícias, definido na RFC 822.
Aqui um exemplo de uma linha de cabeçalho:
User-agente: Mozilla/3.0Gold
O corpo da mensagem
Uma mensagem HTTP pode ter um corpo de dados enviados após as linhas de cabeçalho. Em resposta, este é o lugar onde o recurso solicitado é retornado para o cliente (o uso mais comum do corpo da mensagem), ou talvez um texto explicativo, se houver um erro. Um pedido é o lugar onde dados introduzidos pelo usuário ou os arquivos são enviados para o servidor.
Se uma mensagem HTTP inclui um corpo, geralmente há linhas de cabeçalho na mensagem que descrevem o corpo. Em particular:
Content-Type:mostra o tipo de dados no corpo, exemplo: text/html ou image/jpg.
Conten-Length:indica o número de bytes no corpo.
No próximo artigo uma descrição detalhada dos métodos usados no protocolo HTTP.
Visite o site da faxtel eletrônica
