Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva...

38
Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães Alves (erma) Marcelo Costa Melo de Andrade

Transcript of Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva...

Page 1: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Hypertext Transfer Protocol

Equipe:Alan José de Moura Silva Filho (ajmsf)Cyrus Dias da Silva (cds)Dayse Danielle Soares da Rocha(ddsr)Elton Renan Magalhães Alves (erma)Marcelo Costa Melo de Andrade (mcma)

Page 2: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

RoteiroVisão GeralConexõesVersõesFormato de mensagensMétodosCódigos de statusHTTPS

Page 3: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Visão GeralProtocolo da camada de aplicação

Tipos mensagensSintaxe das mensagensSemântica das mensagens Regras de quando e como os processos enviam

as mensagens

Page 4: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Visão GeralWeb e http

Jargões Páginas web consistem em objetos Um objeto é qualquer coisa que tenha uma

URL( Universal Resourse Locator)

www.folha.uol.com.br/folha/dinheiro/ult91u448619.shtml

host caminho

Page 5: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Visão GeralCliente

user agent

Servidor

http response

http request

http responsehttp request

Modelo Cliente Servidor

Page 6: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Visão GeralUsa TCP

Porta 80Stateless – o servidor não mantém estado

sobre requisições passadas de clientes

Page 7: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

ConexõesNão-persistentePersistente

Page 8: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Não-persistenteNo máximo um objeto é enviado pela conexão

TCP

HTTP/1.0 usa HTTP não-persistente como padrão

2 RTT – round trip time - para cada objeto

Abre sempre uma nova conexão para cada objeto

Page 9: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Não persistente

Abre conexão para cada objeto

RTT

RTT

Abre conexão

OBJETOTransmissão do objeto

Page 10: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

PersistenteVarios objetos podem ser enviados em uma

mesma conexão TCP entre o cliente e o servidor.

HTTP 1.1 usa como padrão

Implementa pipeline

A conexão fecha quando sinalizada no header “Connection ” das mensagens HTTP

Page 11: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

VantagensAbre menos conexões TCP.

É possível implementar um pipeline sobre requisições e respostas

O congestionamento da rede é reduzido com a redução do número de pacotes para abrir as conexões

Latencia em requisições seguintes diminui, já que não será necessário abrir novas conexões

Page 12: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Sem pipelineSó envia próxima requisição quando a

anterior tiver sido recebida.1 RTT para cada objeto

Page 13: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Sem pipeline

Vários objetos na mesma conexão

RTT

RTT

OBJETO

OBJETO

Page 14: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Com pipelinePadrão do HTTP 1.1Cliente envia requisições sem esperar pela

resposta de cada requisiçãoGasta um pouco mais que 1RTT para todos os

objetosNão deve enviar em pipeline métodos que

não são idempotentes. Deve esperar pela resposta

Page 15: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Com pipeline

Vários objetos solicitados ao mesmo tempo

RTT OBJETOS

Page 16: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

VersõesHTTP 0.9 – só o GETHTTP 1.0 – RFC 1945HTTP 1.1 – RFC 2616

Page 17: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

HTTP 1.01996 – RFC 1945Usa conexão não-persistente Possibilidade de transmissão de mensagens

do tipo MIME44 (Multipurpose Internet Mail Extension)

Implementa os métodos de requisição POST e HEAD

Ainda é um protocolo bastante utilizado

Page 18: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

HTTP 1.11999 – RFC 2616Habilita conexão persistente com ou sem

pipelineImplementa os métodos GET, POST, HEAD,

PUT, DELETE, TRACE, OPTIONS e CONNECT

Servidores Proxys, entre outras características

Page 19: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

PerguntaHá incompatibilidade entre o HTTP1.0 e o HTTP1.1?

Page 20: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Formato das Mensagens•Mensagens do HTTP 1.1•Especificadas em ASCII•Formato geral de uma request mensage

Page 21: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Formato das MensagensExemplo de request mensage:

