
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

- 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


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

Cookies

Proxy


- 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.

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

-
Negociação protocolar, o cliente nãp pode assummir que todos os servidores são HTTP2:
- Começando em HTTP/1.* e pedido ”upgrade” da conexão
- Semelhante ao mecanismo usado para os WebSockets
- Usando HTTPS e negociando o protocolo HTTP2 durante o handshake TLS inicial
- Sabendo que o servidor é HTTP2 – envia sequencia inicial HTTP2
- Começando em HTTP/1.* e pedido ”upgrade” da conexão
-
É possível começar logo em HTTP2 se e só se o cliente souber que o servidor fala HTTP2
HTTP3

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

QUIC Segurança DV
ver dns e transporte resumos