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

Post on 22-Apr-2015

112 views 3 download

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

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)

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

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

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

Visão GeralCliente

user agent

Servidor

http response

http request

http responsehttp request

Modelo Cliente Servidor

Visão GeralUsa TCP

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

sobre requisições passadas de clientes

ConexõesNão-persistentePersistente

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

Não persistente

Abre conexão para cada objeto

RTT

RTT

Abre conexão

OBJETOTransmissão do objeto

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

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

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

anterior tiver sido recebida.1 RTT para cada objeto

Sem pipeline

Vários objetos na mesma conexão

RTT

RTT

OBJETO

OBJETO

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

Com pipeline

Vários objetos solicitados ao mesmo tempo

RTT OBJETOS

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

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

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

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

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

Formato das MensagensExemplo de request mensage:

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

Formato das Mensagens

Version code sentence

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

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>

MétodosMétodos Seguros:

Get, HeadMétodos idempotentes:

Put, Delete, Options, Trace, Get e Head

Post e Connect não respeitam essas propriedades

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

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

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

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

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

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

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

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

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

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

HTTPS

SSL HANDSHAKE

Referencias Redes De Computadores E A Internet - James

F Kurose

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

www.UFRJ.br

?