SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Cabeçalhos do protocolo HTTP 2011-2012 Metodologias de Programação IV
Mensagem dopedido HTTP (Porto 80 de TCP) Cliente HTTP (por ex.,o navegador) Servidor HTTP(Apache, IIS, etc.) Mensagem daresposta HTTP
Mensagens do HTTP Pedido Linha de pedido CRLF Linhas de cabeçalhos CRLF CRLF Corpo Resposta Linha de estado CRLF Linhas de cabeçalhos CRLF CRLF Corpo
Pedido HTTP GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt ...
Resposta HTTP HTTP/1.1 200 OK Content-Type: text/html Content-Length: 9934 ...
Lista total de cabeçalhos: Vamos ver alguns exemplos HypertextTransferProtocol -- HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.html
GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
Quem define (mete) os cabeçalhos dos pedidos? Quem define (mete) os cabeçalhos das respostas de conteúdo estático? Quem define (mete) os cabeçalhos das respostas de conteúdo dinâmico?
function ajax(url, vars, callbackFunction) {    var request = new XMLHttpRequest();    request.open("POST", url, true);    request.setRequestHeader(               "Content-Type",               "application/x-www-form-urlencoded");    request.onreadystatechange = function() {       if (request.readyState == 4 &&           request.status == 200) {              if (request.responseText) {                 callbackFunction(request.responseText);              }           }    };    request.send(vars); } No navegador (pedido)
function ajax(url, vars, callbackFunction) {    var request = new XMLHttpRequest();    request.open("POST", url, true);    request.setRequestHeader(               "Content-Type",               "application/x-www-form-urlencoded");    request.onreadystatechange = function() {       if (request.readyState == 4 &&           request.status == 200) {              if (request.responseText) {                 callbackFunction(request.responseText);              }           }    };    request.send(vars); } No browser (pedido)
<% Response.AddHeader "CustomHeader", "CustomValue" %> <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> </BODY> </HTML> No servidor (resposta)
<% Response.AddHeader "CustomHeader", "CustomValue" %> <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> </BODY> </HTML> No servidor (resposta)
<HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML> Isto pode funcionar?
Navegador pede a página Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor vai enviando o corpo da página Servidor executa o código e cria mais corpo
Quando chega ao código, já se acabaram os cabeçalhos e já começou a ser enviado o corpo da resposta... <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML>
Mas há servidores que implementam buffering da resposta: Browser pede a página Servidor vai criando a resposta em memória intermédia (buffer) Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor executa o código e cria mais corpo
Mas há servidores que implementam buffering da resposta: Browser pede a página Servidor vai criando a resposta em memória intermédia (buffer) até chegar ao fim do corpo Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor executa o código e cria mais corpo Servidor envia o conteúdo do buffer <% Response.Flush() %>
Com buffering activo no servidor (default no IIS 5.0 e mais recentes), isto funciona <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML>
Leituras associadas Web ApplicationArchitecture, Second Edition Cap. 3: “Birth of theWeb: HTTP”, págs. 44 a 60. HypertextTransferProtocol -- HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.html
Tipos mime no protocolo http Próxima secção

Weitere ähnliche Inhalte

Was ist angesagt?

Como criar um domínio e hospedagem gratuitos
Como criar um domínio e hospedagem gratuitosComo criar um domínio e hospedagem gratuitos
Como criar um domínio e hospedagem gratuitos
marianethais
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
Biel2013a
 

Was ist angesagt? (20)

HTTP - Visão geral
HTTP - Visão geralHTTP - Visão geral
HTTP - Visão geral
 
Como criar um domínio e hospedagem gratuitos
Como criar um domínio e hospedagem gratuitosComo criar um domínio e hospedagem gratuitos
Como criar um domínio e hospedagem gratuitos
 
Parte2c
Parte2cParte2c
Parte2c
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
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
 
Http conceitos
Http   conceitosHttp   conceitos
Http conceitos
 
Como o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vidaComo o HTTP/2 vai mudar sua vida
Como o HTTP/2 vai mudar sua vida
 
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
 
Redes 05 - aplicação
Redes   05 - aplicaçãoRedes   05 - aplicação
Redes 05 - aplicação
 
REST-fuuuu
REST-fuuuuREST-fuuuu
REST-fuuuu
 
