SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Hypertext Transfer Protocol




  HTTP
IFRS - Campus Porto Alegre
 Prof. Evandro Manara Miletto
 http://www.inf.poa.ifrs.edu.br/~evandro/
O que é o HTTP


Protocolo de Transferência de Hipertexto - é um protocolo de
comunicação (na camada de Aplicação do modelo TCP/IP)
utilizado para transferência de dados na Internet.
Nível de Aplicação
Comunicação entre cliente e servidor, com mesmas características

Identifica o cliente que inicia a comunicação

 A    A                                          A          A
 T                                                          T
 R                                                          R
 E                                                          E
 F                                                          F
Acessando recursos Web
	 	 	 <protocolo>://<servidor>/<caminho>

                  Protocolo de        Define o
              comunicação entre     endereço URL
               cliente e servidor




  Cliente                                          Servidor
Características do HTTP

Usa mecanismo de requisição-resposta (request/response)
Servidor aguarda conexões na porta 80
Servidor aceita ou não conexões
Localizador Universal de Recurso – URL
Comunicação é encerrada ao final da conexão
Funcionamento HTTP
Formato de requisição HTTP
                                               Especifica método
Request Line   GET /index.html HTTP/1.0          de requisição


     Header    Host: www.content-networking.com
      Lines    Date: BBBBBBBBBBBB
               User-Agent: Mozilla/5.0 (en) (WINNT; U)
               Accept-Language: en-us

   Carriage
    Return/
  Line Feed                                Especifica recurso via
                                                   URI
   Message                                     & metadados
               Content-length:
      Body     (Message Payload)
Métodos HTTP                  (1/4)



 GET
       Pedido de um recurso situado na URL especificada
 HEAD
       Idêntico ao GET entretanto o servidor enviará apenas o
       cabeçalho da resposta
       É utilizado para obter informações de um recurso sem transferir
       os dados (testa de link quebrado, data de modificação, etc.)
Métodos HTTP                (2/4)




 POST
    utilizado para solicitar que o servidor de origem aceite os dados
    que são incluídos na requisição
    projetado para permitir as seguintes funções:
        Postar uma mensagem para uma lista de e-mails, grupo de
        notícias, etc.
        Prover uma forma de enviar dados por meio de formulários
Métodos HTTP               (3/4)



 PUT
       Semelhante ao POST, PUT apenas atualiza um novo
       recurso no servidor enquanto o PUT envia dados
       para processamento
 DELETE
       elimina ou move um recurso para uma localização
       inacessível
Métodos HTTP              (4/4)




 TRACE
    O objetivo to TRACE é verificar o que o servidor ou
    proxy está recebendo do cliente (eco)
    Este método foi concebido com o objetivo de permitir
    a realização de diagnósticos e testes
     Exercício: Experimente descobrir a rota (nodos) para
    chegar a um servidor Web (use tracert no prompt)
Exemplo Request/
    Response
Mensagem HTTP cliente
        request line
(GET, POST, HEAD..)    GET /somedir/page.html HTTP/1.0
                       Host: www.someScholl.edu
                       User-agent: Mozilla/4.0
       header lines
                       Accept: text/html, image/gif,image/jpeg
                       Accept-language:fr

   indica o final da    (extra carriage return, line feed)
        mensagem
Mensagem HTTP servidor
         status line
   (protocol status    HTTP/1.0 200 OK
code status phrase)    Date: Thu, 06 Aug 1998 12:00:15 GMT
       header lines    Server: Apache/1.3.0 (Unix)
                       Last-Modified: Mon, 22 Jun 1998 ......
                       Content-Length: 6821
                       Content-Type: text/html

   indica o final da    data data data data data ...
        mensagem
Principais Atributos de
 Requisição (request)
Host
Identifica um página (site)
É representado por um endereço IPv4 ou um nome registrado
Se o host for um nome registrado então deve ser considerado
um identificador indireto
O valor do host não pode ser nulo
Se a porta não for fornecida, a 80 é assumida como a padrão
para serviços WWW
User-Agent

Possui informação sobre o “agente” (cliente http) que originou a requisição HTTP
Navegadores podem ser considerados user-agent (Firefox, Opera, Safari, etc.)
Propósito: colher dados estatísticos, detecção de violação do protocolo e
reconhecimento automático de clientes (adaptação ou limitações)
É recomendado que um cliente acrescente o user-agent na requisição (não é um
campo obrigatório)
O campo pode conter comentários para identificar qualquer subproduto que faça
parte do user-agent
Accept
Pode ser utilizado por clientes para especificar os tipos de mídias que são aceitáveis

