Zum Hauptinhalt springen




Abrufen und Bereitstellen von SXG-Dateien und die Herausforderungen des Prefetch für sekundäre Ressourcen.

Als ein Signierte HTTP-Börsen (SXG) distribuidor, puede entregar archivos SXG en nombre de los creadores de Inhalt original. Los Browser Netz que admiten SXG mostrarán dichos archivos SXG como si fueran entregados por los creadores de contenido original. Esto le permite implementar la precarga entre sitios sin violar la privacidad. Esta guía le muestra cómo distribuir SXG correctamente.

Kompatibilität mit verschiedenen Browsern

Actualmente, Chrome es el único Browser que admite SXG. Consulte la sección Consenso y estandarización de Vom Ursprung signierter HTTP-Austausch für die aktuellsten Informationen.

Holen Sie sich SXG-Dateien

Geben Sie in Ihrem Akzeptieren encabezado de solicitud que desea que el Server devuelva un archivo SXG junto con la solicitud:

Accept: application/signed-exchange;v=b3,*/*;q=0.8

In diesem Handbuch wird davon ausgegangen, dass Sie Ihre SXG-Dateien in ablegen / var / www / sxg.

Dient einer einfachen SXG-Datei

Adjunte los siguientes Überschriften para distribuir un solo archivo SXG:

Content-Type: application/signed-exchange;v=v3
X-Content-Type-Options: nosniff

Einrichten Nginx:

http {
...
Typen {
application/signed-exchange;v=b3 sxg;
}
add_header X.-Inhalt-Type-Options nosniff;

location / {
more_set_headers "Content-Type: application/signed-exchange;v=b3";
alias /var/www/sxg/;
try_files $uri.sxg $uri =404;
autoindex aus;
}
...

Laden Sie die neue Konfiguration auf hoch Nginx:

sudo systemctl restart nginx.service

Nginx Es werden SXG-Dateien bereitgestellt. Wenn Chrome auf Ihren Server zugreift, wird die Adresse des ursprünglichen Inhaltsherstellers in der Leiste angezeigt.

Vorheriger Erwerb von Sekundärressourcen

La mayoría de las páginas web constan de múltiples subrecursos, como CSS, JavaScript, fuentes e imágenes. El contenido de SXG no se puede cambiar sin la clave privada del creador del contenido. Esto causa problemas cuando el navegador intenta resolver subrecursos.

Nehmen wir zum Beispiel an Index.html.sxg von https://website.test/index.html haben eine Verknüpfung zu https://website.test/app.js. Cuando el navegador de un Nutzername recibe el archivo SXG de https://distributor.test/example.com/index.html.sxgfinden Sie den Link zu https://website.test/app.js. Der Browser kann abrufen https://website.test/app.js direkt im eigentlichen Zugriff, sollte jedoch nicht in der Vorladephase erfolgen, um die Privatsphäre zu schützen. Wenn die Ressource während der Vorladephase abgerufen wurde, ist dies für den Inhaltsersteller möglich (website.test) um erkennen zu können, welcher Inhaltsverteiler (Distributor.test) fordert die Ressource an.

Linking-7369888

Wenn der Händler dienen möchte App.js.sxg von Ihrem eigenen Dienst und versuchen, zu ändern https://website.test/app.js die Distributor-Version dieser Subressource zu sein (wie https://distributor.test/website.test/app.js.sxg), provocará una discrepancia de firma y hará que el SXG no Sein válido.

umgeschrieben-5894715

Um dieses Problem zu lösen, gibt es jetzt in Chrome eine experimentelle Funktion zur Vorwiederherstellung untergeordneter SXG-Ressourcen. Sie können es aktivieren in: chrome://flags/#enable-sxg-subresource-prefetching. Um den Prefetch für sekundäre Ressourcen verwenden zu können, müssen die folgenden Bedingungen erfüllt sein:

  • Der Editor sollte einen Antwortheadereintrag in SXG einbetten, wie: Verknüpfung: ; rel = "Preload"; as = "script", ; rel = "erlaubt-alt-sxg"; Header-Integrität = "sha256-h6GuCtTXe2nITIHHpJM + xCxcKrYDpOFcIXjihE4asxk =". Dies gibt die Unterressource an, die den SXG-spezifischen Integritäts-Hash ersetzen kann.
  • Der Verteiler muss bei der Wartung des SXG einen Antwortheader anhängen, z. Verknüpfung: ; rel = "alternativ"; type = "Anwendung / signierter Austausch; v = b3"; anchor = "https: //website.test/app.js". Dies gibt den Pfad von an app.js. y entspricht der Unterressource.

Anker-9859234

Der erste ist da relativ einfach nginx-sxg-Modul Sie können Integritäts-Hashes berechnen und in Uplink-Antwortlink-Header einbetten. Die zweite ist jedoch schwieriger, da der Inhaltsverteiler die in der SXG angegebenen Unterressourcen kennen muss.

Wenn es keine anderen zusätzlichen Ressourcen als gibt https://website.test/app.jsDann müssen Sie in Ihrer Nginx-Konfiguration nur noch Folgendes hinzufügen:

add_header Verknüpfung <https://distributor.test/Webseite.test/App.js.sxg>;rel="alter...

Diese Fälle sind jedoch selten, da typische Websites aus einer großen Anzahl sekundärer Ressourcen bestehen. Darüber hinaus muss der Reseller bei der Übermittlung einer SXG-Datei den entsprechenden Ankerlink-Header anhängen. Derzeit gibt es keine einfache Möglichkeit, dieses Problem zu lösen. Halten Sie sich also auf dem Laufenden, um Updates zu erhalten!

Kommentar schreiben

Chromium-Ingenieure sind gespannt auf Ihre Kommentare zur SXG-Distribution unter [email protected]. Sie können auch beitreten die Spezifikationsdiskussionoder Melde einen technischen Fehler an das Team. Ihr Feedback ist eine große Hilfe im Standardisierungsprozess und hilft auch bei der Lösung von Implementierungsproblemen. Vielen Dank!