HTTP
description
Transcript of HTTP
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
?