Uma requisição pode ser limitada para um conjunto de tipos de mídia desejáveis (ex. requisição
de apenas imagens)

O asterisco (*) é usado para agrupar tipos de mídias

O "*/*" indica todos os tipos de mídias enquanto "type/*" indica todas as mídias de um
determinado tipo

Cada tipo de mídia pode ser seguido por um ou mais parâmetros, iniciando com "q" para indicar
um fator de “qualidade”

Um fator de qualidade (q) permite o usuário indicar o grau relativo de "qualidade" para um tipo
de mídia. A escala vai de 0 até 1 (valor padrão)
Accept          (exemplo)



Exemplo:
    Accept: text/plain; q=0.5, text/html,
    text/x-dvi; q=0.8, text/x-c

O exemplo acima deve ser interpretado: "text/html e text/x-c são os
tipos de mídia preferidos. Caso não exista, envie-me text/x-dvi. Se
ainda não existir, envie-me os arquivos em text/plain
Assim, o valor “1” (ou maior) da qualidade deve ser interpretado
como o formato preferido
Accept-Language

O campo Accept-Language pode ser utilizado por clientes HTTP para
indicar o conjunto de linguagens naturais que são preferidos
O atributo de "qualidade" q também pode ser utilizado para indicar
os idiomas preferidos
Exemplo:
    Accept-Language: pt-br, en-us;q=0.9, en;q=0.8
Accept-Encoding


Informa a codificação aceita na resposta.Accept-Encoding: gzip
significa que o client aceita, como codificação da resposta, gzip;
Keep-Alive e Connection

Conexão HTTP persistente, usa uma conexão TCP única para
enviar e receber múltiplas requisições/repostas HTTP
Ocorre de forma oposta a abrir uma nova conexão para cada
requisição/resposta simples.
Keep-Alive e Connection




 http://en.wikipedia.org/wiki/File:HTTP_persistent_connection.svg
Accept-Charset
Utilizado para indicar o padrão dos caracteres de resposta
aceitáveis. Ex:
    Accept-Charset: iso-8859-5, unicode-1-1;q=0.8

Informação complementar:
    Iso-8859-5:
    http://en.wikipedia.org/wiki/ISO/IEC_8859-5

    Unicode:
    http://pt.wikipedia.org/wiki/Unicode
Accept-Language

Informa o idioma aceito na resposta. Accept-Language: pt-br,
pt;q=0.8
significa que o cliente prefere português brasileiro como
idioma da resposta, mas aceita português se não tiver em
português brasileiro.
Referer

Permite que o cliente especifique a URI de um recurso (página,
vídeo, imagem, etc.) que deve ser visualizado
Este atributo também é geralmente utilizado pelos servidores
para realizar cache de recursos mais acessados
Também permite que os servidores redirecione recursos
obsoletos para páginas em manutenção, etc.
Cookie

São dados trocados entre o cliente e o servidor
Função principal: manter a persistência de sessões HTTP
    Existiram muitas críticas ao conceito devido ao problema de
    segurança
    Ex: segurança na utilização de computadores públicos
Cookie (exemplo)
                                                                      Request           Servidor
        Cliente                                            Username: professor
                                                              Password: 12345

                                                                                                    Arquivo de seção
                  Response
                  Set Cookie: SESSION_ID = @#$%12wert
                                                                                                   @#$%12wert
Tempo




                                                                                                      Pode ser utilizado
                                                                                                        para guardar
                                                                                                       uma informação
                                                                             Response
                                                                                                         do usuário
                                                     Cookie: SESSION_ID = @#$%12wert

                                                                                                   Arquivo de seção

                  Conteúdo (HTML) para o professor                                            @#$%12wert
Principais Códigos de
     Status HTTP
1xx - Informativos
100 (Continue) – Significa que o servidor recebeu uma parte
inicial da requisição e está informando para o cliente que ele
deve continuar enviando (por exemplo, no caso de um POST com
muitos megas)
101 (Switching Protocols) – O servidor avisa para o cliente que
irá modificar o protocolo de comunicação (por exemplo, uma
nova versão de HTTP)
2xx - Sucesso
200 (OK) - Resposta entregue corretamente

201 (Created) – Requisição executada e originou um novo recurso

