1.264 – Lição 11 Fundamentos da Web Navegadores e servidores da Web • A Internet é “apenas” um conjunto de redes interconectadas livremente. – Um conjunto de redes de área local conectado via redes de área ampla (WAN). – Sem controle ou gerenciamento centralizado . – Os segmentos de rede interconectados via roteadores. – Os roteadores são computadores dedicados que gerenciam pacotes de dados. – O TCP/IP é o protocolo de dados universais na rede. – No formato atual, o conteúdo é deixado para protocolos de nível mais elevado, igual à Web. • Conexões TCP/IP – O cliente é tipicamente um consumidor de dados que envia solicitações curtas. • Na Web, o cliente é um navegador. – O servidor é tipicamente um provedor de dados que envia respostas longas. • Ouvir as solicitações e transmitir os dados desejados (na amplamente conhecida porta 80). • Pode enviar dados dinâmicos ou estáticos. – A conexão da Web é ativada apenas o tempo suficiente para troca de dados. • Evitar custos indiretos de muitos canais de comunicação, porém em estado solto. Protocolo de Controle de Transmissão/Protocolo Internet TCP/IP Estrutura em Camadas TCP/IP Organização da Web: Páginas da Web • A página da Web é a unidade básica da organização. – Páginas simples recuperadas em operação simples.’’ – Páginas compostas (tipicamente gráficos e textos) tomam passagens múltiplas (múltiplas conexões TCP/IP a menos que seja ajustado em ‘Keep-Alive). – As páginas têm hipertexto. • Os enlaces para outras páginas, implementados via URLs embutidas. – As páginas são descritas usando-se a linguagem Hypertext Markup (html). • Linguagem de descrição de documentos em alto nível. • Especifica a estrutura, mas não a aparência do documento. • Define as seções, tal como “cabeçalho nível 1”, “lista”, “texto enfatizado”. • O navegador manuseia o processamento da página na máquina do cliente. Organização da Web: Tipos MIME • Cada documento na Web tem um tipo. – Os tipos das Extensões de Múltiplas Finalidades do Correio da Internet (MIME), no padrão http. • Alguns tipos, tal como o html, textos e alguns gráficos, são exibidos diretamente pelo navegador. • Os outros precisam de um sistema auxiliar ou de programas de conexões externas para o tipo de exibição. – O sistema tipo Web é extensível. Os novos tipos são fáceis de acomodar. • Define o novo tipo de MIME no servidor. • O navegador irá prontificar o sistema auxiliar no aplicativo se o tipo MIME não for reconhecido. • O navegador pode sugerir o Web site a partir do qual pode-se baixar arquivos (download) para aplicativos auxiliares. • Executa o download e instala o aplicativo auxiliar, usando o novo tipo MIME. – Extensibilidade documentos do servidor da Web: programas para gerar • As URLs podem indicar programas, bem como páginas. • Os programas podem ser simples (hora do dia) ou complexo (base de dados, análise). • São usados os programas, Java, perl, C++, Páginas do Servidor do Java, Visual Basic, Páginas do Servidor Ativo. • Os aplicativos variam do simples (hora do dia) às bases de dados e análises complexas. Exemplos do tipo MIME • • • • • • • • • • • Application/msword Application/pdf Application/vnd.ms-excel Application/zip audio/basic audio/x-wav image/gif Image/Jpeg text/plain text/html video/mpeg Word Acrobat Excel Zip file (arquivo ZIP) .au, .snd MS audio GIF JPEG Plain text (texto simples) HTML Vídeo Veja o site: http://www.rfc-editor.org para lista atual do http, MIME, ou outras especificações da Internet. Protocolo HTTP • O HTTP 1.1 é o protocolo atual. – Baseado no alfabeto ISO Latin1 (ASCII com extensões para idiomas Europeus) – O HTTP 1.1 adiciona conexões persistentes de tcp/ip, transferências de documentos parciais sobre o http 1.0. • Quatro etapas: – Conexão de abertura: baseada no URL – Solicitação: O navegador abre a conexão para o servidor e envia: • Método de solicitação, (e dados de solicitação na parte inferior, se for solicitação POST ou PUT). • URL, • Número da versão do HTTP • Informação do cabeçalho (informacional, opcional), terminados com linhas em branco. – Resposta: Solicita e envia os processos do servidor: • Versão do protocolo HTTP e código de status. • Informações do cabeçalho, terminado com linha em branco. • Texto (dados) – Fechar a conexão HTTP • • Estas transações são no modo sem informações de estado. A conexão é fechada após cada página e restabelecida: O servidor não pode conectar as solicitações sucessivas do cliente. O conteúdo dinâmico é produzido em resposta à solicitação do HTTP por um programa do servidor. Exemplos de Solicitação do HTTP Solicitação típica do navegador: (Use o comando telnet web.mit.edu 80 da Unix para ver isto). GET/about-mit.html http/1.1 Host: web.mit.edu (exigido) Aceito: text/html, text/plain, image/jpeg, image/gif, */* (opcional) (linha em branco) Resposta típica do servidor: HTTP/1.1.200 OK Servidor: Apache/1.3.3 Ben-SSL/1.28 (Unix) Tipo do Conteúdo: text/html Extensão do Conteúdo: 8300 (linha em branco) <HTML> <HEAD><TITLE> Sobre MIT</TITLE></HEAD> <BODY>A missão do MIT…</BODY> Também (usar o telnet da Unix): Euro.ecom.cmu.Edu </HTML> GET /test.html http/1.1 amazon.com OPÇÕES * http/1.1 Fase de solicitação do HTTP (navegador para servidor) Descrição dos Comandos GET HEAD POST OPTIONS TRACE PUT DELETE • • • • Solicita documentos específicos (também usado para ‘post’) Solicita apenas o cabeçalho do documento específico. Solicita que o servidor aceite os dados do navegador e gera o conteúdo dinâmico Obtém as opções do servidor e de acesso. Usado na depuração Substitui o documento do servidor pelos dados do navegador Apaga os documentos específicos no servidor. O comando GET é a solicitação mais freqüente dos navegadores. O comando POST é usado para processamento dos formulários de preenchimento. O comando HEAD é usado pelos utilitários de busca que verificam as páginas ativas. Sem segurança ou autenticação no HTTP (o “Basic” envia a senha em aberto). – Use o Secure Socket Layer (canal de comunicação seguro) (SSL) para criptografar suas trocas na Web. Cabeçalhos de solicitação do HTTP comum DEFINIÇÃO DO CABEÇALHO Accept Tipos de MIME aceitos pelo cliente (múltiplos permitidos). Connection Tipos de conexões para o cliente (keep-alive, fechar) Cookie Retorna o cookie anterior ao servidor (troca de dados) From Endereço do e-mail do usuário (enviado somente por crawlers — utilitário de pesquisa da Web). Host Host original solicitado (encaminhamento, nomes múltiplos) If-Modified Utilizado para reduzir a busca de documentos já contidos no navegador. -Since tem Referer O URL do último documento exibido do cliente User-Agent Nome e versão do software do cliente (navegador). Códigos de status de resposta do HTTP Código do status 100-101 200-206 300-307 400-417 500-505 Exemplos: 200 404 500 Definição Resposta informativa; o cliente deverá responder com alguma outra ação (continue, novo protocolo). A solicitação foi efetuada com sucesso O documento foi movido; indica novo endereço. Erro do cliente, tal como uma solicitação não autorizada. Erro do servidor OK Não encontrado Erro do servidor interno Exemplos de cabeçalho de resposta do HTTP Cabeçalho Allow Content-Length Content-Type Expires Last-Modified Location Set-Cookie Definição Solicitações permitidas, tais como o GET (400s) Extensão em bytes dos dados a serem retornados (usado para conexões “keep alive”) Tipo de MIME de dados devolvidos Data do vencimento do documento. Data da última modificação do documento. Novo endereço do documento (com status 300) Fornece um “cookie” ao navegador.