Protocolo HTTP Servidores de Páginas Redes de computadores II Prof. Diovani Milhorim A Web Wide Word (www) Páginas Web (www) : Consiste de objetos endereçados por uma URL. ex: www.facthus.edu.br A maioria das páginas web consistem de um documento HTML que referencia vários objetos tais como: imagens, animações, sons, etc... A Web Wide Word (www) A URL tem duas partes: Nome do hospedeiros e nome do caminho. Ex. www.voile.com.br/diovani/redes1 hospedeiro: www.voile.com.br Caminho : /diovani/redes1 A Web Wide Word (www) Agente de usuário são chamados de Browsers ou navegador. ex: internet explorer, netscape, opera, firefox. Servidores são chamados de “servidores de páginas” ou “servidores www”. ex: Apache Microsoft Internet information service (IIS) 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 www. Duas versões do protocolo: http 1.0 (rfc 1945) http 1.1 (rfc 2048) 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. O protocolo Http Exemplo de conexão 1. Cliente pede conexão em servidor http (processo) na porta 80 do servidor 3. Cliente envia mensagem de pedido de http (que contém a URL) através de socket de conexão tcp tempo 2.Servidor aceita a conexão e avisa o cliente 4. Servidor recebe mensagem pedido e formula a mensagem de resposta contendo os objetos solicitados. Envia mensagem via socket. 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 Protocolo http. Conexões persistentes e conexões não persistentes. Não persistente Persistentes •http 1.0 •http 1.1 •Servidor analisa pedido, responde e encerra a conexão tcp. •Na mesma conexão tcp o servidor analisa o pedido, responde e analisa novo pedido. •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) •Cliente envia o pedido para todos os objetos referenciados assim que recebe o Html básico. •Menos RTTs e menos partidas lentas. Protocolo Http Formato de mensagem http: Formato geral Dois tipos de mensagens: Pedido, resposta. Mensagem de pedido http (formato ASCII) 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. Protocolo Http Exemplo de pedido: GET /index.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Accept: text/html, image/gif, image/jpeg Accept-language: fr Protocolo Http Exemplo de resposta: HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Server: Apache/1.3.27 (Unix) (RedHat/Linux) Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 Dados dados dados dados dados... Protocolo Http Exemplo de pedido com POST POST /index.html HTTP/1.0 Accept: text/html If-modified-since: Sat, 29 Oct 1999 19:43:31 GMT Content-Type: application/x-www-formurlencoded Content-Length: 30 Nome=NamePessoa&Idade=99&Curso=Computacao 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. Protocolo Http Mensagens de erro 200 : OK 301: Moved permanently 400: Bad Request 404: Not found 505: Http version not supported. Protocolo Http Exercício No prompt de comando do DOS digite Telnet www.xxx.com.br 80 GET index.html HTTP/1.1 <enter> duas vezes. Analise a resposta. Protocolo Http Exercício Configure e coloque em operação o servidor apache de sua máquina no sistema linux. Tente fazer seu servidor operar nas portas 80 e 81. Crie uma página inicial personalizada para seu servidor de paginas com o seu nome.