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çã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
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, 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
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çã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
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

Aula03 - protocolo http

  • 1.
    Centro Universidade Anhanguera deCampo Grande – Unidade 1 Superint. CENTRO-OESTE Tec. em Redes de Computadores Aula 04 – Protocolos HTTP e FTP
  • 2.
    Introdução ao protocoloHTTP • 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 emdia, 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
  • 4.
  • 5.
    Cliente (browser) • Umasé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
  • 6.
  • 7.
    Servidor • Uma páginaweb é 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
  • 8.
  • 9.
    URL – UniformResource 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 – UniformResource 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
  • 11.
    Documentos Web • DocumentosEstáticos; • Documentos Dinâmicos; 11
  • 12.
    Documentos estáticos • Sãoaqueles 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
  • 13.
  • 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
  • 15.
  • 16.
    Documentos Dinâmicos • Umdocumento 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
  • 17.
  • 18.
    Protocolo HTTP • OHTTP é 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 • Aestrutura 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 quesã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
  • 21.
  • 22.
    Transação HTTP • Quaisas 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 • OGET é 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
  • 26.
  • 27.
  • 28.
    Método POST • OPOST é 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 oPOST 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
  • 30.
  • 31.
  • 32.
    Resposta HTTP • Agoraque 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 Acessoa 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
  • 35.
    Exemplo de Acessoa um servidor Web 35
  • 36.
    Servidor Proxy • OHTTP 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 FileTransfer 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 clienteestabelece 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
  • 39.