protocolo http e web servers gerencia de redes redes de computadores ii

27
Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo HTTPe

Web Servers

Gerencia de RedesRedes de Computadores II

Page 2: 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:HTTP 1.0 (RFC 1945)HTTP 1.1 (RFC 2616)

Page 3: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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.

Page 4: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 5: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 6: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo http.

• Conexões persistentes e conexões não persistentes.

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)

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.

Page 7: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo Http

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

Page 8: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo HttpFormato 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.

Page 9: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo Http• Exemplo de pedido:

GET / HTTP/1.1 Host: www.san.uri.br Accept: */*User-agent: Mozilla/4.0

POST / HTTP/1.1Host: san.uri.brContent-Length: 27Connection: Keep-Alive

Nome=NamePessoa&Idade=99&Curso=Computacao

Usando método GET

Usando método POST

Page 10: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo Http

• Exemplo de resposta:

HTTP/1.1 200 OK Date: Mon, 06 Aug 2012 23:32:52 GMT Server: ApacheX-Powered-By: PHP/5.1.2 Connection: close Content-Type: text/html; charset=iso-8859-1Dados dados dados dados dados...

Page 11: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo HttpMensagens 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.

Page 12: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Protocolo Http

Mensagens de erro

· 200 : OK· 301: Moved permanently· 400: Bad Request· 404: Not found· 505: Http version not supported.

Page 13: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Web Server

Page 14: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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.

Page 15: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 16: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 17: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Overview de como um Web Server trabalha

1 – Requisição do usuário através de um navegador (exemplo index.hml)

2 – Servidor web procura o arquivo no seu sistema de arquivos

3 – Servidor obtém o arquivo do seu sistema de arquivos

4 – Servidor retorna os dados do documento ao navegador do usuário

Browser

Web Server

Sistema de arquivos

Page 18: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

• 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

Interação Web Server e Browser

Page 19: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

• O servidor aceita conexões de rede efetuadas pelos clientes

• Recupera o conteudo do disco local

• Quando necessário executa programas para gerar páginas dinamicas (ou encaminha o pedido a um servidor de aplicações)

• Transmite os dados resultantes para o cliente

• Deve ser o mais rapido possivel

• Suportar multithreads e multiprocessamento é uma grande diferença

Interação Web Server e Browser

Page 20: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Overview de como um Web Server trabalha

• Maior expansão nos servidores foi a possibilidade de criar páginas dinâmicas baseadas na entrada de dados dos usuarios

• A forma mais antiga e ainda utilizada é atraves do uso de Common Gateway Interface (CGI)

• Ele basicamente define como um Web Server deve executar programas localmente e transmitir os dados para o cliente com o conteudo gerado de forma dinamica

• As demais formas de gerar páginas dinamicas se baseiam no mesmo principo de execução de um programa local e a saída do mesmo sendo encaminhada para o navegador do cliente

Page 21: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Exemplo de como um script PHP é executado

Page 22: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 23: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 24: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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

Page 25: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Prática

• Na linha de comando # telnet www.san.uri.br 80– GET index.html – <enter> duas vezes.– Analise a resposta.

Page 26: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

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/

Page 27: Protocolo HTTP e Web Servers Gerencia de Redes Redes de Computadores II

Prática

• Agora use o site– http://hurl.it/

– Analise a resposta.