Cabeçalho de atualização HTTP / 1.1 - HTTP/1.1 Upgrade header

O campo de cabeçalho de atualização é um campo de cabeçalho HTTP introduzido em HTTP / 1.1 . Na troca, o cliente começa fazendo uma solicitação de texto não criptografado , que posteriormente é atualizada para uma versão mais recente do protocolo HTTP ou alternada para um protocolo diferente. Um upgrade de conexão deve ser solicitado pelo cliente; se o servidor deseja forçar uma atualização, ele pode enviar uma 426 Upgrade Required resposta. O cliente pode então enviar uma nova solicitação com os cabeçalhos de atualização apropriados enquanto mantém a conexão aberta.

Use com TLS

Um uso é iniciar uma solicitação na porta HTTP normal, mas mudar para Transport Layer Security (TLS). Na prática, esse uso é raro, sendo o HTTPS uma forma muito mais comum de iniciar o HTTP criptografado.

O servidor retorna um 426 código de status para alertar os clientes legados de que a falha estava relacionada ao cliente (os 400 códigos de nível indicam uma falha do cliente).

Este método para estabelecer uma conexão segura é vantajoso porque:

Se os mesmos recursos estiverem disponíveis no servidor por meio de meios seguros criptografados e meios claros não criptografados, um intermediário pode manter uma conexão não criptografada e não autenticada com o cliente enquanto mantém uma conexão criptografada com o servidor.

As desvantagens deste método incluem:

  • O cliente não pode especificar o requisito de um HTTP seguro no URI (embora o cliente possa exigir isso por meio da negociação de atualização); e
  • Como o HTTP é definido em uma base de salto , o túnel HTTP pode ser necessário para contornar os servidores proxy.

Use com WebSocket

O WebSocket também usa esse mecanismo para configurar uma conexão com um servidor HTTP de forma compatível. O protocolo WebSocket tem duas partes: um handshake para estabelecer a conexão atualizada e, em seguida, a transferência de dados real. Primeiro, um cliente solicita uma conexão WebSocket usando os cabeçalhos Upgrade: WebSocket e Connection: Upgrade , junto com alguns cabeçalhos específicos de protocolo para estabelecer a versão que está sendo usada e configurar um handshake. O servidor, se suportar o protocolo, responde com o mesmo Upgrade: WebSocket e Connection: Upgrade cabeçalhos e completa o handshake. Assim que o handshake for concluído com sucesso, a transferência de dados começa.

Use com HTTP / 2

O mecanismo de atualização HTTP é usado para estabelecer HTTP / 2 a partir de HTTP simples. O cliente inicia uma conexão HTTP / 1.1 e envia um Upgrade: h2c cabeçalho. Se o servidor suportar HTTP / 2, ele responderá com o código de status do protocolo de comutação HTTP 101 . O mecanismo de atualização HTTP é usado apenas para HTTP2 (h2c) de texto não criptografado. No caso de HTTP2 sobre TLS (h2), a extensão do protocolo ALPN TLS é usada.

Veja também

Referências

links externos