O documento discute os protocolos HTTP e FTP. Explica que o HTTP é usado para acessar dados na web através de requisições entre clientes e servidores, enquanto o FTP é usado para transferência de arquivos. Detalha os componentes, métodos, mensagens e transações dos protocolos.
1. Centro Universidade Anhanguera
de Campo Grande – Unidade 1
Superint. CENTRO-OESTE
Tec. em Redes de Computadores
Aula 04 – Protocolos HTTP e FTP
2. 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
3. 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
5. 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
7. 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
9. 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
10. 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
12. 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
14. 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
16. 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
18. 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
19. 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
20. 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
22. Transação HTTP
• Quais as formas de gerar uma Requisição
HTTP?
– Digitando o endereço do recurso no servidor
diretamente no browser.
– Clicando em um link que aponte para algum
recurso no servidor.
– Enviando dados de um formulário.
22
23. 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
24. Métodos HTTP
Método (Comando) Acão
GET Solicita um documento ao servidor
HEAD Solicita informações sobre um documento, mas
nã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
25. 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
28. 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
29. 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
32. 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
33. 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ção
suficiente 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, por
exemplo, no servidor
503 Service
unavaibable
O serviço está temporariamente
indisponível mas poderá ser solicitado
no futuro
34. 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
36. 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
37. 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
38. 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