Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>Cléver Ricardo Guareis de Farias</p><p>farias@ffclrp.usp.br</p><p>DCM/FFCLRP/USP</p><p>Redes de Computadores</p><p>Aula 04 – Parte 01</p><p>Redes de Computadores 2</p><p>Conteúdo Programático</p><p>n Visão geral</p><p>n Protocolo HTTP/1.1</p><p>n Cache HTTP</p><p>n Cookies</p><p>n Protocolo HTTP/2</p><p>Redes de Computadores 3</p><p>Terminologia Web (1)</p><p>n Documento web (página web) é formada</p><p>por um arquivo HTML base, o qual pode</p><p>incluir vários objetos</p><p>n objetos podem ser arquivo HTML, imagens JPEG,</p><p>applets Java, áudio, etc</p><p>Terminologia Web (2)</p><p>n Cada objeto é referenciado de maneira</p><p>unívoca por meio de uma URL (Uniform</p><p>Resource Locator)</p><p>n URL é formada pelo nome do servidor que</p><p>hospeda o objeto e pelo caminho até o</p><p>objeto</p><p>q http://dcm.ffclrp.usp.br/ppgca/index.html</p><p>Redes de Computadores 4</p><p>Redes de Computadores 5</p><p>Terminologia Web (3)</p><p>n Servidor web</p><p>q hospeda objetos web</p><p>n Navegador (agente do usuário)</p><p>q interface com o usuário acima e com a “rede”</p><p>abaixo</p><p>q implementa a interface com o usuário e o</p><p>protocolo da camada de aplicação</p><p>Redes de Computadores 6</p><p>Visão geral (1)</p><p>n HyperText Transfer Protocol (HTTP)</p><p>q definido nas RFCs 1945, 2616 e 7540</p><p>q protocolo de aplicação da Web</p><p>q protocolo de requisição e resposta (arquitetura</p><p>cliente/servidor)</p><p>n cliente: navegador que envia requisições, recebe</p><p>respostas e mostra os objetos web</p><p>n servidor: servidor Web que envia objetos como</p><p>respostas às requisições</p><p>Redes de Computadores 7</p><p>Visão geral (2)</p><p>Redes de Computadores 8</p><p>Histórico (1)</p><p>n Protocolo HTTP é padronizado pela Internet</p><p>Engineering Task Force (IETF)</p><p>q HTTP/0.9: protocolo simples e primitivo</p><p>n não chegou a ser padronizado</p><p>q HTTP/1.0: maio de 1996</p><p>n acrescentou uma série de melhorias com relação ao</p><p>protocolo original</p><p>Histórico (2)</p><p>q HTTP/1.1: junho de 1999</p><p>n provê soluções para problemas tais como proxies</p><p>hierárquicos, cache, conexões persistentes, etc</p><p>q HTTP/2: maio de 2015</p><p>n provê soluções para otimizar o uso da rede e reduzir</p><p>a percepção de latência</p><p>n provê suporte para o envio de dados não solicitados</p><p>do servidor para o cliente</p><p>q HTTP/3: em desenvolvimento</p><p>n uso do protocolo QUIC em substituição ao TCP como</p><p>protocolo de transporte</p><p>Redes de Computadores 9</p><p>Redes de Computadores 10</p><p>Conteúdo Programático</p><p>n Visão geral</p><p>n Protocolo HTTP/1.1</p><p>n Cache HTTP</p><p>n Cookies</p><p>n Protocolo HTTP/2</p><p>Redes de Computadores 11</p><p>Protocolo HTTP (1)</p><p>n HTTP faz uso do TCP</p><p>q cliente inicia uma conexão TCP com o servidor</p><p>(porta 80)</p><p>q servidor aceita conexão TCP</p><p>q mensagens HTTP (mensagens do protocolo da</p><p>camada de aplicação) são trocadas entre o</p><p>navegador (cliente HTTP) e o servidor Web</p><p>(servidor HTTP)</p><p>q conexão TCP é encerrada</p><p>Redes de Computadores 12</p><p>Protocolo HTTP (2)</p><p>n Servidor HTTP não mantêm informação</p><p>sobre as requisições anteriores de clientes</p><p>q requisições seguidas de um mesmo cliente por</p><p>um mesmo objeto resultam em uma nova</p><p>transferência do objeto</p><p>q protocolo sem estado (stateless)</p><p>Redes de Computadores 13</p><p>Protocolo HTTP (3)</p><p>n Conexões não persistentes</p><p>q modo de conexão do HTTP/1.0</p><p>q no máximo, um objeto é transmitido em cada</p><p>conexão TCP</p><p>Redes de Computadores 14</p><p>Protocolo HTTP (4)</p><p>n Considere a seguinte requisição:</p><p>http://dcm.ffclrp.usp.br/ppgca/index.html.</p><p>Considere também que a página solicitada</p><p>referencia 10 objetos</p><p>1a. Cliente HTTP inicia conexão</p><p>TCP para o servidor HTTP</p><p>localizado em dcm.ffclrp.usp.br</p><p>na porta 80</p><p>1b. Servidor HTTP na máquina</p><p>dcm.ffclrp.usp.br está à</p><p>espera de requisições na</p><p>porta 80. Servidor aceita a</p><p>conexão informando o</p><p>cliente HTTPtempo</p><p>http://dcm.ffclrp.usp.br/ppgca/index.html</p><p>Redes de Computadores 15</p><p>Protocolo HTTP (5)</p><p>2. Cliente HTTP envia mensagem</p><p>de requisição HTTP contendo</p><p>uma URL por meio da conexão</p><p>TCP. Mensagem indica que</p><p>cliente requer o envio do objeto</p><p>ppgca/index.html</p><p>3. Servidor HTTP recebe</p><p>mensagem de requisição,</p><p>prepara uma mensagem de</p><p>resposta contendo o objeto</p><p>requisitado e envia a</p><p>mensagem pela conexão</p><p>tempo</p><p>Redes de Computadores 16</p><p>Protocolo HTTP (6)</p><p>4. Cliente HTTP recebe mensagem de</p><p>resposta contendo arquivo html.</p><p>7. Passos 1-6 são repetidos para cada</p><p>objeto referenciado na página</p><p>5. Servidor HTTP encerra</p><p>conexão TCP</p><p>tempo</p><p>6. Cliente exibe página html. Cliente</p><p>verifica a existência de 10 objetos</p><p>(e.g., arquivos jpeg) referenciados</p><p>pela página</p><p>Redes de Computadores 17</p><p>Protocolo HTTP (7)</p><p>n Tempo de transmissão de uma requisição</p><p>q uso do round-trip time (RTT) como base</p><p>n tempo que leva um pacote para ir do cliente para o</p><p>servidor e então de volta ao cliente</p><p>q em geral o tempo de transmissão de uma</p><p>requisição usando requisições não persistentes</p><p>é 2 RTT mais tempo de transmissão do objeto</p><p>Redes de Computadores 18</p><p>Protocolo HTTP (8)</p><p>Redes de Computadores 19</p><p>Protocolo HTTP (9)</p><p>n Conexões persistentes</p><p>q modo de conexão do HTTP/1.1</p><p>q após o estabelecimento de uma conexão TCP</p><p>entre um cliente e um servidor, esta conexão é</p><p>mantida até a ocorrência de um timeout</p><p>(intervalo de tempo) ou a ocorrência de um erro</p><p>n o cliente e o servidor podem encerrar a conexão</p><p>Redes de Computadores 20</p><p>Protocolo HTTP (10)</p><p>n Duas versões de conexões persistentes:</p><p>q com pipelining</p><p>q sem pipelining</p><p>n Conexão persistente sem pipelining</p><p>q cliente faz uma nova requisição somente após a</p><p>requisição anterior ter sido toda recebida</p><p>q 1 RTT para requisitar e receber cada objeto</p><p>Redes de Computadores 21</p><p>Protocolo HTTP (11)</p><p>n Conexão persistente com pipelining</p><p>q cliente faz novas requisições</p><p>independentemente das requisições anteriores</p><p>terem sido recebidas</p><p>q 1 RTT pode ser utilizado para requisitar vários</p><p>objetos</p><p>q modo padrão do HTTP 1.1</p><p>Redes de Computadores 22</p><p>Protocolo HTTP (12)</p><p>n Vantagens das conexões persistentes:</p><p>q economia de tempo e memória da CPU em</p><p>função da necessidade de abrir e fechar um</p><p>número menor de conexões</p><p>q possibilidade de enviar múltiplas requisições</p><p>sem esperar por cada resposta</p><p>q redução do tráfego na rede em função da troca</p><p>de um número menor de pacotes para abrir e</p><p>encerrar conexões</p><p>Redes de Computadores 23</p><p>Fim Parte 01</p>

Mais conteúdos dessa disciplina