202 (Accepted) – Requisição aceita mas ainda não realizada

203 (Non-Authoritative Information) – A resposta da requisição foi
originada por outras fontes de dados, Ex. cache do navegador

204 (No Content) - O servidor recebeu a requisição mas não há
informação para devolver (página sem conteúdo)

205 (Reset Content) - O servidor indica ao navegador para suprimir o
conteúdo dos campos de formulário
3xx - Redirecionamento
   301 (Moved) – O recurso solicitado foi transferido para um novo
   endereço. Assim, o cliente pode guardar esta nova localização

   302 (Found) – O recurso alvo reside numa localização diferente. Isto
   acontece num redirecionamento, assim, o cliente deve utilizar o link
   correto numa requisição futura.                                   requisição
   Exemplo: GET /index.html HTTP/1.1 Host: www.wikipedia.org

HTTP/1.1 302 Found                                                   resposta
Location: http://www.wikipedia.org/index.php
3xx - Redirecionamento

   303 (See Other) – Método correto de direcionar um cliente para um
   outro link.



   Exemplo:                                         resposta
HTTP/1.1 303 See Other
Location: http://www.example.org
4xx - Erro de Cliente
400 (Bad Request) - A sintaxe do pedido está mal formulada

401 (Unauthorized) - O cliente não está autorizado a acessar um
recurso. Deve refazer a requisição passando suas credenciais (ex: usuário
e senha)

402 (Payment Required) - Pede para o cliente refazer a requisição
passando dados para pagamento

403 (Forbidden) - O acesso ao recurso é proibido
404 (Not Found) - O servidor não encontrou o recurso solicitado
5xx - Erro de Servidor
500 (Internal Error) - O servidor encontrou uma condição inesperada
(sistema mal implementado)

501 (Not Implemented) - O servidor não suporta o serviço pedido

502 (Bad Gateway) - O servidor está recebendo uma resposta inválida
de um outro servidor (ex: servidor de stream de vídeo)

503 (Service Unavaiable) - O servidor não pode responder no momento

504 – GATEWAY TIMEOUT - A resposta do servidor foi muito longa
esgotando o tempo
Principais Atributos de
 Resposta (response)
Content-Type e Content-Length


Content-Type indica o tipo de conteúdo do corpo da resposta

     Exemplos: text/html, application/pdf, etc.

Content-Length indica o tamanho do corpo da mensagem de resposta
Content-Encoding e Content-Language



Content-Encoding indica o tipo de codificação utilizada na resposta. Por
exemplo, compress, deflate, gzip, etc.

Content-Language indica o tipo de língua utilizada no corpo da
mensagem. Por exemplo, pt-br, en-us, etc.
Location

O campo de resposta location é utilizado para identificar um novo
recurso criado ou para redirecionar o cliente para uma localização
(link) diferente

Se o status da resposta for 201 (created) então o servidor está
indicando um novo recurso

Entretanto, o status 3xx indica que o servidor está indicando um
novo link para o cliente fazer um redirecionamento
Server

O campo de resposta server contém informações sobre o software usado
pelo servidor para manipular as requisições (servidor HTTP)

Exemplos de servidores HTTP:

     Apache HTTP Server

     Internet Information Services (IIS)
Expires e Date

O campo de resposta expires indica explicitamente para o cliente quando
ele deve realizar novamente uma requisição para o servidor. Enquanto
isto o cliente pode carregar a página da cache, etc.

     Ex: Expires: Thu, 01 Dec 1994 16:00:00 GMT

O campo de propósito geral date indica o dia e a hora que uma
mensagem foi enviada

     Ex: Date: Tue, 15 Nov 1994 08:12:31 GMT
Exercício prático

Simular um browser realizando uma requisição HTTP a um servidor Web

Utilizar TELNET na porta 80 do servidor Ex:

     Ex:

     telnet www.google.com.br 80
     GET http://www.google.com.br HTTP/1.0 [enter]
     [enter]
     [enter]
Referências

       RFCS (Request for Comments) HTTP 1.1

http://datatracker.ietf.org/wg/httpbis/

       Tutoriais HTTP

http://pt.kioskea.net/contents/internet/http.php3


Baseado no material do Prof Rodrigo Prestes Machado

Weitere ähnliche Inhalte

Was ist angesagt?

Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de emailCarlos Veiga
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBelliando dias
 
