Protocolo HTTP
O que é e como
   funciona



        Thiago Morais
   Segurança da Informação
     1o Período – Noturno
       Outubro / 2012
Sumário
Definição e História                      Pág. 1

Clientes HTTP                             Pág. 1

Servidores HTTP                           Pág. 1

Pedido HTTP (HTTP Request)                Pág. 2

Métodos                                   Pág. 2

URI                                       Pág. 2

Informações Adicionais                    Pág. 2

Resposta HTTP (HTTP Response)             Pág. 3

Status                                    Pág. 3

Descrição da Informação                   Pág. 3

Tipos MIME                                Pág. 4

Bibliografia                              Pág. 4
Definição e História
      O HyperText Transfer Protocol é um protocolo de aplicação responsável pelo tratamento
de pedidos e respostas entre cliente e servidor na World Wide Web. Ele surgiu da necessidade
de distribuir informações pela Internet e para que essa distribuição fosse possível foi necessário
criar uma forma padronizada de comunicação entre os clientes e os servidores da Web e
entendida por todos os computadores ligados à Internet. Com isso, o protocolo HTTP passou a
ser utilizado para a comunicação entre computadores na Internet e a especifcar como seriam
realizadas as transações entre clientes e servidores, através do uso de regras básicas.
      Este protocolo tem sido usado pela WWW desde 1990. A primeira versão de HTTP,
chamada HTTP/0.9, era um protocolo simples para a transferência de dados no formato de texto
ASCII pela Internet, através de um único método de requisição, chamado GET. A versão HTTP/1.0
foi desenvolvida entre 1992 e 1996 para suprir a necessidade de transferir não apenas texto.
Com essa versão, o protocolo passou a transferir mensagens do tipo MIME44 (Multipurpose
Internet Mail Extension) e foram implementados novos métodos de requisição, chamados POST
e HEAD.
      No HTTP/1.1, versão atual do protocolo descrito na RFC 2616, foi desenvolvido um
conjunto de implementações adicionais ao HTTP/1.0, como por exemplo: o uso de conexões
persistentes; o uso de servidores proxy que permitem uma melhor organização da cache; novos
métodos de requisições; entre outros. Afrma-se que o HTTP também é usado como um
protocolo genérico para comunicação entre os agentes de utilizadores e proxies/gateways com
outros protocolos, como o SMTP, NNTP, FTP, Gopher, e WAIS, permitindo o acesso a recursos
disponíveis em aplicações diversas.


                                      Clientes HTTP
      Os clientes de uma conexão HTTP são os browsers. Atualmente dois browsers se
destacam no mercado: Firefox, da Mozilla Foundation e Internet Explorer, da Microsoft. Ambos
são gratuitos.


                                   Servidores HTTP
      Os servidores de uma conexão HTTP são os servidores Web. Os servidores Web de maior
destaque atualmente no mercado são: Apache, IIS e Nginx. Existem servidores gratuitos e
comerciais.




                                             Página 1
Pedido HTTP (HTTP Request)
      Um pedido HTTP é composto de quatro partes básicas:
             - O método: Ação a ser realizada;
             - A URI (Universal Resource Identifer): A informação requisitada;
             - A versão do protocolo HTTP;
             - Informações adicionais.


                                          Métodos
      Os métodos podem ser:
- GET: Retorna o objeto, ou seja, a informação requisitada;
- HEAD: Retorna somente informações sobre o objeto, como tamanho, data de criação e outros;
- POST: Envia informações para o servidor Web. Método utilizado por scripts;
- PUT: Envia uma cópia de um objeto/informação para ser armazenado num servidor Web;
- DELETE: Apaga um objeto armazenado no servidor Web.


                                              URI
      O tipo de URI utilizada pelo protocolo HTTP é chamada de URL (Uniform Resource
Locator)                                                                                  e
contém três partes:
- A identifcação do protocolo;
- O endereço do computador servidor;
- O documento requisitado (pode incluir subdiretórios).


      Um bom exemplo de URL seria o documento index.html, armazenado no diretório
internet em um servidor de endereço www.go.senac.br:
- http://www.go.senac.br/index.html


                               Informações Adicionais
      São maneiras do browser informar ao servidor Web algumas preferências defnidas na
confguração do browser como:
- Tipo de documento aceitos;
- Linguagem preferida para os documentos HTML que são retornados;
- Set de caracteres suportados;


                                             Página 2
