View
534
Download
0
Category
Preview:
Citation preview
Centro Universidade Anhanguera
de Campo Grande – Unidade 1
Superint. CENTRO-OESTE
Tec. em Redes de Computadores
Aula 04 – Protocolos HTTP e FTP
Introdução ao protocolo HTTP
• A web consiste em milhões de clientes (usando browsers como o internet
explorer e o firefox) e servidores (rodando aplicações como o Apache,
Tomcat e JBoss), conectados através de redes com fio e wireless.
2
Arquitetura
• Hoje em dia, a WWW é um serviço cliente/servidor distribuído, no qual
um cliente, usando um browser, pode acessar um serviço hospedado em
um servidor. Entretanto, o serviço pode ser distribuído em muitas
localidades, denominadadas sites.
3
Arquitetura
4
Cliente (browser)
• Uma série de fornecedores oferece browsers comerciais, que interpretam e
exibem um documento Web e praticamente todos definem um mesmo tipo de
arquitetura. Cada browser, em geral, formado por três partes: um controlador,
programas cliente e interpretadores.
– O controlador recebe entradas do teclado ou do mouse e usa os programas
cliente para acessar o documento.
– Após o documento ter sido acessado, o controlador utiliza um dos
interpretadores disponíveis para exibir o documento na tela.
– O interpretador de comandos pode ser baseado em HTML, Java ou JavaScript,
dependendo do tipo de documento.5
Browser - Navegador
6
Servidor
• Uma página web é hospedada em um servidor. Cada vez que chega uma
solicitação de um cliente, o documento correspondente é localizado e
transferido para ele. Para melhorar a eficiência, em geral os servidores
armazenam os arquivos já solicitado anteriormente em uma área de cache
na memória; a memória cache é muito mais rápida do que o disco rígido.
• Um servidor também pode se tornar mais eficiente .por meio da utilização
de técnicas de multitarefa baseada em threads ou em
multiprocessamento. Nesse caso, um servidor pode responder a mais de
uma solicitação.
7
Servidor
8
URL – Uniform Resource Locator
• Um cliente que deseja que a página Web precisa de seu endereço. Para
facilitar o acesso a documentos distribuídos ao redor do mundo, o
protocolo HTTP usa o conceito de localizadores.
• A URL (Uniform Resource Locator – localização de recursos uniformes) é
um padrão para a especificação de qualquer tipo de informação na
internet. Uma URL é constituída por quatro partes: protocolo, host, porta
e caminho (path).
9
URL – Uniform Resource Locator
• O protocolo é o programa cliente/servidor usado para acessar os documentos
diversos protocolos diferentes podem ser utilizados para acessar um documento;
entre estes temos o FTP, SMTP ou HTTP;
• O Host é o computador onde as informações estão hospedadas, embora ele possa
ser representado por um nome alternativo(alias);
• Uma Url pode também conter o número da porta. Se a porta for incluída, ela será
inserida entre o host e o Path;
10
Documentos Web
• Documentos Estáticos;
• Documentos Dinâmicos;
11
Documentos estáticos
• São aqueles que apresentam uma estrutura fixa, e que são criados e hospedados
em um servidor. O cliente pode obter apenas uma cópia do documento.
• O conteúdo do arquivo somente pode ser alterado no lado do servidor.
• Quando um cliente acessa o documento no servidor, apenas uma cópia do
documento é enviada ao cliente, sendo assim, seu conteúdo não poderá ser
alterado no lado do cliente.
12
Documentos estáticos
13
HTML
• Quando você desenvolve uma página, você usa o HTML para descrever que
aparência a página deve ter e como deve se comportar. O HTML possui várias tags
e atributos de tags. O objetivo do HTML é, a partir de um documento texto,
adicionar tags que dirão ao browser como formatá-lo.
14
15
Documentos Dinâmicos
• Um documento dinâmico é criado por um servidor web toda vez que um browser
solicita o documento. Quando chega uma solicitação, o servidor web roda um
programa aplicativo ou um script que cria o documento dinamicamente.
• O servidor retorna a saída do programa ou do script como resposta para o browser
que solicitou o documento.
• Como um novo documento é criado para cada solicitação, o documento dinâmico
pode variar de uma solicitação para outra.
16
Documentos Dinâmicos
17
Protocolo HTTP
• O HTTP é um protocolo usado principalmente para acessar dados na Web;
• Funciona como uma combinação de dois outros protocolo: FTP e SMTP;
• Ele é similar ao FTP, pois permite a transferência de arquivos e usa serviços TCP.
Entretanto é muito mais simples que o FTP pois usa uma única conexão TCP. Não existe
uma conexão de controle;
• O HTTP é similar ao SMTP porque os dados transferidos entre o cliente e o servidor se
parecem com mensagens SMTP;
• O HTTP utiliza os serviços do TCP na porta 80;
18
Transação HTTP
• A estrutura de uma transação HTTP entre um cliente e um servidor é uma
seqüência simples de Requisição HTTP/Resposta HTTP. Um browser solicita
e um servidor responde.
19
Transação HTTP
Informações que são enviadas na Requisição HTTP:
– O método HTTP (a ação que deve ser executada).
– O caminho (URL – Uniform Resource Locator) do recurso no servidor.
– Parâmetros do formulário (se houverem);
Informações que são enviadas na Resposta HTTP:
– Um código de status (informando se a requisição foi bem sucedida ou não).
– O tipo de conteúdo da resposta (texto, imagem, HTML, etc.) para o browser
saber exibi-la.
– O conteúdo solicitado (a página HTML solicitada, o arquivo de som, a imagem,
etc.).20
Mensagens de solicitação e Resposta
21
Transação HTTP
• Quais as formas de gerar uma RequisiçãoHTTP?
– Digitando o endereço do recurso no servidordiretamente no browser.
– Clicando em um link que aponte para algumrecurso no servidor.
– Enviando dados de um formulário.
22
A Requisição HTTP
• A primeira informação que encontramos na requisição é o método HTTP. O nome
do método informa ao servidor o tipo de solicitação que está sendo feita e como o
resto da mensagem de requisição será formatada.
• O protocolo HTTP possui diversos métodos, mas os que você usará com mais
freqüência são o GET e o POST.
23
Métodos HTTP
Método (Comando) Acão
GET Solicita um documento ao servidor
HEAD Solicita informações sobre um documento, masnão o documento em si
POST Envia informações do cliente para servidor
PUT Envia um documento do servidor para o cliente
TRACE Ecoa uma solicitação que chega
CONNECT Reservado
OPTION Solicita detalhamento sobre opções disponíveis
24
Método GET
• O GET é o método mais simples do HTTP e seu principal trabalho é pedir ao
servidor que consiga um recurso (página HTML, um PDF, etc) e enviá-lo de volta.
Este método é mais usado quando a requisição é feita digitando-se a URL do
recurso ou clicando-se em um link.
• O GET também pode ser usado para enviar dados de um formulário, mas, como
veremos adiante, existem alguns problemas em usar o GET para enviar dados de
um formulário.
25
Transação GET
26
Requisição GET
27
Método POST
• O POST é uma solicitação mais poderosa. Com o POST você pode solicitar algo e,
ao mesmo, tempo, enviar os dados de um formulário para o servidor. É mais usado
para enviar dados de um formulário HTML.
• Em uma solicitação POST, os parâmetros são enviados no corpo da mensagem de
requisição e, portanto, não ficam limitados da maneira que ficariam quando se usa
um GET.
28
Diferenças entre o POST e o GET:
• A quantidade de dados que se pode passar no GET é limitada pelo servidor (256
bytes, em geral). Se o usuário digitar um texto extenso, o GET pode não funcionar.
• Os dados enviados via GET são exibidos na barra de endereços do browser (expõe
dados secretos, como senhas por exemplo). Já os dados enviados via POST ficam
ocultos do usuário.
• Não é possível marcar (adicionar aos favoritos) o resultado de um request que usa
o POST.
29
Requisição POST
30
Requisição POST
31
Resposta HTTP
• Agora que já vimos as solicitações do browser para o servidor, vamos dar uma
olhada no que o servidor envia de volta como resposta. Uma resposta HTTP é
composta de header e corpo. A informação do header informa ao browser o
protocolo que está sendo usado, se a solicitação obteve êxito e que tipo de
conteúdo (content-type) está incluido no corpo. O corpo possui o conteúdo (por
exemplo, HTML) que o browser exibirá.
32
Frase de Status
• Esse campo é usado em mensagens de resposta. Ele expande o código de
status apresentando informações mais detalhadas na forma de texto.
33
Código Frase Descrição
200 OK A solicitação foi bem sucedida
400 Bad Request Erro de sintaxe na solicitação
401 Unauthorized A solicitação não tem autorizaçãosuficiente para ser executada.
403 Forbidden Serviço negado
404 Not Found O Documento não foi encontrado
500 Not implemented Há um erro, como um crash, porexemplo, no servidor
503 Serviceunavaibable
O serviço está temporariamenteindisponível mas poderá ser solicitadono futuro
Exemplo de Acesso a um servidor Web
• O HTTP usa caracteres ASCII. Um cliente pode se conectar diretamente a um servidor
usando telnet, que registra na porta 80;
• As próximas três linhas mostram que a conexão é bem sucedida. Em seguida, escreve-
se três linhas.
– A primeira mostra a linha de solicitação (método GET), a segundo é o cabeçalho
(definir o host), a terceira é um espaço em branco, que encerra o pedido.
– A resposta do servidor é de sete linhas que começam com a linha de status.
– A linha em branco no final termina a resposta do servidor. O arquivo de 14.230
linhas é recebida após a linha em branco (não mostrado aqui). A última linha é a
saída pelo cliente.
34
Exemplo de Acesso a um servidor Web
35
Servidor Proxy
• O HTTP permite o uso de servidores proxy. Um servidor Proxy é um computador
que mantém cópia para respostas e solicitações recém-transmitidas.
• O cliente http envia uma solicitação para um servidor proxy. Este verifica seu
cache. Se a mensagem não estiver armazenada no cache, o servidor proxy
retransmite a solicitação para o servidor Web correspondente.
36
FTP
• O File Transfer Protocol (FTP) é outro protocolo da camada de Aplicação comumente
utilizado.
• O FTP foi desenvolvido para possibilitar transferências de arquivos entre um cliente e um
servidor. Um cliente FTP é uma aplicação que roda em um computador e utilizado para
carregar e baixar arquivos de um servidor que executa o daemon FTP (FTPd).
• Para transferir os arquivos com sucesso, o FTP precisa de duas conexões entre o cliente e o
servidor: uma para comandos e respostas e outra para a real transferência do arquivo.
• O cliente estabelece a primeira conexão com o servidor na porta TCP 21. Tal conexão é
utilizada para controlar o tráfego, consistindo de comandos do cliente e respostas do
servidor.
37
FTP
• O cliente estabelece a segunda conexão com o servidor pela porta TCP 20. Essa
conexão é para a transferência real de arquivo e criada toda vez que houver um
arquivo transferido.
• A transferência de arquivos pode acontecer em ambas as direções. O cliente pode
baixar um arquivo do servidor, ou o cliente pode fazer carregar um arquivo ao
servidor.
38
FTP
39
Recommended