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.
Download

Páginas da Web