30
Terminologia do protocolo HTTP 2011-2012 Metodologias de Programação IV

Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Embed Size (px)

Citation preview

Page 1: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Terminologia do protocolo HTTP

2011-2012

Metodologias de Programação IV

Page 2: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Page 3: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Cliente HTTP(por ex.,

o navegador)

Servidor HTTP(Apache, IIS,

etc.)

Mensagem dopedido HTTP

(Porto 80 de TCP)

Mensagem daresposta HTTP

Page 4: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Cliente HTTP(por ex.,

o navegador)

Servidor HTTP(Apache, IIS,

etc.)

Mensagem dopedido HTTP

Mensagem daresposta HTTP

Protocolo sem estado (“stateless”)

Page 5: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Cliente HTTP(por ex., o

navegador)

Servidor HTTP(IIS, Apache,

etc.)

Pedido

Resposta

Proxy

ProxyPedido

Resposta

RespostaPedido

RespostaPedido

Mais proxies e c.ª

Page 6: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Pedidos e

Respostassão

Mensagensdo protocolo HTTP

Page 7: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Mensagens do HTTP

PedidoLinha de pedido CRLFLinhas de cabeçalhos CRLFCRLFCorpo

RespostaLinha de estado CRLFLinhas de cabeçalhos CRLFCRLFCorpo

Page 8: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Mensagens do HTTP

PedidoLinha de pedido CRLFLinhas de cabeçalhos CRLFCRLFCorpo

RespostaLinha de estado CRLFLinhas de cabeçalhos CRLFCRLFCorpo

Linha de pedido:Método URI-do-pedido Versão-do-HTTP

Page 9: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Mensagens do HTTP

PedidoLinha de pedido CRLFLinhas de cabeçalhos CRLFCRLFCorpo

RespostaLinha de estado CRLFLinhas de cabeçalhos CRLFCRLFCorpo

Linha de estado:Versão-do-HTTP Código-de-estado Motivo

Page 10: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Pedido HTTP

GET /tc/home.html HTTP/1.1Host: www.tribunalconstitucional.pt

Page 11: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Pedido HTTP

GET /tc/home.html HTTP/1.1Host: www.tribunalconstitucional.pt

Linha de pedido

Page 12: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Pedido HTTP

GET /tc/home.html HTTP/1.1Host: www.tribunalconstitucional.pt

Linha de cabeçalho

Page 13: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Resposta HTTP

HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 9934...<HTML>...

Page 14: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/home.html

Resposta HTTP

HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 9934...<HTML>...

Linha de estado

Linhas de cabeçalhos

Corpo

Page 15: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

http://www.tribunalconstitucional.pt/tc/conteudo/files/pagina/mouraramos.jpg

Resposta HTTP

HTTP/1.1 200 OKContent-Type: image/jpegContent-Length: 26610...ÿØÿà JFIF ð ð ÿÛ C

Page 16: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Métodos dos pedidos• HTTP 0.9– GET

• HTTP 1.0– HEAD– POST

• HTTP 1.1– PUT– DELETE– OPTIONS– TRACE– CONNECT

Page 17: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Métodos dos pedidos

Pedir um recurso (página Web, imagem, etc.)

• HTTP 0.9– GET

• HTTP 1.0– HEAD– POST

• HTTP 1.1– PUT– DELETE– OPTIONS– TRACE– CONNECT

Page 18: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Métodos dos pedidos

Pedir para enviar informações no corpo do pedido (para submeter formulários, por

exemplo)

• HTTP 0.9– GET

• HTTP 1.0– HEAD– POST

• HTTP 1.1– PUT– DELETE– OPTIONS– TRACE– CONNECT

Page 19: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Métodos dos pedidos• HTTP 0.9– GET

• HTTP 1.0– HEAD– POST

• HTTP 1.1– PUT– DELETE– OPTIONS– TRACE– CONNECT

Pedir só os cabeçalhos de um recurso (headers),

não o corpo.Para comparar versões, por ex.

Page 20: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Métodos dos pedidos• HTTP 0.9– GET

• HTTP 1.0– HEAD– POST

• HTTP 1.1– PUT– DELETE– OPTIONS– TRACE– CONNECT

Pedir para guardar um recurso no

servidor (upload).

Page 21: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Formulário

Page 22: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

<formname="Pesquisa“method="post“action="contactos/temp.asp“><input name="txtPesquisa" type="text“ alt="Procura alguém?" size="13“

maxlength="255"> <input name="Pesquisar" type="image“ id="Pesquisar" title="Pesquisar“ src="/img/pt/tmpl/lupa.gif” alt="Pesquisar" width="26" height="21" border="0"> </form>

Page 23: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

<formname="Pesquisa“method="post“action="contactos/temp.asp“><input name="txtPesquisa" type="text“ alt="Procura alguém?" size="13“

maxlength="255"> <input name="Pesquisar" type="image“ id="Pesquisar" title="Pesquisar“ src="/img/pt/tmpl/lupa.gif” alt="Pesquisar" width="26" height="21" border="0"> </form>

Page 24: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Qual a diferença entre usar “POST” ou “GET” neste formulário?

Leonel

Page 25: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

<formname="Pesquisa“method=“get“action="contactos/temp.asp“><input name="txtPesquisa" type="text“ alt="Procura alguém?" size="13“

maxlength="255"> <input name="Pesquisar" type="image“ id="Pesquisar" title="Pesquisar“ src="/img/pt/tmpl/lupa.gif” alt="Pesquisar" width="26" height="21" border="0"> </form>

Page 26: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Pedido HTTP

GET /pt/contactos/temp.asp?txtPesquisa=Leonel HTTP/1.1Host: www.utad.pt

Page 27: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

<formname="Pesquisa“method="post“action="contactos/temp.asp“><input name="txtPesquisa" type="text“ alt="Procura alguém?" size="13“

maxlength="255"> <input name="Pesquisar" type="image“ id="Pesquisar" title="Pesquisar“ src="/img/pt/tmpl/lupa.gif” alt="Pesquisar" width="26" height="21" border="0"> </form>

Page 28: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Pedido HTTP

POST /pt/contactos/temp.asp/ HTTP/1.1Host: www.utad.pt

txtPesquisa=Leonel

Page 29: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

Leituras associadas

Web Application Architecture, Second EditionCap. 3: “Birth of theWeb: HTTP”, págs. 29 a 41.

Hypertext Transfer Protocol -- HTTP/1.1http://www.w3.org/Protocols/rfc2616/rfc2616.html

Page 30: Metodologias de Programação IV - Aula 2, Secção 3 - Terminologia do protocolo HTTP

ELEMENTOS DO HTTP(CÓDIGOS DE ESTADO, CABEÇALHOS E TIPOS MIME)

Próxima aula