0% acharam este documento útil (0 voto)
3 visualizações21 páginas

Protocol o HTTP

O documento aborda o Protocolo HTTP, detalhando seu funcionamento na comunicação entre cliente e servidor na web. Explica a estrutura das mensagens de requisição e resposta, os métodos disponíveis, e a diferença entre conexões persistentes e não-persistentes. Além disso, discute a importância do caching na redução do tráfego e tempo de resposta.

Enviado por

Bruno Cecagno
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações21 páginas

Protocol o HTTP

O documento aborda o Protocolo HTTP, detalhando seu funcionamento na comunicação entre cliente e servidor na web. Explica a estrutura das mensagens de requisição e resposta, os métodos disponíveis, e a diferença entre conexões persistentes e não-persistentes. Além disso, discute a importância do caching na redução do tráfego e tempo de resposta.

Enviado por

Bruno Cecagno
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Área de Ciências Exatas e Engenharias

Redes de Computadores

Protocolo HTTP

Professora:
Maria de Fátima Webber do Prado Lima
Protocolo HTTP
http: hypertext transfer
protocol
htt
• protocolo da camada de preq
PC rodando htt ues
aplicação da Web. pr t
Explorer e sp
• modelo cliente/servidor ons
e
– cliente: browser que
solicita, recebe e e st
eq u
r Servidor
apresenta objetos da t tp o nse
h p rodando
Web r es
tp NCSA Web
ht
– server: envia objetos em server
resposta a pedidos
• http1.0: RFC 1945 Mac rodando
Navigator
• http1.1: RFC 2068
Protocolo HTTP
http: protocolo de transporte http é “sem estado”
TCP:
• o servidor não mantém
• cliente inicia conexão TCP informação sobre os
(cria socket) para o pedidos passados pelos
servidor na porta 80. clientes.
• servidor aceita uma
conexão TCP do cliente. Protocolos que mantém
• mensagens http informações de estado são
complexos!
(mensagens do protocolo
de camada de aplicação) • necessidade de organizar
são trocadas entre o informações passadas.
browser (cliente http) e o • se ocorrer um crash as
servidor Web (servidor informações podem ser
http). perdidas ou gerar
• A conexão TCP é fechada. inconsistências entre o
cliente e o servidor.
Exemplo de Operação
Usuário entra com a URL: (contém referência a
[Link]/someDepartment/[Link] 10 imagens jpeg)

1a. cliente http inicia conexão TCP


ao servidor http (processo)
em [Link]. 1b. servidor http no host
Porta 80 é a default para o [Link] esperando
servidor http . pela conexão TCP na porta 80.
“aceita” conexão, notificando o
cliente
2. cliente http client envia http
request message (contendo a URL)
para o socket da conexão TCP 3. servidor http recebe mensagem de
pedido, forma response message
contendo o objeto solicitado
(someDepartment/[Link]),
envia mensagem para o socket

tempo
Exemplo (cont.)
4. servidor http fecha conexão TCP.

5. cliente http recebe mensagem


de resposta contendo o
arquivo html, apresenta o
conteúdo html. Analisando o
arquivo html encontra 10
tempo objetos jpeg referenciados

6. Passos 1-5 são repetidos para cada


um dos 10 objetos jpeg.
Conexões persistentes e não-
persistentes

Não-persistente Persistente
• http/1.0: servidor analisa • modo default para htp/1.1.
pedido, envia resposta e • na mesma conexão TCP são
fecha a conexão TCP . trazidos vários objetos.
• 2 RTTs para obter um objeto • o cliente envia pedido para
– Conexão TCP. todos os objetos.
– solicitação e transferência referenciados tão logo ele
do objeto. recebe a página HTML
básica .
• cada transferência sofre por
causa do mecanismo da • poucos RTTs, menor tempo
lenta inicialização do TCP. de inicialização.
• muitos browser abrem várias
conexões paralelas.
Mensagem de Requisição
 As mensagens de solicitação ao processo servidor e
resposta ao processo cliente são semelhantes.
 A mensagem de solicitação é formada por:
• Linha de solicitação
• Cabeçalho
• Corpo
linha de pedido
(comandos GET GET /somedir/[Link] HTTP/1.0
, POST,HEAD ) User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
linhas de
cabeçalho
Accept-language:fr

Carriage return,
(extra carriage return, line feed)
line feed
indica fim da mensagem
Mensagem de Requisição
Mensagem de Requisição
• A primeira linha em uma mensagem de solicitação
define o tipo de requisição realizada pelo cliente ao
servidor.
• Esta linha possui o seguinte formato:
Método <espaço> URL <espaço> Versão do HTTP
• Onde:
– Método: tipo de solicitação realizada ao servidor;
– URL: String de caracteres que identifica o endereço
da página na Internet;
– Versão do protocolo HTTP.
Mensagem de Requisição - Métodos
Método Ação
(Comando)
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 o servidor.

PUT Envia um documento do servidor para o cliente.

TRACE Ecoa a solicitação enviada.

CONNECT Reservado.

OPTION Solicita detalhamento sobre opções disponíveis.


