Expect

O cabeçalho de requisição HTTP Expect indica expectativas que precisão ser cumpridas pelo servidor para lidar com a requisição apropriadamente.

A única expectativa definida na especificação é Expect: 100-continue, para qual o servidor deve responder com:

  • 100 se a informação contida no cabeçalho é suficiente para causar sucesso imediato,
  • 417 (Expectativa Falhou) se ele não pode se comprometer com a expectativa; ou qualquer outro código de status 4xx caso contrário.

Por exemplo, o servidor pode rejeitar a requisição se o cabeçalho Content-Length for muito grande.

Navegadores comuns não enviam um cabeçalho Expect, mas alguns clientes como o cURL fazem isso por padrão.

Tipo de cabeçalho Request header
Forbidden header name sim

Sintaxe

Nenhuma outra expectativa exceto "100-continue" foi especificada atualmente.

Expect: 100-continue

Diretivas

100-continue

Informa os receptores que o cliente está para mandar uma mensagem com corpo (presumidamente grande) na requisição e deseja receber um código de status 100 (Continue) como resposta interina.

Exemplos

Mensagem de corpo grande

Um cliente envia uma requisição com cabeçalho Expect e aguarda a resposta do servidor antes de mandar o corpo da mensagem.

PUT /somewhere/fun HTTP/1.1
Host: origin.example.com
Content-Type: video/h264
Content-Length: 1234567890987
Expect: 100-continue

O servidor checa os cabeçalhos da requisição e responde com uma resposta 100 (Continue) para instruir o cliente a continuar e enviar o corpo da mensagem, ou ele irá mandar um código de status 417 (Expectativa Falhou) se qualquer uma das expectativas não pode ser cumprida.

Especificações

Especificação Título
RFC 7231, sessão 5.1.1: Expect Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

Compatibilidade com navegadores

Veja também

  • 417 Expectation Failed
  • 100 Continue