Celem pól pseudo nagłówka było ujednolicenie sposobu przesyłania informacji o żądaniu/odpowiedzi w SPDY i później w HTTP/2 (który opiera się na SPDY).
Gdy zaprojektowano SPDY (ale także HTTP/2), konieczne było przesłanie informacji o żądaniu lub odpowiedzi sformatowanych na różne sposoby.
Nagłówki HTTP to pary (klucz, wartość), co jest łatwe.
Istnieje jednak pojęcie metody HTTP. Tak się składa, że jest to pierwszy znak linii zapytania, więc nie jest to krotka; jego klucz jest zdefiniowany przez jego pozycję (pierwszy token), a jego wartością są rzeczywiste znaki obecne w wierszu żądania, które tworzą pierwszy token.
To samo dotyczy celu żądania i wersji HTTP: są one drugim i trzecim tokenem wiersza żądania.
zatem koncepcyjnie żądania HTTP może być reprezentowany z parami w ten sposób, na przykład:
(method, GET)
(target, /)
(version, HTTP/1.1)
(Connection, close)
(Accept, *)
Jednakże, „metoda”, „obiektem docelowym”, „Version” nie może być stosowany jako nagłówki HTTP ślizgowych , ponieważ nigdy nie były zarezerwowane jako standardowe nazwy nagłówków HTTP według specyfikacji HTTP, a ludzie mogli używać ich jako niestandardowych nazw nagłówków HTTP (wyobraź sobie interfejs API REST, używając nagłówka "wersja").
HTTP/2 potrzebował sposobu na przenoszenie tych par w jednorodny sposób, jako par, ponieważ to uprościłoby (bardzo dużo) protokół.
Stąd wprowadzenie specjalnych nazw dla dodatkowych informacji zawartych w wierszach zapytania i odpowiedzi. Ta dodatkowa informacja jest umieszczona w HTTP/1.1, ale normalna para w HTTP/2, czyniąc HTTP/2 bardziej jednorodnym pod tym względem: po prostu przenosi pary. Tak bardzo, że ramka HTTP/2, która przenosi informacje o żądaniach i odpowiedziach, jest taka sama i nazywa się tylko HEADERS.
Nazwy pseudo nagłówków, w których wybrano początek dwukropka, ponieważ byłby to niedozwolony znak dla nazwy nagłówka w HTTP/1.1. HTTP/1.1 nie używa pseudo-nagłówków.