Tunneling
TunnelingTunneling
Tunneling
 
Projeto Terminais Leves Linux
Projeto Terminais Leves LinuxProjeto Terminais Leves Linux
Projeto Terminais Leves Linux
 
Cookies
CookiesCookies
Cookies
 
Python MongoDB no MongoSP
Python MongoDB no MongoSPPython MongoDB no MongoSP
Python MongoDB no MongoSP
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
Introdução à Internet, Http e HTML
Introdução à Internet, Http e HTMLIntrodução à Internet, Http e HTML
Introdução à Internet, Http e HTML
 
Aula03 - protocolo http
Aula03 -  protocolo httpAula03 -  protocolo http
Aula03 - protocolo http
 

Andere mochten auch

Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
Leonel Morgado
 
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
Leonel Morgado
 

Andere mochten auch (6)

Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
Metodologias de Programação IV - Aula 2, Secção 1 - Conceito de aplicação cli...
 
Metodologias de Programação IV - Aula 4 (12/13), secção 1 - Funcionamento dos...
Metodologias de Programação IV - Aula 4 (12/13), secção 1 - Funcionamento dos...Metodologias de Programação IV - Aula 4 (12/13), secção 1 - Funcionamento dos...
Metodologias de Programação IV - Aula 4 (12/13), secção 1 - Funcionamento dos...
 
Metodologias de Programação IV - Aula 4, Secção 1 - Suporte para cache no pro...
Metodologias de Programação IV - Aula 4, Secção 1 - Suporte para cache no pro...Metodologias de Programação IV - Aula 4, Secção 1 - Suporte para cache no pro...
Metodologias de Programação IV - Aula 4, Secção 1 - Suporte para cache no pro...
 
Metodologias de Programação IV - Aula 4, Secção 2 - Suporte para sessões no p...
Metodologias de Programação IV - Aula 4, Secção 2 - Suporte para sessões no p...Metodologias de Programação IV - Aula 4, Secção 2 - Suporte para sessões no p...
Metodologias de Programação IV - Aula 4, Secção 2 - Suporte para sessões no p...
 
Metodologias de Programação IV - Aula 4 (12/13), secção 2 - Resolução de ende...
Metodologias de Programação IV - Aula 4 (12/13), secção 2 - Resolução de ende...Metodologias de Programação IV - Aula 4 (12/13), secção 2 - Resolução de ende...
Metodologias de Programação IV - Aula 4 (12/13), secção 2 - Resolução de ende...
 
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo...
 

Ähnlich wie Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP

Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
Henrique Lima
 
pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na internet
a20061577
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
elliando dias
 

Ähnlich wie Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP (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
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
02 - Fundamentos de Servlets
02 - Fundamentos de Servlets02 - Fundamentos de Servlets
02 - Fundamentos de Servlets
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
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
 
Apache htaccess
Apache htaccessApache htaccess
Apache htaccess
 
pesquisas na internet
pesquisas na internetpesquisas na internet
pesquisas na internet
 
Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Tecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEBTecnologia em Redes - Servidor WEB
Tecnologia em Redes - Servidor WEB
 
Rest workshop
Rest workshopRest workshop
Rest workshop
 
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
 
Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)Apostila Java Web (Servlets e JSPs)
Apostila Java Web (Servlets e JSPs)
 
Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)Curso de WebServlets (Java EE 7)
Curso de WebServlets (Java EE 7)
 
A87c5f081429cf
A87c5f081429cfA87c5f081429cf
A87c5f081429cf
 
A Web é uma API
A Web é uma APIA Web é uma API
A Web é uma API
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website Cacheavel
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURL
 
o que é ajax
o que é ajaxo que é ajax
o que é ajax
 

Mehr von Leonel Morgado

Empowering humans in immersive learning environments
Empowering humans in immersive learning environmentsEmpowering humans in immersive learning environments
Empowering humans in immersive learning environments
Leonel Morgado
 

Mehr von Leonel Morgado (20)

O Metaverso na Educação - Flash course SEaD-SPCE
O Metaverso na Educação - Flash course SEaD-SPCEO Metaverso na Educação - Flash course SEaD-SPCE
O Metaverso na Educação - Flash course SEaD-SPCE
 
