380 likes | 503 Views
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). Roteiro. Visão Geral Conexões Versões Formato de mensagens Métodos
E N D
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)
Roteiro • Visão Geral • Conexões • Versões • Formato de mensagens • Métodos • Códigos de status • HTTPS
Visão Geral • Protocolo da camada de aplicação • Tipos mensagens • Sintaxe das mensagens • Semântica das mensagens • Regras de quando e como os processos enviam as mensagens
Visão Geral • Web 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 Geral Modelo Cliente Servidor Cliente http request Servidor http response http request http response user agent
Visão Geral • Usa TCP • Porta 80 • Stateless – o servidor não mantém estado sobre requisições passadas de clientes
Conexões • Não-persistente • Persistente
Não-persistente • No 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 RTT Abre conexão RTT Transmissão do objeto OBJETO Abre conexão para cada objeto
Persistente • Varios 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
Vantagens • Abremenosconexõ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 pipeline • Só envia próxima requisição quando a anterior tiver sido recebida. • 1 RTT para cada objeto
Sem pipeline RTT OBJETO RTT OBJETO Vários objetos na mesma conexão
Com pipeline • Padrão do HTTP 1.1 • Cliente envia requisições sem esperar pela resposta de cada requisição • Gasta um pouco mais que 1RTT para todos os objetos • Não deve enviar em pipeline métodos que não são idempotentes. Deve esperar pela resposta
Com pipeline RTT OBJETOS Vários objetos solicitados ao mesmo tempo
Versões • HTTP 0.9 – só o GET • HTTP 1.0 – RFC 1945 • HTTP 1.1 – RFC 2616
HTTP 1.0 • 1996 – RFC 1945 • Usa 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.1 • 1999 – RFC 2616 • Habilita conexão persistente com ou sem pipeline • Implementa os métodos GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS e CONNECT • Servidores Proxys, entre outras características
Pergunta Há 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 Mensagens • Exemplo de request mensage: GET /~if738 HTTP 1.1 Host: www.cin.ufpe.br User-agent: Mozilla/4.0 Connection: close Accept-language: pt-br
Formato das Mensagens • Mensagens do HTTP 1.1 • Formato geral de uma reponse mensage Version code sentence
Formato das Mensagens • Exemplo de response mensage: HTTP/1.1 301 Moved Permanently Date: Thu, 23 Sep 2008 23:27:20 GMT Server: Apache Location: http://www.cin.ufpe.br/~if738/ Content-Length: 303 Connection: close Content-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 Ser ver at www.cin.ufpe.br Port 80</address> </body></html>
Métodos • Métodos Seguros: • Get, Head • Métodos idempotentes: • Put, Delete, Options, Trace, Get e Head • Post e Connect não respeitam essas propriedades
Métodos • GET • Qualquer requisição de dados especificada por uma URL • Sempre retorna entidade • conditional GET • partial GET • HEAD • Idêntico ao GET, porém sem corpo. Pode ser usado para validar hyperlink. Retorna metadados
Métodos • POST • Enviar dados a serem processados no servidor. • PUT • Envia 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étodos • DELETE • Deleta dados no servidor • As mensagem de resposta podem não ser o que parece. • TRACE • Ecoa o caminho feito pela requisição • OPTIONS • Retorna informação sobre as opções de conexão entre as partes da conexão • CONNECT • Converte a conexão para TCP/Tunnel transparente. Facilita o uso do criptografia SSL
Diferença entre POST e PUT • A 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 resposta • 1XX – informativo • 2XX – sucesso • 3XX – redirecionamento • 4XX – erros no cliente • 5XX – erros no servidor
Exemplos • 200 OK • A resposta segue com o objeto requisitado • 302 Found • Cliente pega o campo “Location” do header que informa a URI para o qual o recurso foi direcionado • 301 Moved Permanently • Redirecionamento permanente de URI
Exemplos • 304 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 Forbidden • Não é possível acessar o recurso, mesmo usando autenticação
Exemplos • 404 Not Found • O recurso está temporariamente indisponível ou realmente não exista • 500 Internal Server Error • Algo inesperado aconteceu no servidor (???) • 503 Service Unavailable • Temporariamente indisponível. Manutenção ou sobrecarga
HTTPS • Implementação de HTTP sobre uma camada SSL • Usado no comércio online/operações bancárias e clientes de email • Permite que os dados sejam transmitidos por uma conexão criptografada • Verifica autenticidade usando certificados digitais
Referencias • Redes De Computadores E A Internet - James F Kurose • http://www.w3.org/Protocols/ • www.UFRJ.br