Nagłówek aktualizacji HTTP / 1.1 - HTTP/1.1 Upgrade header

Nagłówka Upgrade pole to pole nagłówka HTTP wprowadzony w HTTP / 1.1 . Podczas wymiany klient rozpoczyna od wysłania żądania w postaci zwykłego tekstu , które jest później aktualizowane do nowszej wersji protokołu HTTP lub przełączane na inny protokół. Klient musi zażądać aktualizacji połączenia; jeśli serwer chce wymusić aktualizację, może wysłać 426 Upgrade Required odpowiedź. Klient może następnie wysłać nowe żądanie z odpowiednimi nagłówkami aktualizacji, nie wyłączając połączenia.

Używaj z TLS

Jednym z zastosowań jest rozpoczęcie żądania na normalnym porcie HTTP, ale przełączenie na Transport Layer Security (TLS). W praktyce takie użycie jest rzadkie, a HTTPS jest znacznie bardziej powszechnym sposobem inicjowania szyfrowanego HTTP.

Serwer zwraca 426 kod stanu, aby ostrzec starszych klientów, że błąd był związany z klientem ( 400 kody poziomu wskazują awarię klienta).

Ta metoda ustanowienia bezpiecznego połączenia jest korzystna, ponieważ:

Jeśli te same zasoby są dostępne z serwera zarówno za pośrednictwem zaszyfrowanych bezpiecznych środków, jak i niezaszyfrowanych, wyraźnych środków, pośrednik może utrzymywać niezaszyfrowane i nieuwierzytelnione połączenie z klientem, utrzymując jednocześnie szyfrowane połączenie z serwerem.

Wady tej metody obejmują:

  • Klient nie może określić wymogu bezpiecznego protokołu HTTP w identyfikatorze URI (chociaż klient może tego zażądać podczas negocjacji aktualizacji); i
  • Ponieważ protokół HTTP jest definiowany na podstawie przeskoków , może być wymagane tunelowanie HTTP w celu ominięcia serwerów proxy.

Używaj z WebSocket

WebSocket wykorzystuje również ten mechanizm do zestawiania połączenia z serwerem HTTP w kompatybilny sposób. Protokół WebSocket składa się z dwóch części: uzgadniania w celu ustanowienia zaktualizowanego połączenia, a następnie faktycznego przesyłania danych. Po pierwsze, klient żąda połączenia websocket za pomocą Upgrade: WebSocket i Connection: Upgrade nagłówków, wraz z kilkoma nagłówkami protokół specyficznych ustalić wersję używanego i skonfigurować uzgadniania. Serwer, czy obsługuje protokół, odpowiedzi z tego samego Upgrade: WebSocket i Connection: Upgrade nagłówków i uzupełnia dłoni. Po pomyślnym zakończeniu uzgadniania rozpoczyna się przesyłanie danych.

Używaj z HTTP / 2

Mechanizm HTTP Upgrade jest używany do ustanowienia protokołu HTTP / 2 zaczynając od zwykłego HTTP. Klient rozpoczyna połączenie HTTP / 1.1 i wysyła Upgrade: h2c nagłówek. Jeśli serwer obsługuje protokół HTTP / 2, odpowiada kodem stanu protokołu HTTP 101 Switching Protocol . Mechanizm aktualizacji HTTP jest używany tylko w przypadku zwykłego tekstu HTTP2 (h2c). W przypadku protokołu HTTP2 przez TLS (h2) zamiast tego używane jest rozszerzenie protokołu ALPN TLS.

Zobacz też

Bibliografia

Linki zewnętrzne