Pular para o conteúdo principal

Questão de Redes de Computadores — HTTP — CESPE / CEBRASPE 2024

Redes de ComputadoresHTTP
Código
ce403998
Banca
CESPE / CEBRASPE
Órgão
BACEN
Ano
2024
Cargo
Ana ( )
No que diz respeito à arquitetura de sistemas web, julgue o item a seguir.   No HTTP/2, são utilizadas conexões persistentes para o atendimento a diversas solicitações em sequência, ao passo que, no HTTP/1, as conexões atendem a várias solicitações simultâneas.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

HTTP/2 e HTTP/1.1: conexões persistentes e multiplexação

Gabarito: ❌ ERRADO. A afirmativa inverte a realidade dos dois protocolos: as conexões persistentes (keep-alive) foram introduzidas no HTTP/1.1, e não no HTTP/2; e é o HTTP/2 que permite o atendimento simultâneo de várias solicitações, por meio da multiplexação de streams em uma única conexão TCP. O HTTP/1.1, por sua vez, atende solicitações em sequência (uma após a outra), mesmo com conexão persistente.

O HTTP é um protocolo de aplicação que define como clientes e servidores trocam mensagens de requisição e resposta na Web. Ao longo de sua evolução, uma das principais mudanças foi a forma de gerenciar a conexão TCP subjacente. No HTTP/0.9 e no HTTP/1.0, cada requisição abria uma nova conexão TCP, que era encerrada após a resposta — o chamado modelo não persistente. Isso gerava um overhead enorme: para carregar uma página com várias imagens, o navegador precisava estabelecer uma conexão TCP para cada objeto, repetindo o handshake de três vias a cada vez.

O HTTP/1.1 (RFC 2616, de 1999) introduziu as conexões persistentes (keep-alive): uma única conexão TCP poderia ser reutilizada para múltiplas requisições, reduzindo a latência e o overhead. No entanto, mesmo com a conexão persistente, o HTTP/1.1 atende as requisições de forma sequencial — uma requisição por vez, aguardando a resposta antes de enviar a próxima (a menos que se use pipelining, que ainda assim exige respostas em ordem). O texto de apoio confirma: "No HTTP/1.1, um cliente abre uma conexão TCP com um servidor, envia uma solicitação como texto, espera uma resposta e, em muitos casos, fecha a conexão em seguida."

O HTTP/2 (RFC 7540, de 2015) foi criado para melhorar o desempenho, e uma de suas principais inovações é a multiplexação: várias requisições e respostas podem trafegar simultaneamente em uma única conexão TCP, divididas em streams independentes. Isso elimina o bloqueio de cabeçalho (head-of-line blocking) do HTTP/1.1 e permite que o servidor envie respostas fora de ordem. O texto de apoio lista entre os objetivos do HTTP/2: "Melhorar o desempenho com multiplexação, pipelining, compactação, etc."

Portanto, a afirmativa está duplamente errada: atribui ao HTTP/2 as conexões persistentes (que são do HTTP/1.1) e ao HTTP/1 as solicitações simultâneas (que são do HTTP/2). A banca inverteu os papéis de cada versão — uma pegadinha clássica de troca de características.

NÃO CAIA NESSA!

A banca adora inverter as inovações de cada versão do HTTP. Aqui, ela atribuiu ao HTTP/2 as conexões persistentes (que são do HTTP/1.1) e ao HTTP/1 as solicitações simultâneas (que são do HTTP/2). Lembre-se: HTTP/1.1 = persistente + sequencial; HTTP/2 = multiplexado + simultâneo. Com treino, você enxerga essas trocas de longe 💪

Característica

HTTP/1.1

HTTP/2

Conexão persistente (keep-alive)

Sim (introduzida nesta versão)

Sim (herdada)

Atendimento de solicitações

Sequencial (uma por vez)

Simultâneo (multiplexação de streams)

Inovação principal

Conexões persistentes

Multiplexação, compactação de cabeçalho

1Conexão persistente (keep-alive)
2Atendimento sequencial
3Pipelining (respostas em ordem)
4HTTP/2
Multiplexação de streams
Atendimento simultâneo
Elimina head-of-line blocking
HTTP/1.1
LEVELsoulevel.com.br
HTTP/1.1: Conexão persistente (keep-alive); Atendimento sequencial; Pipelining (respostas em ordem); HTTP/2 (Multiplexação de streams, Atendimento simultâneo, Elimina head-of-line blocking)

Item — ❌ ERRADO

A afirmativa está incorreta porque inverte as características dos dois protocolos. As conexões persistentes foram introduzidas no HTTP/1.1, não no HTTP/2. E é o HTTP/2 que permite o atendimento simultâneo de várias solicitações, por meio da multiplexação de streams em uma única conexão TCP. O HTTP/1.1, mesmo com conexão persistente, atende as solicitações de forma sequencial (uma após a outra). O texto de apoio confirma que o HTTP/1.1 "envia uma solicitação como texto, espera uma resposta" e que o HTTP/2 tem como objetivo "melhorar o desempenho com multiplexação".

Gabarito: ❌ ERRADO.

Link permanente: /questoes/ce403998