SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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...
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
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
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 

Último (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.
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
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
 
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
 
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
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
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
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
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
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 

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