HTTP Via Header

Der HTTP-Header Via ist ein Request- und Response-Header, der alle Proxies und Gateways dokumentiert, die eine HTTP-Nachricht durchlaufen hat. Jeder Intermediary fügt seine Kennung hinzu, was vollständige Request-Path-Transparenz ermöglicht.

Typ

Request-Header, Response-Header

Syntax

Der Header listet alle Intermediaries mit Protokoll-Version und Kennung.

http
Via: 1.1 proxy.example.com
Via: 1.1 cache01, 1.0 proxy.internal:8080 (Apache/2.4)

Direktiven

Die Direktiven dokumentieren jeden Hop in der Proxy-Kette.

<protocol-version>
HTTP-Protokoll-Version des Intermediary, z.B. 1.1, 2.0, HTTP/2.
<received-by>
Hostname, Pseudonym oder IP-Adresse des Proxies/Gateways.
<comment>
Optional: Zusätzliche Information in Klammern, z.B. Software-Version oder Proxy-Typ.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den Via-Header.

Beispiel 1 Einfacher Proxy Hop

http
GET /api/data HTTP/1.1
Host: api.example.com
Via: 1.1 corporate-proxy.company.local

Request durchläuft Corporate-Proxy, Server sieht vollständigen Pfad für Debugging und Security-Analyse.

Beispiel 2 Multi Layer CDN Stack

http
HTTP/1.1 200 OK
Via: 1.1 varnish-edge (Varnish/7.0), 1.1 nginx-cache, 2.0 origin-lb
Content-Type: application/json

Response zeigt drei Caching-Layer: Varnish Edge, Nginx Cache und Origin Load Balancer mit HTTP/2.

Beispiel 3 Protokoll Downgrade Chain

http
GET / HTTP/1.1
Host: legacy.example.com
Via: 2.0 modern-proxy, 1.1 legacy-gateway:8080

Request startet mit HTTP/2, wird von modernem Proxy zu HTTP/1.1 Gateway downgegraded für Legacy-Backend.

Via Header Proxy Chain Flow

Via Header in Proxy Chain

Vorteile für die Systemarchitektur

  • Debugging und Tracing: Vollständige Sichtbarkeit der Request-Route für Fehleranalyse
  • Cache-Layer-Identifikation: Erkennung welcher Caching-Layer die Response geliefert hat
  • Protokoll-Version-Tracking: Überwachung von HTTP/1.1 zu HTTP/2 Upgrades in der Infrastruktur

Spezifikation

RFC 9110, Section 7.6.3 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-via

Weitere Spezifikationen

Forwarded Header, X-Forwarded-For Header