Zweck der Pseudo- / Doppelpunkt-Header-Felder

8

Wie der Titel andeutet, suche ich nach Informationen über den Zweck von Pseudo- / Doppelpunkt-Header-Feldern, d. h. ich möchte wissen, warum wir einen zweiten Header-Feldtyp haben ...

Auch - ich weiß Pseudo / Doppelpunkt-Header-Felder werden in http2 anstelle der Nachrichten-und Statuszeilen verwendet (^^^ der Grund, für die ich nicht weiß ^^^); aber sind Pseudo- / Doppelpunkt-Header-Felder in http1 verwendet, um verschiedene Informationen (aus Status und Anfrage) weiterzuleiten?

    
Nathodius 17.06.2015, 18:51
quelle

1 Antwort

11

Der Zweck der Pseudo-Header-Felder bestand darin, zu vereinheitlichen, wie die Anfrage / Antwort-Information in SPDY und später in HTTP / 2 (das auf SPDY basiert) übertragen wurde.

Wenn SPDY entworfen wurde (aber auch HTTP / 2), mussten Anfrage- oder Antwortinformationen übertragen werden, die unterschiedlich formatiert sind.

Die HTTP-Header sind (Schlüssel, Wert) Paare, das ist einfach.

Allerdings gibt es das Konzept der HTTP-Methode. Das ist das erste Token einer Anforderungszeile, also kein Tupel. Sein Schlüssel wird durch seine Position (das erste Token) definiert und sein Wert ist das tatsächliche Zeichen in der Anforderungszeile, die das erste Token bilden.

Gleiches gilt für das Anforderungsziel und die HTTP-Version: Sie sind das zweite und das dritte Token der Anforderungszeile.

Also konzeptionell kann eine HTTP-Anfrage auf diese Weise mit Paaren dargestellt werden, zum Beispiel:

%Vor%

"method", "target" und "version" konnten jedoch nicht als reine HTTP-Header verwendet werden, da sie von der HTTP-Spezifikation niemals als Standard-HTTP-Header-Namen reserviert wurden und sie als benutzerdefinierter HTTP-Header verwendet werden konnten Namen (stellen Sie sich eine REST-API vor, die den Header "version" verwendet).

HTTP / 2 benötigte eine Möglichkeit, diese Paare auf homogene Weise als Paare zu übertragen, da dies das Protokoll (sehr) vereinfacht hätte.

Daher die Einführung spezieller Namen für die zusätzlichen Informationen, die von den Anforderungs- und Antwortlinien mitgeführt werden. Diese zusätzliche Information ist in HTTP / 1.1 positionell, aber ein normales Paar in HTTP / 2, was HTTP / 2 in dieser Hinsicht homogener macht: Es trägt nur Paare. So sehr, dass der HTTP / 2-Frame, der Anforderungs- und Antwortinformationen enthält, derselbe ist und nur HEADERS .

Die Pseudo-Header-Namen wurden so gewählt, dass sie mit einem Doppelpunkt beginnen, da dies ein unzulässiges Zeichen für einen Header-Namen in HTTP / 1.1 wäre. HTTP / 1.1 verwendet keine Pseudo-Header-Namen.

    
sbordet 17.06.2015, 20:45
quelle