Protocolo HTTP e Web Servers

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

description

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: - PowerPoint PPT Presentation

Transcript of Protocolo HTTP e Web Servers

Page 1: Protocolo HTTP e Web Servers

Protocolo HTTPe

Web Servers

Gerencia de RedesRedes de Computadores II

Page 2: Protocolo HTTP e Web Servers

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

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

O protocolo Http

• Exemplo de conexão1. 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

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

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

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

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

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

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

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

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

Web Server

Page 14: Protocolo HTTP e Web Servers

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

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

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

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

• 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

• 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

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

Exemplo de como um script PHP é executado

Page 22: Protocolo HTTP e Web Servers

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

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

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

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

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

Prática

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

– Analise a resposta.