2025-12-30_17:33:50.png

HTTP: hypertext transfer protocol

  • Protocolo do nível da aplicação
  • Modelo cliente/servidor -> cliente: browser pede, recebe e mostra objetos Web -> servidor: servidor envia objetos como resposta a pedidos

2025-12-30_17:31:39.png

  • O cliente cria um socket e inicia uma conexão TCP com um servidor HTTP (por defeito, à escuta na porta 80);
  • O servidor não mantém estado acerca dos pedidos anteriores dos clientes

2025-12-30_17:36:04.png 2025-12-30_17:36:30.png

2025-12-30_17:41:30.png 2025-12-30_17:41:54.png 2025-12-30_17:42:15.png 2025-12-30_17:44:34.png

HTTP não persistente: Só pode ser enviado no máximo um objeto web por cada conexão estabelecida. Alguns browsers abrem várias conexões TCP em paralelo
para pedirem vários objetos referidos no mesmo objeto

HTTP persistente: Podem ser enviados múltiplos objetos web por cada ligação
estabelecida entre o cliente e o servidor. Servidor mantém conexão TCP aberta. -> Sem Pipelining: O cliente envia um novo pedido apenas quando recebe a resposta ao anterior -> Com Pipelining: O cliente envia os pedido assim que os encontra no objeto referenciador

2025-12-30_17:49:37.png

Cookies

2025-12-30_17:52:32.png 2025-12-30_17:53:21.png

Proxy

2025-12-30_18:04:37.png

2025-12-30_18:07:41.png

  • Broswer comunica com servidor proxy, que se tiver em caches a resposta envia HTTP response ao brower, senão o proxy contacta o servidor HTTP alvo.

2025-12-30_18:11:01.png

HTTP2, HTTP3+QUIC

Problemas HTTP/1

  • Paralelismo Limitado
  • Head-of-line blocking (bloqueio fila)
  • Overhead protocolar elevado (cabeçalos, metadata, cookies)

Truques servidor

  • subdividir em N sub-domínios, em vez de um único domínio por servidor? (domain sharding)
  • Reduzir pedidos à concatenar objetos (concatenated assets), vários CSS ou vários JS num único objeto
  • Incluir recursos em linha no HTML (inline objects)

HTTP/2

2026-01-06_16:05:13.png 2026-01-06_17:50:13.png 2026-01-06_17:54:58.png

  • Negociação protocolar, o cliente nãp pode assummir que todos os servidores são HTTP2:

    1. Começando em HTTP/1.* e pedido ”upgrade” da conexão
      • Semelhante ao mecanismo usado para os WebSockets
    2. Usando HTTPS e negociando o protocolo HTTP2 durante o handshake TLS inicial
    3. Sabendo que o servidor é HTTP2 – envia sequencia inicial HTTP2
  • É possível começar logo em HTTP2 se e só se o cliente souber que o servidor fala HTTP2

HTTP3

2026-01-06_18:09:17.png 2026-01-06_18:11:44.png

QUIC - Orientado à conexão, garante entrega ordenada dentro de uma stream (não entre streams), recuperação de erros com retransmissão, com cigrafem, usa de Stream ID para multiplexagem de streams

2026-01-06_18:13:52.png

QUIC Segurança DV

ver dns e transporte resumos