Aprendizagem Imersiva - PUC-PR - 2024-02-06
Aprendizagem Imersiva - PUC-PR - 2024-02-06Aprendizagem Imersiva - PUC-PR - 2024-02-06
Aprendizagem Imersiva - PUC-PR - 2024-02-06
 
Metaverso no Ensino Online - potencialidades e desafios
Metaverso no Ensino Online - potencialidades e desafiosMetaverso no Ensino Online - potencialidades e desafios
Metaverso no Ensino Online - potencialidades e desafios
 
Realidade Virtual e Aumentada na Educação e Formação
Realidade Virtual e Aumentada na Educação e FormaçãoRealidade Virtual e Aumentada na Educação e Formação
Realidade Virtual e Aumentada na Educação e Formação
 
Immersive Learning Environments
Immersive Learning EnvironmentsImmersive Learning Environments
Immersive Learning Environments
 
Aprendizagem imersiva
Aprendizagem imersivaAprendizagem imersiva
Aprendizagem imersiva
 
Abordagem e-Sim na Universidade Aberta: presença, narrativa e agência para am...
Abordagem e-Sim na Universidade Aberta: presença, narrativa e agência para am...Abordagem e-Sim na Universidade Aberta: presença, narrativa e agência para am...
Abordagem e-Sim na Universidade Aberta: presença, narrativa e agência para am...
 
Immersive Learning Environments
Immersive Learning EnvironmentsImmersive Learning Environments
Immersive Learning Environments
 
Growing the Knowledge Tree: Core concepts, methods, outcomes, and tools
Growing the Knowledge Tree: Core concepts, methods, outcomes, and toolsGrowing the Knowledge Tree: Core concepts, methods, outcomes, and tools
Growing the Knowledge Tree: Core concepts, methods, outcomes, and tools
 
e-Sim approach at Universidade Aberta: presence, narrative and agency for imm...
e-Sim approach at Universidade Aberta: presence, narrative and agency for imm...e-Sim approach at Universidade Aberta: presence, narrative and agency for imm...
e-Sim approach at Universidade Aberta: presence, narrative and agency for imm...
 
Ambientes de Aprendizagem Imersivos
Ambientes de Aprendizagem ImersivosAmbientes de Aprendizagem Imersivos
Ambientes de Aprendizagem Imersivos
 
The Metaverse - what it was, is, and can be
The Metaverse - what it was, is, and can beThe Metaverse - what it was, is, and can be
The Metaverse - what it was, is, and can be
 
Recommendation Tool presentation - AR/VR systems for education and training
Recommendation Tool presentation - AR/VR systems for education and trainingRecommendation Tool presentation - AR/VR systems for education and training
Recommendation Tool presentation - AR/VR systems for education and training
 
Empowering humans in immersive learning environments
Empowering humans in immersive learning environmentsEmpowering humans in immersive learning environments
Empowering humans in immersive learning environments
 
Recommendation Tool for Use of Immersive Learning Environments
Recommendation Tool for Use of Immersive Learning EnvironmentsRecommendation Tool for Use of Immersive Learning Environments
Recommendation Tool for Use of Immersive Learning Environments
 
Aprender e comunicar complexidade online, com jogos e ambientes imersivos
Aprender e comunicar complexidade online, com jogos e ambientes imersivosAprender e comunicar complexidade online, com jogos e ambientes imersivos
Aprender e comunicar complexidade online, com jogos e ambientes imersivos
 
Metaverso - O que foi, é e pode ser
Metaverso - O que foi, é e pode serMetaverso - O que foi, é e pode ser
Metaverso - O que foi, é e pode ser
 
Educational uses of immersive learning environments
Educational uses of immersive learning environmentsEducational uses of immersive learning environments
Educational uses of immersive learning environments
 
Serious Games & Immersive Technologies for Learning: possibilities & perspect...
Serious Games & Immersive Technologies for Learning: possibilities & perspect...Serious Games & Immersive Technologies for Learning: possibilities & perspect...
Serious Games & Immersive Technologies for Learning: possibilities & perspect...
 
Programação de computadores no pré-escolar: uma retrospetiva pessoal
Programação de computadores no pré-escolar: uma retrospetiva pessoalProgramação de computadores no pré-escolar: uma retrospetiva pessoal
Programação de computadores no pré-escolar: uma retrospetiva pessoal
 

Kürzlich hochgeladen

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
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
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Kürzlich hochgeladen (20)

Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
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
 
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
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
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
 
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
 
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...
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
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
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
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 - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 