Curso de html básico
Curso de html básicoCurso de html básico
Curso de html básicohigson
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor webMauro Duarte
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicaçãoTiago Tda
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoCarlos Veiga
 
GlossáRio
GlossáRioGlossáRio
GlossáRionelson
 
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...Leonel Morgado
 
Aula 5 camada de aplicacao
Aula 5   camada de aplicacaoAula 5   camada de aplicacao
Aula 5 camada de aplicacaowab030
 
Curso de Node.js e MongoDB - 11
Curso de Node.js e MongoDB - 11Curso de Node.js e MongoDB - 11
Curso de Node.js e MongoDB - 11Luiz Duarte
 

Was ist angesagt? (20)

Aula02 - protocolos de email
Aula02 -  protocolos de emailAula02 -  protocolos de email
Aula02 - protocolos de email
 
Http mensagens
Http   mensagensHttp   mensagens
Http mensagens
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 
O get and post para etico hacker
O get and post para etico hackerO get and post para etico hacker
O get and post para etico hacker
 
Http 2.0
Http 2.0Http 2.0
Http 2.0
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
Curso de html básico
Curso de html básicoCurso de html básico
Curso de html básico
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Redes servidor web
Redes servidor webRedes servidor web
Redes servidor web
 
Aula05 camada de aplicação
Aula05 camada de aplicaçãoAula05 camada de aplicação
Aula05 camada de aplicação
 
Web service
Web serviceWeb service
Web service
 
Aula 1
Aula 1Aula 1
Aula 1
 
Aula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicaçãoAula01 - protocolos da camada de aplicação
Aula01 - protocolos da camada de aplicação
 
GlossáRio
GlossáRioGlossáRio
GlossáRio
 
HTTP
HTTPHTTP
HTTP
 
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...
Metodologias de Programação IV - Aula 2, Secção 2 - Sequência pedido-resposta...
 
Aula 5 camada de aplicacao
Aula 5   camada de aplicacaoAula 5   camada de aplicacao
Aula 5 camada de aplicacao
 
Curso de Node.js e MongoDB - 11
Curso de Node.js e MongoDB - 11Curso de Node.js e MongoDB - 11
Curso de Node.js e MongoDB - 11
 

Andere mochten auch

Modais de transporte
Modais de transporteModais de transporte
Modais de transporteMatheus Roger
 
Logística de transportes
Logística de transportesLogística de transportes
Logística de transportesSandro Souza
 
Modais de transporte logística
Modais de transporte logísticaModais de transporte logística
Modais de transporte logísticaMAYKON89
 

Andere mochten auch (6)

Modais de transporte
Modais de transporteModais de transporte
Modais de transporte
 
Logistica de Transportes - Slides
Logistica de Transportes - SlidesLogistica de Transportes - Slides
Logistica de Transportes - Slides
 
Desenv. psic. cap 1
Desenv. psic. cap 1Desenv. psic. cap 1
Desenv. psic. cap 1
 
Logística de transportes
Logística de transportesLogística de transportes
Logística de transportes
 
Modais de transporte logística
Modais de transporte logísticaModais de transporte logística
Modais de transporte logística
 
Gestão de transporte
Gestão de transporteGestão de transporte
Gestão de transporte
 

Ähnlich wie HTTP - Visão geral

Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishLucas Brasilino
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupWagner Roberto dos Santos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantesMarco Pinheiro
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)elliando dias
 
pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na interneta20061577
 
03 - Aplicações web com ASP.net v1.0
03 - Aplicações web com ASP.net v1.003 - Aplicações web com ASP.net v1.0
03 - Aplicações web com ASP.net v1.0César Augusto Pessôa
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptxssssssss23
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e RespostaThiago Rondon
 
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTPMetodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTPLeonel Morgado
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Helder da Rocha
 

Ähnlich wie HTTP - Visão geral (20)

Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e VarnishEscalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
Escalabilidade e performance da infraestrutura Plone/Zope com CacheFU e Varnish
 
De Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações MashupDe Web Services RESTful a Aplicações Mashup
De Web Services RESTful a Aplicações Mashup
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
Parte2c
Parte2cParte2c
Parte2c
 
Linguagem PHP para principiantes
Linguagem PHP para principiantesLinguagem PHP para principiantes
Linguagem PHP para principiantes
 
Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)Hyper Text Transfer Protocol (HTTP)
Hyper Text Transfer Protocol (HTTP)
 
Curso de Servlets
Curso de ServletsCurso de Servlets
Curso de Servlets
 
