1 / 27

Protocolo HTTP e Web Servers

Protocolo HTTP e Web Servers. Gerencia de Redes Redes de Computadores II. O protocolo Http. HTTP : Hyper Text Transfer Protocol . Protocolo de camada de aplicação. Modelo cliente/servidor : browser são clientes que pedem objetos ao servidor web (web server). Duas versões do protocolo:

woody
Download Presentation

Protocolo HTTP e Web Servers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Protocolo HTTPeWeb Servers Gerencia de Redes Redes de Computadores II

  2. O protocolo Http • HTTP : HyperTextTransferProtocol. • Protocolo de camada de aplicação. • Modelo cliente/servidor : browser são clientes que pedem objetos ao servidor web (web server). • Duas versões do protocolo: HTTP 1.0 (RFC 1945) HTTP 1.1 (RFC 2616)

  3. O protocolo Http • HTTP : Utiliza o tcp como protocolo de transporte • Cliente utiliza conexão via socket no servidor. Porta padrão 80. • O protocolo HTTP é sem estado (stateless). • Servidor não mantém histórico de outras conexões do cliente. • Servidores que mantêm estado são complexos.

  4. O protocolo Http • Exemplo de conexão 1. Cliente pede conexão em servidor http (processo) na porta 80 do servidor 2.Servidor aceita a conexão e avisa o cliente 3. Cliente envia mensagem de pedido de http (que contém a URL) através de socket de conexão tcp 4. Servidor recebe mensagem pedido e formula a mensagem de resposta contendo os objetos solicitados. Envia mensagem via socket. tempo

  5. O protocolo Http • Exemplo de conexão (continuação) 5.Servidor encerra a conexão 6.Cliente http recebe mensagem do servidor, contendo arquivo html. Visualiza o arquivo html. Verifica que o arquivo Html referencia outros 10 objetos. 7. Passos de 1 a 5 repetidos para cada objeto tempo

  6. Protocolo http. • Conexões persistentes e conexões não persistentes. • Persistentes • http 1.1 • Na mesma conexão tcp o servidor analisa o pedido, responde e analisa novo pedido. • Cliente envia o pedido para todos os objetos referenciados assim que recebe o Html básico. • Menos RTTs e menos partidas lentas. • Não persistente • http 1.0 • Servidor analisa pedido, responde e encerra a conexão tcp. • Para cada objeto e para a página Html deverá ser aberta uma conexão tcp • Transferência de cada objeto sofre de partida lenta do tcp. • 2 RTTs para cada objeto. (round trip time)

  7. Protocolo Http Formato de mensagem http: Formato geral • Dois tipos de mensagens: Pedido, resposta. • Mensagem de pedido http (formato ASCII)

  8. Protocolo Http Formato de mensagem http: Método • GET: É o método mais comum: solicita algum recurso como um arquivo ou um script CGI (qualquer dado que estiver identificado pelo URI) por meio do protocolo HTTP. O método GET é reconhecido por todos os servidores. • HEAD: É o mesmo que GET, mas sem que o recurso seja retornado. É usado para obter meta-informações por meio do cabeçalho da resposta, sem ter que recuperar todo o conteúdo. • POST: Envia dados para serem processados (por exemplo, dados de um formulário HTML) para o recurso especificado. Os dados são incluídos no corpo do comando.

  9. Protocolo Http • Exemplo de pedido: GET / HTTP/1.1 Host: www.san.uri.br Accept:*/* User-agent: Mozilla/4.0 POST / HTTP/1.1 Host: san.uri.br Content-Length: 27 Connection: Keep-Alive Nome=NamePessoa&Idade=99&Curso=Computacao Usando método GET Usando método POST

  10. Protocolo Http • Exemplo de resposta: HTTP/1.1 200 OK Date: Mon, 06 Aug 2012 23:32:52 GMT Server: Apache X-Powered-By: PHP/5.1.2 Connection: close Content-Type: text/html; charset=iso-8859-1 Dados dadosdadosdadosdados...

  11. Protocolo Http Mensagens de erro • 1xx: Informational (Informação) – utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo processada; • 2xx: Success (Sucesso) – indica que a requisição do cliente foi bem sucedida; • 3xx: Redirection (Redirecionamento) – informa a ação adicional que deve ser tomada para completar a requisição; • 4xx: Client Error (Erro no cliente) – avisa que o cliente fez uma requisição que não pode ser atendida; • 5xx: Server Error (Erro no servidor) – ocorreu um erro no servidor ao cumprir uma requisição válida.

  12. Protocolo Http Mensagens de erro • 200 : OK • 301: Moved permanently • 400: Bad Request • 404: Not found • 505: Http version not supported.

  13. Web Server

  14. Web Server • Um servidor web é um software usado para armazenar páginas e aplicações web • Proporciona paginas para a Internet e intranet. • Armazena diferentes tipos de paginas, scripts, programas e arquivos multimídia • Os arquivos são servidos usando o protocolo HTTP.

  15. Web Server • Uma grande quantidade de tecnologias baseadas no lado do servidor podem ser utilizadas para aumentar a habilidade dos servidores em disponibilizar simples paginas HTML • Exemplos: • CGI • SSI • SSL • ASP, PHP, JSP, etc

  16. Histórico • 1989 Tim Berners-Lee propõe ao CERN (seu empregador) um novo projeto para permitir a troca de informações usando um sistema hipertexto • 1990 dois programas são disponibilizados • Um cliente web (browser) • Um servidor web (que seria mais tarde chamado de CERN Httpd rodando em NextStep • 1991 – 1994 consolidação e portabilidade de cliente e servidor para diferentes plataformas • 1994 – Berners cria o World Wide Web Consortium para fins de padronização do HTTP e tecnologias envolvidas

  17. Overview de como um Web Server trabalha Browser 1 – Requisição do usuário através de um navegador (exemplo index.hml) 4 – Servidor retorna os dados do documento ao navegador do usuário Web Server 2 – Servidor web procura o arquivo no seu sistema de arquivos 3 – Servidor obtém o arquivo do seu sistema de arquivos Sistema de arquivos

  18. Interação Web Server e Browser • O browser atua como uma interface entre o usuario e o servidor web • O browser executa os seguinte passos para o usuários: • Contata o servidor web • Envia informacoes requeridas • Recebe as informacoes • Interpreta e mostra as informacoes recebidas

  19. Interação Web Server e Browser • O servidoraceitaconexões de redeefetuadaspelosclientes • Recupera o conteudo do disco local • Quandonecessárioexecutaprogramasparagerarpáginasdinamicas (ouencaminha o pedido a um servidor de aplicações) • Transmiteos dados resultantesparao cliente • Deveser o maisrapidopossivel • Suportar multithreads e multiprocessamento é umagrandediferença

  20. Overview de como um Web Server trabalha • Maiorexpansãonosservidoresfoi a possibilidade de criarpáginasdinâmicasbaseadasnaentrada de dados dos usuarios • A forma maisantiga e aindautilizada é atraves do uso de Common Gateway Interface (CGI) • Elebasicamente define como um Web Server deveexecutarprogramaslocalmente e transmitiros dados para o cliente com o conteudogerado de forma dinamica • As demaisformas de gerarpáginasdinamicas se baseiam no mesmoprincipo de execução de um programa local e a saída do mesmosendoencaminhadapara o navegador do cliente

  21. Exemplo de como um script PHP é executado

  22. Caracteristicas • Grande parte dos servidores web implementam as seguintes caracteristicas • Autenticacao • Suporte a conteudo estatico e dinamico • HTTPS • Compressao de conteudo • Virtual Hosting • Suporte a arquivos de grande tamanho (acima de 2Gb) • Controle de banda

  23. Conversão de caminho • Servidor mapeia uma URL para um caminho local • http://www.exemplo.com.br/diretorio/arquivo • O cliente efetua seguinte requisicaoGET /diretorio/arquivo.html HTTP/1.1 Host: www.exemplo.com.br • Servidor procura o arquivo em/var/www/diretorio/arquivo.html

  24. Limite de carga e de processos • Servidores possuem uma configuracao que define quantos clientes podem conectar de forma concorrente • Tambem possuem configuracoes da quantidade de processos que podem ser disparados (spawn) para evitar sobrecarga do sistema

  25. Prática • Na linha de comando # telnetwww.san.uri.br80 • GET index.html • <enter> duas vezes. • Analise a resposta.

  26. Prática • Utilize a ferramenta CURL para obter os cabecalhos # curl -v -I http://www.san.uri.br Analise a resposta. *Mais informações sobre CURL em http://curl.haxx.se/

  27. Prática • Agora use o site • http://hurl.it/ • Analise a resposta.

More Related