- E outras.

                      Resposta HTTP (HTTP Response)
       O servidor Web ao receber o pedido, processa-o de modo a determinar o que deverá ser
feito. Em relação ao pedido do slide anterior, o servidor Web deverá procurar o arquivo
index.html no diretório internet e retorná-lo ao browser.
       Uma resposta HTTP é formada por três elementos:
              - Linha de status: Indicando sucesso ou falha do pedido;
              - Descrição da informação contida na resposta (Meta Informação ou MIME);
              - A própria informação que foi requisitada.


                                              Status
       A linha de status traz as seguintes informações:
              - A versão do protocolo HTTP;
              - O código de status que defne o resultado do pedido;
              - Uma pequena frase explicando o que signifca o código.
       Os principais códigos de status existentes:
              - 200 (Document follows): Pedido bem sucedido. A informação requisitada será
retornada;
              - 401 (Unauthorized): A informação requisitada é de acesso restrito, sendo
necessário se autenticar;
              - 403 (Forbidden): Acesso proibido;
              - 404 (Not found): A informação requisitada não foi encontrada ou teve permissão
de acesso negada. A primeira opção é muito freqüente na Internet e pode ocorrer por erro de
digitação de uma URL.
              - 500 (Server Error): Erro no servidor Web. Comum quando da execução de scripts.


                            Descrição da Informação
       Uma das partes mais importantes de uma resposta HTTP é a informação que defne o tipo
de documento que está sendo retornado ao browser, de modo que ele possa exibi-lo
adequadamente. Essa informação é codifcada pelo tipo MIME (Multi Purpose Mail Extensions).
       Em outras palavras, o servidor Web, ao receber o pedido, procura o arquivo e checa a sua
extensão (.html), realizando uma consulta em uma grande tabela de tipos MIME que indica o
código que deverá ser usado para cada extensão existente. No caso de arquivos .html/htm, o
tipo MIME é o text/html.

                                              Página 3
Tipos MIME
     Alguns tipos MIME conhecidos:
           - text/plain: Arquivo no formato texto (ASCII);
           - text/html: Documento no formato HTML, o padrão para documentos Web;
           - application/zip: Arquivo compactado;
           - image/gif: Imagem codifcada no formato GIF;
           - image/jpeg: Imagem codifcada no formato JPEG.


                                     Bibliografia
Hypertext Transfer Protocol                                    http://bit.ly/14Xw4t

O Protocolo HTTP                                               http://bit.ly/RKVD62




                                           Página 4