A Web é uma API
A Web é uma APIA Web é uma API
A Web é uma API
 
pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na internet
 
03 - Aplicações web com ASP.net v1.0
03 - Aplicações web com ASP.net v1.003 - Aplicações web com ASP.net v1.0
03 - Aplicações web com ASP.net v1.0
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
2016-redes-E.pptx
2016-redes-E.pptx2016-redes-E.pptx
2016-redes-E.pptx
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e Resposta
 
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTPMetodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP
Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
Ferramentas Web 2.0
Ferramentas Web 2.0Ferramentas Web 2.0
Ferramentas Web 2.0
 
Te servelts
Te serveltsTe servelts
Te servelts
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 

Mehr von Evandro Manara Miletto

Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...
Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...
Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...Evandro Manara Miletto
 
Estágio de Pesquisa Aplicada e Inovação no Canadá
Estágio de Pesquisa Aplicada e Inovação no CanadáEstágio de Pesquisa Aplicada e Inovação no Canadá
Estágio de Pesquisa Aplicada e Inovação no CanadáEvandro Manara Miletto
 
Brazilian-Canada - Fellowship Exchange Program Debriefing
Brazilian-Canada - Fellowship Exchange Program DebriefingBrazilian-Canada - Fellowship Exchange Program Debriefing
Brazilian-Canada - Fellowship Exchange Program DebriefingEvandro Manara Miletto
 
Présentation CloudIA - coopération internationale Brésil - Canadá
Présentation CloudIA - coopération internationale Brésil - CanadáPrésentation CloudIA - coopération internationale Brésil - Canadá
Présentation CloudIA - coopération internationale Brésil - CanadáEvandro Manara Miletto
 
WAITS - Water Quality Information System - SBIE 2013 / UNICAMP
WAITS - Water Quality Information System - SBIE 2013 / UNICAMPWAITS - Water Quality Information System - SBIE 2013 / UNICAMP
WAITS - Water Quality Information System - SBIE 2013 / UNICAMPEvandro Manara Miletto
 
Mobilidade Acadêmica - experiências e considerações.
Mobilidade Acadêmica - experiências e considerações.Mobilidade Acadêmica - experiências e considerações.
Mobilidade Acadêmica - experiências e considerações.Evandro Manara Miletto
 
historia dos computadores e sistemas numéricos
historia dos computadores e sistemas numéricoshistoria dos computadores e sistemas numéricos
historia dos computadores e sistemas numéricosEvandro Manara Miletto
 

Mehr von Evandro Manara Miletto (20)

Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...
Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...
Redes Sociais e Fabricação Digital na Construção de Objetos para Apoio a...
 
Estágio de Pesquisa Aplicada e Inovação no Canadá
Estágio de Pesquisa Aplicada e Inovação no CanadáEstágio de Pesquisa Aplicada e Inovação no Canadá
Estágio de Pesquisa Aplicada e Inovação no Canadá
 
Brazilian-Canada - Fellowship Exchange Program Debriefing
Brazilian-Canada - Fellowship Exchange Program DebriefingBrazilian-Canada - Fellowship Exchange Program Debriefing
Brazilian-Canada - Fellowship Exchange Program Debriefing
 
Présentation CloudIA - coopération internationale Brésil - Canadá
Présentation CloudIA - coopération internationale Brésil - CanadáPrésentation CloudIA - coopération internationale Brésil - Canadá
Présentation CloudIA - coopération internationale Brésil - Canadá
 
Noções de planejamento visual
Noções de planejamento visualNoções de planejamento visual
Noções de planejamento visual
 
WAITS - Water Quality Information System - SBIE 2013 / UNICAMP
WAITS - Water Quality Information System - SBIE 2013 / UNICAMPWAITS - Water Quality Information System - SBIE 2013 / UNICAMP
WAITS - Water Quality Information System - SBIE 2013 / UNICAMP
 
Mobilidade Acadêmica - experiências e considerações.
Mobilidade Acadêmica - experiências e considerações.Mobilidade Acadêmica - experiências e considerações.
Mobilidade Acadêmica - experiências e considerações.
 
Pure data - Introdução
Pure data - IntroduçãoPure data - Introdução
Pure data - Introdução
 
Equallizacao
EquallizacaoEquallizacao
Equallizacao
 
Compressao
CompressaoCompressao
Compressao
 
Logica Digital
Logica DigitalLogica Digital
Logica Digital
 