Metodologias de Programação IV - Aula 3, Secção 1 - Cabeçalhos do protocolo HTTP

  • 1. Cabeçalhos do protocolo HTTP 2011-2012 Metodologias de Programação IV
  • 2. Mensagem dopedido HTTP (Porto 80 de TCP) Cliente HTTP (por ex.,o navegador) Servidor HTTP(Apache, IIS, etc.) Mensagem daresposta HTTP
  • 3. Mensagens do HTTP Pedido Linha de pedido CRLF Linhas de cabeçalhos CRLF CRLF Corpo Resposta Linha de estado CRLF Linhas de cabeçalhos CRLF CRLF Corpo
  • 4. Pedido HTTP GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt ...
  • 5. Resposta HTTP HTTP/1.1 200 OK Content-Type: text/html Content-Length: 9934 ...
  • 6.
  • 7.
  • 8.
  • 9. Lista total de cabeçalhos: Vamos ver alguns exemplos HypertextTransferProtocol -- HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.html
  • 10. GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
  • 11. GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
  • 12. GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
  • 13. GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
  • 14. GET /tc/home.html HTTP/1.1 Host: www.tribunalconstitucional.pt Date: Tue, 30 Sep 2008 13:45:29 GMT User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Referer: http://home.utad.pt/~leonelm/teste.htm If-Modified-Since: Tue, 30 Sep 2008 13:40:29 GMT
  • 15. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 16. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 17. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 18. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 19. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 20. HTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Tue, 30 Sep 2008 13:45:38 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 06 Jan 1999 18:56:06 GMT Content-Length: 9934
  • 21. Quem define (mete) os cabeçalhos dos pedidos? Quem define (mete) os cabeçalhos das respostas de conteúdo estático? Quem define (mete) os cabeçalhos das respostas de conteúdo dinâmico?
  • 22. function ajax(url, vars, callbackFunction) { var request = new XMLHttpRequest(); request.open("POST", url, true); request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded"); request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { if (request.responseText) { callbackFunction(request.responseText); } } }; request.send(vars); } No navegador (pedido)
  • 23. function ajax(url, vars, callbackFunction) { var request = new XMLHttpRequest(); request.open("POST", url, true); request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded"); request.onreadystatechange = function() { if (request.readyState == 4 && request.status == 200) { if (request.responseText) { callbackFunction(request.responseText); } } }; request.send(vars); } No browser (pedido)
  • 24. <% Response.AddHeader "CustomHeader", "CustomValue" %> <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> </BODY> </HTML> No servidor (resposta)
  • 25. <% Response.AddHeader "CustomHeader", "CustomValue" %> <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> </BODY> </HTML> No servidor (resposta)
  • 26. <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML> Isto pode funcionar?
  • 27. Navegador pede a página Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor vai enviando o corpo da página Servidor executa o código e cria mais corpo
  • 28. Quando chega ao código, já se acabaram os cabeçalhos e já começou a ser enviado o corpo da resposta... <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML>
  • 29. Mas há servidores que implementam buffering da resposta: Browser pede a página Servidor vai criando a resposta em memória intermédia (buffer) Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor executa o código e cria mais corpo
  • 30. Mas há servidores que implementam buffering da resposta: Browser pede a página Servidor vai criando a resposta em memória intermédia (buffer) até chegar ao fim do corpo Servidor cria a resposta, excepto corpo Servidor vai lendo o ficheiro da página Servidor copia o conteúdo do ficheiro para o corpo <% %> ? Não Sim Servidor executa o código e cria mais corpo Servidor envia o conteúdo do buffer <% Response.Flush() %>
  • 31. Com buffering activo no servidor (default no IIS 5.0 e mais recentes), isto funciona <HTML> <TITLE>Teste</TITLE> <BODY><p>Esta p&aacute;gina tem um cabe&ccedil;alho HTTP personalizado</p> <% Response.AddHeader "CustomHeader", "CustomValue" %> </BODY> </HTML>
  • 32. Leituras associadas Web ApplicationArchitecture, Second Edition Cap. 3: “Birth of theWeb: HTTP”, págs. 44 a 60. HypertextTransferProtocol -- HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616.html
  • 33. Tipos mime no protocolo http Próxima secção