Mensagem de Requisição
 Depois da primeira linha (requisição), várias
informações adicionais podem ser trocadas através
do cabeçalho.
 Formato do cabeçalho de solicitação:

Nome do cabeçalho: <espaço> Valor do cabeçalho


 Exemplos de cabeçalho de requisição:
Accept: exibe o formato de mídia que o cliente aceita;
Accept-language: exibe a linguagem que o cliente pode
aceitar;
From: exibe o endereço de e-mail do usuário;
If-match: transmite o documento apenas se ele não
coincidir com a tag fornecida;
User-agent: identifica o programa cliente.
Mensagem de Resposta
linha de status
(protocolo
código de status HTTP/1.0 200 OK
frase de status) Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
linhas de
Content-Length: 6821
cabeçalho
Content-Type: text/html

data data data data data ...


dados, e.x.,
arquivo html
Mensagem de Resposta
• A primeira linha em uma mensagem de resposta
indica o status da realização da solicitação no
servidor.
• Esta linha possui o seguinte formato:
Versão <espaço> Código de Status <espaço> Frase de Status
• Onde:
– Versão do protocolo HTTP;
– Código de Status: formado por 3 dígitos indicam a
resposta enviada pelo servidor;
– Frase de Status: expande o código de status,
mostrando as mensagens de forma mais detalhada na
forma de texto.
Mensagem de Resposta
200 ok Solicitação bem-sucedida.
201 Created Nova URL criada.
202 Accepted Requisição aceita, mas vai ser executada depois.
204 No content Conteúdo inexistente no corpo da solicitação.
Redirecionamento
Moved
301 permanently O objeto não está mais armazenado no servidor.
302 Moved temporarily O objeto foi temporariamente movido.
304 Not modified O documento não foi modificado.
Mensagem de Resposta
Código Frase Significado
Erros no Cliente
400 Bad request Erro de sintaxe na solicitação.
A requisição não tem autorização para ser
401 Unauthorized executado.
403 Forbidden Serviço negado.
404 Not found Documento não encontrado.
Method not O método solicitado não é suportado pelo
405 allowed servidor.
406 Not acceptable Formato solicitado não é aceitável
Erros no Servidor
Internal Server
500 Error Existe um erro no servidor.
501 Not implemented A ação solicitada não pode ser executada.
Service
503 unavailable O serviço está temporariamente indisponível.
Mensagem de Resposta
 O cabeçalho de resposta notifica sobre as
informações da requisição realizada e configurações
do servidor.
 Formato do cabeçalho de resposta:

Nome do cabeçalho: <espaço> Valor do cabeçalho


 Exemplos de cabeçalho de resposta:
Age: exibe a idade do documento;
Public: exibe a lista de métodos suportados;
Server: exibe o nome e a versão do servidor;
Accept-range: mostra se o servidor aceita ou não o
intervado solicitado pelo cliente;
Retry-after: especifica a data que o servidor estará
disponível.
Cookies
• gerados e lembrados
pelo servidor, usados cliente servidor
mais tarde para: ação
usual http request msg
– autenticação. específica
usual http response +
– lembrar preferências Set-cookie: # do cookie
dos usuários ou
prévias escolhas. usual http request msg
ação
• servidor envia “cookie” cookie: #
específica
ao cliente na resposta usual http response msg do cookie
HTTP
Set-cookie: 1678453 usual http request msg
ação
• cliente apresenta o cookie: #
específica
cookie em pedidos usual http response msg do cookie
posteriores
cookie: 1678453
GET Condicional: armazenando no
cliente
• Razão: não enviar cliente servidor
objeto se a versão que http request msg
o cliente já possui está If-modified-since:
objeto
<date>
atualizada. não
• cliente: specifica data http response modificado
HTTP/1.0
da versão armazenada 304 Not Modified
no pedido HTTP.
If-modified-since: http request msg
<date> If-modified-since:
• servidor: resposta não <date> objeto
modificado
contém objeto se a http response
cópia é atualizada: HTTP/1.1 200 OK
<data>
HTTP/1.0 304 Not
Modified
Web Caches (servidor proxy)

Objetivo: atender o cliente sem envolver o servidor


Web originador da informação.
servidor
• usuário configura o original
browser: acesso Web é
feito através de um proxy. h tt
Proxy
pr server u e st
• cliente envia todos os equ req
cliente http es t
htt
p
o nse
res p
pedidos http para o web pon p res
cache:
se htt
est
equ
– se o objeto existe no p r ns e
h tt po
web cache: web cache r es
tp
retorna o objeto ht
– ou o web cache solicita cliente
objeto do servidor servidor
original
original, então envia o
objeto ao cliente.
Porque Web Caching?
servidores
• armazenamento está originais
“perto” do cliente (ex., Internet
na mesma rede). pública
• menor tempo de
resposta.
enlace de acesse
• reduz o tráfego para 1.5 Mbps
servidor distante: rede
– links externos podem ser institucional
10 Mbps LAN
caros e facilmente
congestionáveis.

cache
institucional
Slides retirados do material do livro Redes de
Computadores de James Kurose

Você também pode gostar