GET /~if738 HTTP 1.1Host: www.cin.ufpe.br User-agent: Mozilla/4.0Connection: closeAccept-language: pt-br

Page 22: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Formato das Mensagens

Version code sentence

•Mensagens do HTTP 1.1•Formato geral de uma reponse mensage

Page 23: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Formato das MensagensExemplo de response mensage:

HTTP/1.1 301 Moved PermanentlyDate: Thu, 23 Sep 2008 23:27:20 GMTServer: ApacheLocation: http://www.cin.ufpe.br/~if738/Content-Length: 303Connection: closeContent-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://www.cin.ufpe.br/~if738/">here</a>.</p> <hr> <address>Apache Server at www.cin.ufpe.br Port 80</address></body></html>

Page 24: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

MétodosMétodos Seguros:

Get, HeadMétodos idempotentes:

Put, Delete, Options, Trace, Get e Head

Post e Connect não respeitam essas propriedades

Page 25: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

MétodosGET

Qualquer requisição de dados especificada por uma URL

Sempre retorna entidadeconditional GETpartial GET

HEADIdêntico ao GET, porém sem corpo. Pode ser

usado para validar hyperlink. Retorna metadados

Page 26: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

MétodosPOST

Enviar dados a serem processados no servidor.

PUTEnvia dados que serão armazenados no servidor. Caso a operação não seja realizada o servidor

não pode deixar de retorno uma mensagem da causa

HTTP1.1 não define como esse método afeta o estado do servido

Page 27: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

MétodosDELETE

Deleta dados no servidorAs mensagem de resposta podem não ser o que

parece.TRACE

Ecoa o caminho feito pela requisiçãoOPTIONS

Retorna informação sobre as opções de conexão entre as partes da conexão

CONNECTConverte a conexão para TCP/Tunnel transparente.

Facilita o uso do criptografia SSL

Page 28: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Diferença entre POST e PUTA principal diferença entre o POST e o

PUT está no significado do URI - Identificador Uniforme de Recursos - da requisição.

POST – identifica um recurso que irá manipular o objeto enviado

PUT – identifica o próprio objeto enviado

Page 29: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Códigos de Resposta

Ao responder uma requisição do cliente, o servidor envia um código de resposta

Constituído por numeros

Segue um padrão

Page 30: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Padrão de resposta1XX – informativo2XX – sucesso3XX – redirecionamento4XX – erros no cliente5XX – erros no servidor

Page 31: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Exemplos200 OK

A resposta segue com o objeto requisitado

302 FoundCliente pega o campo “Location” do header

que informa a URI para o qual o recurso foi direcionado

301 Moved PermanentlyRedirecionamento permanente de URI

Page 32: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Exemplos304 Not Modified

Para uso de caching. Informa que não teve alteração desde a ultima requisição

401 Unauthourizedé possível acessar o recurso apenas por meio de

autenticação

403 ForbiddenNão é possível acessar o recurso, mesmo usando

autenticação

Page 33: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Exemplos404 Not Found

O recurso está temporariamente indisponível ou realmente não exista

500 Internal Server ErrorAlgo inesperado aconteceu no servidor (???)

503 Service UnavailableTemporariamente indisponível. Manutenção ou

sobrecarga

Page 34: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

HTTPSImplementação de HTTP sobre uma camada

SSLUsado no comércio online/operações

bancárias e clientes de emailPermite que os dados sejam transmitidos por

uma conexão criptografadaVerifica autenticidade usando certificados

digitais

Page 35: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

HTTPS

Page 36: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

SSL HANDSHAKE

Page 37: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

Referencias Redes De Computadores E A Internet - James

F Kurose

http://www.w3.org/Protocols/

www.UFRJ.br

Page 38: Hypertext Transfer Protocol Equipe: Alan José de Moura Silva Filho (ajmsf) Cyrus Dias da Silva (cds) Dayse Danielle Soares da Rocha(ddsr) Elton Renan Magalhães.

?