Resumo

  • Expect: 100-continue avisa que o cliente pretende reter o corpo, permitindo ao servidor rejeitar com base no método, alvo e cabeçalhos.
  • A resposta 100 apenas incentiva a transmissão. A origem ainda deve produzir um estado final, e um proxy pode emitir a permissão provisória sem representar aceitação da origem.
  • O cliente pode encerrar a espera e enviar assim mesmo, evitando impasse quando um intermediário antigo não encaminha respostas 1xx.

Julgar antes de transportar o trecho caro

Linha de requisição e cabeçalhos chegam antes do conteúdo. Método proibido, alvo inválido ou credenciais insuficientes podem, portanto, gerar 401, 405 ou outro final sem receber um arquivo inteiro.

Enviar tudo desperdiça capacidade diante de rejeição previsível. Parar sem protocolo cria o inverso: cliente espera permissão, servidor espera corpo. O RFC 2068 colocou o estado informativo 100 nesse intervalo em 1997 e já enfrentou a incompatibilidade de saltos HTTP/1.0.

Expect mostrou quem estava esperando

O RFC 2616 acrescentou Expect: 100-continue. O servidor passou a saber se o cliente segurava o conteúdo ou já o transmitia sem pausa.

Quem vai esperar precisa declarar; sem corpo, não pode declarar. Se parte do corpo chegou, o servidor pode omitir o convite já inútil. Com cabeçalhos completos, corpo anunciado e expectativa, a origem envia imediatamente um final decidível pelas cabeçalhos ou envia 100 sem esperar o próprio corpo.

Continue não concluiu nada

1xx é informação intermediária. Depois de 100, o servidor ainda recebe e processa o conteúdo e envia um estado final, salvo encerramento prematuro.

O alcance é estreito: não há motivo conhecido para interromper a transmissão. Não prova autenticação, validade, gravação, execução ou sucesso. Por isso não é preparação transacional nem commit em duas fases; administra bytes, não o efeito do método.

O proxy podia liberar sem aceitar

Um proxy pode devolver final que conhece ou encaminhar cabeçalhos. Sabendo que o próximo salto é antigo, às vezes gera 100 para manter o fluxo. Esse sinal prova apenas disposição local de transportar, não que a origem recebeu ou aprovou.

O 417 informa que a cadeia não suporta a expectativa. Repetir sem ela remove a otimização, mas não torna segura a repetição de método com efeitos. Ainda importa saber o que alcançou a origem.

Silêncio não ganhou poder de espera infinita

Os RFC 7231 e RFC 9110 não impõem duração fixa. O cliente pode enviar sem receber 100 e não deve aguardar indefinidamente.

Um salto antigo pode engolir 1xx. O escape por tempo troca algum desperdício possível por progresso e impede que silêncio se transforme em veto. Não há limiar universal de tamanho ou latência: as normas distribuem autoridade, não garantem ganho em toda rota.

Um final precoce ainda deixa enquadramento

O final pode chegar enquanto bytes saem. O servidor fecha a conexão ou lê e descarta o restante para preservar a fronteira da próxima mensagem. Veredicto e destino da conexão são fatos separados; resíduo mal interpretado numa conexão reutilizada pode parecer nova requisição.

Fontes e limites

O conjunto fechado reúne RFC 2068, RFC 2616, RFC 7231 e RFC 9110. Ele define história e semântica, não adoção, tempos padrão, economia real ou conformidade de proxies.