Http conceitos

  • 1.
    Protocolo HTTP O queé e como funciona Thiago Morais Segurança da Informação 1o Período – Noturno Outubro / 2012
  • 2.
    Sumário Definição e História Pág. 1 Clientes HTTP Pág. 1 Servidores HTTP Pág. 1 Pedido HTTP (HTTP Request) Pág. 2 Métodos Pág. 2 URI Pág. 2 Informações Adicionais Pág. 2 Resposta HTTP (HTTP Response) Pág. 3 Status Pág. 3 Descrição da Informação Pág. 3 Tipos MIME Pág. 4 Bibliografia Pág. 4
  • 3.
    Definição e História O HyperText Transfer Protocol é um protocolo de aplicação responsável pelo tratamento de pedidos e respostas entre cliente e servidor na World Wide Web. Ele surgiu da necessidade de distribuir informações pela Internet e para que essa distribuição fosse possível foi necessário criar uma forma padronizada de comunicação entre os clientes e os servidores da Web e entendida por todos os computadores ligados à Internet. Com isso, o protocolo HTTP passou a ser utilizado para a comunicação entre computadores na Internet e a especifcar como seriam realizadas as transações entre clientes e servidores, através do uso de regras básicas. Este protocolo tem sido usado pela WWW desde 1990. A primeira versão de HTTP, chamada HTTP/0.9, era um protocolo simples para a transferência de dados no formato de texto ASCII pela Internet, através de um único método de requisição, chamado GET. A versão HTTP/1.0 foi desenvolvida entre 1992 e 1996 para suprir a necessidade de transferir não apenas texto. Com essa versão, o protocolo passou a transferir mensagens do tipo MIME44 (Multipurpose Internet Mail Extension) e foram implementados novos métodos de requisição, chamados POST e HEAD. No HTTP/1.1, versão atual do protocolo descrito na RFC 2616, foi desenvolvido um conjunto de implementações adicionais ao HTTP/1.0, como por exemplo: o uso de conexões persistentes; o uso de servidores proxy que permitem uma melhor organização da cache; novos métodos de requisições; entre outros. Afrma-se que o HTTP também é usado como um protocolo genérico para comunicação entre os agentes de utilizadores e proxies/gateways com outros protocolos, como o SMTP, NNTP, FTP, Gopher, e WAIS, permitindo o acesso a recursos disponíveis em aplicações diversas. Clientes HTTP Os clientes de uma conexão HTTP são os browsers. Atualmente dois browsers se destacam no mercado: Firefox, da Mozilla Foundation e Internet Explorer, da Microsoft. Ambos são gratuitos. Servidores HTTP Os servidores de uma conexão HTTP são os servidores Web. Os servidores Web de maior destaque atualmente no mercado são: Apache, IIS e Nginx. Existem servidores gratuitos e comerciais. Página 1
  • 4.
    Pedido HTTP (HTTPRequest) Um pedido HTTP é composto de quatro partes básicas: - O método: Ação a ser realizada; - A URI (Universal Resource Identifer): A informação requisitada; - A versão do protocolo HTTP; - Informações adicionais. Métodos Os métodos podem ser: - GET: Retorna o objeto, ou seja, a informação requisitada; - HEAD: Retorna somente informações sobre o objeto, como tamanho, data de criação e outros; - POST: Envia informações para o servidor Web. Método utilizado por scripts; - PUT: Envia uma cópia de um objeto/informação para ser armazenado num servidor Web; - DELETE: Apaga um objeto armazenado no servidor Web. URI O tipo de URI utilizada pelo protocolo HTTP é chamada de URL (Uniform Resource Locator) e contém três partes: - A identifcação do protocolo; - O endereço do computador servidor; - O documento requisitado (pode incluir subdiretórios). Um bom exemplo de URL seria o documento index.html, armazenado no diretório internet em um servidor de endereço www.go.senac.br: - http://www.go.senac.br/index.html Informações Adicionais São maneiras do browser informar ao servidor Web algumas preferências defnidas na confguração do browser como: - Tipo de documento aceitos; - Linguagem preferida para os documentos HTML que são retornados; - Set de caracteres suportados; Página 2
  • 5.
    - E outras. Resposta HTTP (HTTP Response) O servidor Web ao receber o pedido, processa-o de modo a determinar o que deverá ser feito. Em relação ao pedido do slide anterior, o servidor Web deverá procurar o arquivo index.html no diretório internet e retorná-lo ao browser. Uma resposta HTTP é formada por três elementos: - Linha de status: Indicando sucesso ou falha do pedido; - Descrição da informação contida na resposta (Meta Informação ou MIME); - A própria informação que foi requisitada. Status A linha de status traz as seguintes informações: - A versão do protocolo HTTP; - O código de status que defne o resultado do pedido; - Uma pequena frase explicando o que signifca o código. Os principais códigos de status existentes: - 200 (Document follows): Pedido bem sucedido. A informação requisitada será retornada; - 401 (Unauthorized): A informação requisitada é de acesso restrito, sendo necessário se autenticar; - 403 (Forbidden): Acesso proibido; - 404 (Not found): A informação requisitada não foi encontrada ou teve permissão de acesso negada. A primeira opção é muito freqüente na Internet e pode ocorrer por erro de digitação de uma URL. - 500 (Server Error): Erro no servidor Web. Comum quando da execução de scripts. Descrição da Informação Uma das partes mais importantes de uma resposta HTTP é a informação que defne o tipo de documento que está sendo retornado ao browser, de modo que ele possa exibi-lo adequadamente. Essa informação é codifcada pelo tipo MIME (Multi Purpose Mail Extensions). Em outras palavras, o servidor Web, ao receber o pedido, procura o arquivo e checa a sua extensão (.html), realizando uma consulta em uma grande tabela de tipos MIME que indica o código que deverá ser usado para cada extensão existente. No caso de arquivos .html/htm, o tipo MIME é o text/html. Página 3
  • 6.
    Tipos MIME Alguns tipos MIME conhecidos: - text/plain: Arquivo no formato texto (ASCII); - text/html: Documento no formato HTML, o padrão para documentos Web; - application/zip: Arquivo compactado; - image/gif: Imagem codifcada no formato GIF; - image/jpeg: Imagem codifcada no formato JPEG. Bibliografia Hypertext Transfer Protocol http://bit.ly/14Xw4t O Protocolo HTTP http://bit.ly/RKVD62 Página 4