historia dos computadores e sistemas numéricos
historia dos computadores e sistemas numéricoshistoria dos computadores e sistemas numéricos
historia dos computadores e sistemas numéricos
 
Internacionalização do IFRS
Internacionalização do IFRSInternacionalização do IFRS
Internacionalização do IFRS
 
Navegando no @mbiente
Navegando no @mbienteNavegando no @mbiente
Navegando no @mbiente
 
Formulário HTML
Formulário HTMLFormulário HTML
Formulário HTML
 
Php aula1
Php aula1Php aula1
Php aula1
 
Cores na Web
Cores na WebCores na Web
Cores na Web
 
Java script1
Java script1Java script1
Java script1
 
Java script2
Java script2Java script2
Java script2
 
Tipografia na Web
Tipografia na WebTipografia na Web
Tipografia na Web
 

Kürzlich hochgeladen

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...DirceuNascimento5
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxMARIADEFATIMASILVADE
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxReinaldoMuller1
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 

Kürzlich hochgeladen (20)

O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 

HTTP - Visão geral

  • 1. Hypertext Transfer Protocol HTTP IFRS - Campus Porto Alegre Prof. Evandro Manara Miletto http://www.inf.poa.ifrs.edu.br/~evandro/
  • 2. O que é o HTTP Protocolo de Transferência de Hipertexto - é um protocolo de comunicação (na camada de Aplicação do modelo TCP/IP) utilizado para transferência de dados na Internet.
  • 3. Nível de Aplicação Comunicação entre cliente e servidor, com mesmas características Identifica o cliente que inicia a comunicação A A A A T T R R E E F F
  • 4. Acessando recursos Web <protocolo>://<servidor>/<caminho> Protocolo de Define o comunicação entre endereço URL cliente e servidor Cliente Servidor
  • 5. Características do HTTP Usa mecanismo de requisição-resposta (request/response) Servidor aguarda conexões na porta 80 Servidor aceita ou não conexões Localizador Universal de Recurso – URL Comunicação é encerrada ao final da conexão
  • 7. Formato de requisição HTTP Especifica método Request Line GET /index.html HTTP/1.0 de requisição Header Host: www.content-networking.com Lines Date: BBBBBBBBBBBB User-Agent: Mozilla/5.0 (en) (WINNT; U) Accept-Language: en-us Carriage Return/ Line Feed Especifica recurso via URI Message & metadados Content-length: Body (Message Payload)
  • 8. Métodos HTTP (1/4) GET Pedido de um recurso situado na URL especificada HEAD Idêntico ao GET entretanto o servidor enviará apenas o cabeçalho da resposta É utilizado para obter informações de um recurso sem transferir os dados (testa de link quebrado, data de modificação, etc.)
  • 9. Métodos HTTP (2/4) POST utilizado para solicitar que o servidor de origem aceite os dados que são incluídos na requisição projetado para permitir as seguintes funções: Postar uma mensagem para uma lista de e-mails, grupo de notícias, etc. Prover uma forma de enviar dados por meio de formulários
  • 10. Métodos HTTP (3/4) PUT Semelhante ao POST, PUT apenas atualiza um novo recurso no servidor enquanto o PUT envia dados para processamento DELETE elimina ou move um recurso para uma localização inacessível
  • 11. Métodos HTTP (4/4) TRACE O objetivo to TRACE é verificar o que o servidor ou proxy está recebendo do cliente (eco) Este método foi concebido com o objetivo de permitir a realização de diagnósticos e testes Exercício: Experimente descobrir a rota (nodos) para chegar a um servidor Web (use tracert no prompt)
  • 12. Exemplo Request/ Response
  • 13. Mensagem HTTP cliente request line (GET, POST, HEAD..) GET /somedir/page.html HTTP/1.0 Host: www.someScholl.edu User-agent: Mozilla/4.0 header lines Accept: text/html, image/gif,image/jpeg Accept-language:fr indica o final da (extra carriage return, line feed) mensagem
  • 14. Mensagem HTTP servidor status line (protocol status HTTP/1.0 200 OK code status phrase) Date: Thu, 06 Aug 1998 12:00:15 GMT header lines Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ...... Content-Length: 6821 Content-Type: text/html indica o final da data data data data data ... mensagem
  • 15. Principais Atributos de Requisição (request)
  • 16. Host Identifica um página (site) É representado por um endereço IPv4 ou um nome registrado Se o host for um nome registrado então deve ser considerado um identificador indireto O valor do host não pode ser nulo Se a porta não for fornecida, a 80 é assumida como a padrão para serviços WWW
  • 17. User-Agent Possui informação sobre o “agente” (cliente http) que originou a requisição HTTP Navegadores podem ser considerados user-agent (Firefox, Opera, Safari, etc.) Propósito: colher dados estatísticos, detecção de violação do protocolo e reconhecimento automático de clientes (adaptação ou limitações) É recomendado que um cliente acrescente o user-agent na requisição (não é um campo obrigatório) O campo pode conter comentários para identificar qualquer subproduto que faça parte do user-agent
  • 18. Accept Pode ser utilizado por clientes para especificar os tipos de mídias que são aceitáveis Uma requisição pode ser limitada para um conjunto de tipos de mídia desejáveis (ex. requisição de apenas imagens) O asterisco (*) é usado para agrupar tipos de mídias O "*/*" indica todos os tipos de mídias enquanto "type/*" indica todas as mídias de um determinado tipo Cada tipo de mídia pode ser seguido por um ou mais parâmetros, iniciando com "q" para indicar um fator de “qualidade” Um fator de qualidade (q) permite o usuário indicar o grau relativo de "qualidade" para um tipo de mídia. A escala vai de 0 até 1 (valor padrão)
  • 19. Accept (exemplo) Exemplo: Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c O exemplo acima deve ser interpretado: "text/html e text/x-c são os tipos de mídia preferidos. Caso não exista, envie-me text/x-dvi. Se ainda não existir, envie-me os arquivos em text/plain Assim, o valor “1” (ou maior) da qualidade deve ser interpretado como o formato preferido
  • 20. Accept-Language O campo Accept-Language pode ser utilizado por clientes HTTP para indicar o conjunto de linguagens naturais que são preferidos O atributo de "qualidade" q também pode ser utilizado para indicar os idiomas preferidos Exemplo: Accept-Language: pt-br, en-us;q=0.9, en;q=0.8
  • 21. Accept-Encoding Informa a codificação aceita na resposta.Accept-Encoding: gzip significa que o client aceita, como codificação da resposta, gzip;
  • 22. Keep-Alive e Connection Conexão HTTP persistente, usa uma conexão TCP única para enviar e receber múltiplas requisições/repostas HTTP Ocorre de forma oposta a abrir uma nova conexão para cada requisição/resposta simples.
  • 23. Keep-Alive e Connection http://en.wikipedia.org/wiki/File:HTTP_persistent_connection.svg
  • 24. Accept-Charset Utilizado para indicar o padrão dos caracteres de resposta aceitáveis. Ex: Accept-Charset: iso-8859-5, unicode-1-1;q=0.8 Informação complementar: Iso-8859-5: http://en.wikipedia.org/wiki/ISO/IEC_8859-5 Unicode: http://pt.wikipedia.org/wiki/Unicode
  • 25. Accept-Language Informa o idioma aceito na resposta. Accept-Language: pt-br, pt;q=0.8 significa que o cliente prefere português brasileiro como idioma da resposta, mas aceita português se não tiver em português brasileiro.
  • 26. Referer Permite que o cliente especifique a URI de um recurso (página, vídeo, imagem, etc.) que deve ser visualizado Este atributo também é geralmente utilizado pelos servidores para realizar cache de recursos mais acessados Também permite que os servidores redirecione recursos obsoletos para páginas em manutenção, etc.
  • 27. Cookie São dados trocados entre o cliente e o servidor Função principal: manter a persistência de sessões HTTP Existiram muitas críticas ao conceito devido ao problema de segurança Ex: segurança na utilização de computadores públicos
  • 28. Cookie (exemplo) Request Servidor Cliente Username: professor Password: 12345 Arquivo de seção Response Set Cookie: SESSION_ID = @#$%12wert @#$%12wert Tempo Pode ser utilizado para guardar uma informação Response do usuário Cookie: SESSION_ID = @#$%12wert Arquivo de seção Conteúdo (HTML) para o professor @#$%12wert
  • 29. Principais Códigos de Status HTTP
  • 30. 1xx - Informativos 100 (Continue) – Significa que o servidor recebeu uma parte inicial da requisição e está informando para o cliente que ele deve continuar enviando (por exemplo, no caso de um POST com muitos megas) 101 (Switching Protocols) – O servidor avisa para o cliente que irá modificar o protocolo de comunicação (por exemplo, uma nova versão de HTTP)
  • 31. 2xx - Sucesso 200 (OK) - Resposta entregue corretamente 201 (Created) – Requisição executada e originou um novo recurso 202 (Accepted) – Requisição aceita mas ainda não realizada 203 (Non-Authoritative Information) – A resposta da requisição foi originada por outras fontes de dados, Ex. cache do navegador 204 (No Content) - O servidor recebeu a requisição mas não há informação para devolver (página sem conteúdo) 205 (Reset Content) - O servidor indica ao navegador para suprimir o conteúdo dos campos de formulário
  • 32. 3xx - Redirecionamento 301 (Moved) – O recurso solicitado foi transferido para um novo endereço. Assim, o cliente pode guardar esta nova localização 302 (Found) – O recurso alvo reside numa localização diferente. Isto acontece num redirecionamento, assim, o cliente deve utilizar o link correto numa requisição futura. requisição Exemplo: GET /index.html HTTP/1.1 Host: www.wikipedia.org HTTP/1.1 302 Found resposta Location: http://www.wikipedia.org/index.php
  • 33. 3xx - Redirecionamento 303 (See Other) – Método correto de direcionar um cliente para um outro link. Exemplo: resposta HTTP/1.1 303 See Other Location: http://www.example.org
  • 34. 4xx - Erro de Cliente 400 (Bad Request) - A sintaxe do pedido está mal formulada 401 (Unauthorized) - O cliente não está autorizado a acessar um recurso. Deve refazer a requisição passando suas credenciais (ex: usuário e senha) 402 (Payment Required) - Pede para o cliente refazer a requisição passando dados para pagamento 403 (Forbidden) - O acesso ao recurso é proibido 404 (Not Found) - O servidor não encontrou o recurso solicitado
  • 35. 5xx - Erro de Servidor 500 (Internal Error) - O servidor encontrou uma condição inesperada (sistema mal implementado) 501 (Not Implemented) - O servidor não suporta o serviço pedido 502 (Bad Gateway) - O servidor está recebendo uma resposta inválida de um outro servidor (ex: servidor de stream de vídeo) 503 (Service Unavaiable) - O servidor não pode responder no momento 504 – GATEWAY TIMEOUT - A resposta do servidor foi muito longa esgotando o tempo
  • 36. Principais Atributos de Resposta (response)
  • 37. Content-Type e Content-Length Content-Type indica o tipo de conteúdo do corpo da resposta Exemplos: text/html, application/pdf, etc. Content-Length indica o tamanho do corpo da mensagem de resposta
  • 38. Content-Encoding e Content-Language Content-Encoding indica o tipo de codificação utilizada na resposta. Por exemplo, compress, deflate, gzip, etc. Content-Language indica o tipo de língua utilizada no corpo da mensagem. Por exemplo, pt-br, en-us, etc.
  • 39. Location O campo de resposta location é utilizado para identificar um novo recurso criado ou para redirecionar o cliente para uma localização (link) diferente Se o status da resposta for 201 (created) então o servidor está indicando um novo recurso Entretanto, o status 3xx indica que o servidor está indicando um novo link para o cliente fazer um redirecionamento
  • 40. Server O campo de resposta server contém informações sobre o software usado pelo servidor para manipular as requisições (servidor HTTP) Exemplos de servidores HTTP: Apache HTTP Server Internet Information Services (IIS)
  • 41. Expires e Date O campo de resposta expires indica explicitamente para o cliente quando ele deve realizar novamente uma requisição para o servidor. Enquanto isto o cliente pode carregar a página da cache, etc. Ex: Expires: Thu, 01 Dec 1994 16:00:00 GMT O campo de propósito geral date indica o dia e a hora que uma mensagem foi enviada Ex: Date: Tue, 15 Nov 1994 08:12:31 GMT
  • 42. Exercício prático Simular um browser realizando uma requisição HTTP a um servidor Web Utilizar TELNET na porta 80 do servidor Ex: Ex: telnet www.google.com.br 80 GET http://www.google.com.br HTTP/1.0 [enter] [enter] [enter]
  • 43. Referências RFCS (Request for Comments) HTTP 1.1 http://datatracker.ietf.org/wg/httpbis/ Tutoriais HTTP http://pt.kioskea.net/contents/internet/http.php3 Baseado no material do Prof Rodrigo Prestes Machado