Są to Pseudo-Header Fields
zdefiniowane w nowym protokole HTTP/2.
HTTP/1.x użył wiadomości start-line
do reprezentowania docelowej nazwy użytkownika, metody żądania, kodu odpowiedzi itd. Wszystkie wiadomości http są albo żądaniem od klienta do serwera, albo odpowiedzią z serwera na klienta. Te dwa typy są rozróżniane przez ich start-line
, które są request-line
dla żądań lub status-line
dla odpowiedzi.
request-line = method SP request-target SP HTTP-version CRLF
status-line = HTTP-version SP status-code SP reason-phrase CRLF
można przeczytać więcej w RFC7230 section 3.1
Ale HTTP/2 wykorzystuje pola specjalny pseudo-header rozpoczynające się od ':' (ASCII 0x3a) do tego celu. Te pseudo-nagłówki są ściśle określone. Istnieją pola pseudo-nagłówków żądania i pola pseudo-nagłówka odpowiedzi. Żądaj pól pseudo-nagłówka: :method
, , , :path
.
The ":authority" pseudo-header field includes the authority portion of the target URI.
authority = [ userinfo "@" ] host [ ":" port ]
Czytaj więcej w RFC7540.
W protokole HTTP/1.x jest to odpowiednik pola nagłówka host
. W dokumencie RFC7540 wymieniono niektóre środki dla zgodności wstecznej z HTTP/1.x
"Aby zapewnić wierne odtworzenie wiersza żądania HTTP/1.1, to pole pseudo nagłówka MUSI zostać pominięte podczas tłumaczenia z HTTP/1.1 żądanie, które ma cel żądania w miejscu pochodzenia lub w formie gwiazdki.Klienci generujący bezpośrednio żądania HTTP/2 POWINIEN używać pola pseudo-nagłówka ": authority" zamiast pola nagłówka Host.Pośrednik, który konwertuje żądanie HTTP/2 na HTTP /1.1 MUSI utworzyć pole nagłówka Host, jeśli nie ma go w żądaniu, kopiując wartość pola pseudo-nagłówka ": authority". "
Doskonałe dzięki. – Yunti