Bei der dynamischen Komprimierung werden Antworten, die von Media CDN bereitgestellt werden, automatisch komprimiert. Die Größe der über das Netzwerk gesendeten Daten wird in den typischen Fällen um 60 bis 85 % reduziert.
Durch die Größenreduzierung wird der Download wichtiger Assets wie Stylesheets (CSS), Skripts (JavaScript) und Videomanifeste (HLS/DASH) beschleunigt, was den Seitenaufbau und die Startzeiten von Videos erheblich verkürzen kann.
Große Live-Video-Playlists (Manifeste) haben eine beträchtliche Menge an wiederkehrenden Daten und Abrufen, einschließlich des Präfixes aus Host und Pfad für jedes einzelne Segment sowie der HLS- oder DASH-Playlistmetadaten. Je schneller die Playlist geladen wird oder Aktualisierungen der Playlist heruntergeladen werden, desto weniger Zeit wartet ein Client auf das Parsen und das Herunterladen der referenzierten Videosegmente. Bei HLS- und DASH-Playlists wird die Gesamtgröße oft um mehr als 90 % reduziert.
Weitere Informationen zu den Vorteilen der Komprimierung von Antworten finden Sie im Web Fundamentals Leitfaden.
Funktionsweise der dynamischen Komprimierung
Wenn die dynamische Komprimierung aktiviert ist, können komprimierbare Inhalte
die vom Ursprung bereitgestellt werden, komprimiert werden, bevor sie gesendet werden, wenn der
Client einen der unterstützten Komprimierungsalgorithmen (br oder gzip) akzeptiert.
Media CDN fügt allen Antworten, die für die Komprimierung in Frage kommen, einen Vary: Accept-Encoding-Header hinzu. Weitere Informationen finden Sie unter
Nicht komprimierbare Inhalte.
Wenn der Accept-Encoding-Header der Anfrage außerdem eine Präferenz für komprimierte Inhalte angibt, indem br oder gzip angegeben wird (und optional ein q-Parameter ungleich null enthalten ist), führt Media CDN Folgendes aus:
Entfernt den
Content-Length-Header aus der Antwort. Dies ist erforderlich, damit die Antwort so schnell wie möglich bereitgestellt werden kann, da die vollständige Länge des Inhalts erst bekannt ist, wenn die gesamte Antwort komprimiert wurde. Bei HTTP/1.1 und früheren Versionen verwendet Media CDNTransfer-Encoding: chunkedin der Antwort, wennContent-Lengthnicht verwendet wird.Nachdem eine Antwort komprimiert und im Cache gespeichert wurde, kann Media CDN den
Content-Length-Header in nachfolgende Antworten einfügen und den Wert auf die Länge des komprimierten Textinhalts festlegen.Setzt
Accept-Rangesaufnone. Dadurch werden Clients darüber informiert, dass Bereichsanfragen für diese Ressource ignoriert werden.Schwächt alle starken
ETagAntwortheader gemäß RFC 9110, Abschnitt 8.8.3. Beispiel:ETag: "xyzzy"wird durchETag: W/"xyzzy"ersetzt.Setzt den
Content-Encoding-Header aufbrodergzip, was den ausgewählten Komprimierungsalgorithmus angibt.Media CDN wählt den besten Komprimierungsalgorithmus basierend auf dem erwarteten Komprimierungsverhältnis der Antwort und der Komprimierungsgeschwindigkeit oder dem Durchsatz aus.
Die Brotli-Komprimierung wird verwendet, wenn der Client sie unterstützt, auch wenn andere Komprimierungsalgorithmen höhere
q-Werte imAccept-Encoding-Header haben.HLS-Manifeste werden nur mit
gzipkomprimiert.
Media CDN bestimmt die Komprimierungsstufe, um die Gesamtgröße des Downloads und die CPU-Kosten auf dem Client auszugleichen. Höhere Komprimierungsstufen wirken sich nicht immer positiv auf die Leistung aus, insbesondere auf Mobilgeräten mit geringerer Leistung.
Dynamische Komprimierung konfigurieren
Sie können die dynamische Komprimierung für Routen aktivieren, die Anfragen verarbeiten.
Hinweis
Gehen Sie dazu so vor:
Ermitteln oder erstellen Sie einen Media CDN-Ursprung mit komprimierbaren Inhalten, die bereitgestellt werden können.
Ermitteln oder erstellen Sie einen Media CDN-Dienst mit mindestens einer Routenregel.
Dynamische Komprimierung für eine Routenregel aktivieren
Standardmäßig ist der Komprimierungsmodus für eine Routenregel deaktiviert.
Wenn Sie den Modus auf „Automatisch“ setzen, wird die dynamische Komprimierung für jede in Frage kommende Antwort aktiviert. Außerdem wird Media CDN angewiesen, automatisch den besten Komprimierungsalgorithmus auszuwählen.
So aktivieren Sie die dynamische Komprimierung:
Console
Rufen Sie in der Google Cloud Console die Seite Media CDN auf.
Klicken Sie auf den Namen des Dienstes, für den Sie eine Routenregel konfigurieren möchten, um die Seite Details zu öffnen.
Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.
Klicken Sie auf Weiter, um zum Bereich Routing zu wechseln.
Klicken Sie auf den Pfeil, um eine Hostregel zu maximieren und zu bearbeiten.
Klicken Sie in der entsprechenden Zeile auf „Bearbeiten“ Bearbeiten, um eine Routenregel zu bearbeiten.
Klicken Sie im Bereich Routenregel bearbeiten auf Erweiterte Konfigurationen.
Optional: Fügen Sie unter Routenaktion ein CDN-Richtlinien element hinzu.
Mit einer CDN-Richtlinie kann Media CDN Inhalte einmal komprimieren und mehrmals bereitstellen. So sparen Sie Bandbreite und beschleunigen die Bereitstellung.
Wählen Sie im Bereich Dynamische Komprimierung die Option Komprimierung aktivieren aus.
Klicken Sie auf Speichern, um die Routenregel zu speichern.
Klicken Sie auf Dienst aktualisieren, um die Änderungen am Dienst zu speichern.
gcloud und YAML
Exportieren Sie Ihre Media CDN-Konfiguration in eine YAML-Datei. Verwenden Sie den
gcloud edge-cache services exportBefehl.gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlErsetzen Sie Folgendes:
SERVICE_NAME: der Name Ihres DienstesFILENAME: der Name Ihrer YAML-Datei
Setzen Sie in der Routendefinition in der YAML-Datei unter
routeActiondie OptioncompressionModeaufAUTOMATIC, wie im folgenden Beispiel gezeigt:routing: hostRules: - hosts: - media.example.com pathMatcher: routes pathMatchers: - name: routes routeRules: - priority: 2 origin: origin1 matchRules: - pathTemplateMatch: "/**.m3u8" # HLS playlists - pathTemplateMatch: "/**.mpd" # DASH manifests routeAction: cdnPolicy: defaultTtl: 5s compressionMode: AUTOMATICImportieren Sie Ihre Media CDN-Konfiguration aus der YAML-Datei, um den Dienst zu aktualisieren. Verwenden Sie den
gcloud edge-cache services importBefehl.gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
Terraform
Das folgende Terraform-Snippet zeigt eine Routenregel, für die die dynamische Komprimierung aktiviert ist.
Ihre Konfiguration wird in Kürze an alle Edge-Standorte weitergegeben.
Wenn die dynamische Komprimierung für eine Route aktiviert ist und die neue Konfiguration auf den Produktionsmaschinen wirksam wird, beginnt Media CDN mit der Komprimierung in Frage kommender Antworten, auch wenn nicht komprimierte Versionen im Cache vorhanden sind. Während Media CDN neue Inhalte abruft und komprimiert, kann es zu einem vorübergehenden Anstieg des Traffics zu Ihrem Ursprung kommen.
Dynamische Komprimierung für eine Routenregel deaktivieren
So deaktivieren Sie die dynamische Komprimierung:
Console
Rufen Sie in der Google Cloud Console die Seite Media CDN auf.
Klicken Sie auf den Namen des Dienstes, für den Sie die Routenregel konfigurieren möchten, um die Seite Details zu öffnen.
Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.
Klicken Sie auf Weiter, um zum Bereich Routing zu wechseln.
Klicken Sie auf den Pfeil, um eine Hostregel zu maximieren und zu bearbeiten.
Klicken Sie in der entsprechenden Zeile auf „Bearbeiten“ Bearbeiten, um eine Routenregel zu bearbeiten.
Klicken Sie im Bereich Routenregel bearbeiten auf Erweiterte Konfigurationen.
Deaktivieren Sie im Bereich Dynamische Komprimierung die Option Komprimierung aktivieren.
Klicken Sie auf Speichern, um die Routenregel zu speichern.
Klicken Sie auf Dienst aktualisieren, um die Änderungen am Dienst zu speichern.
gcloud und YAML
Exportieren Sie Ihre Media CDN-Konfiguration in eine YAML-Datei. Verwenden Sie den
gcloud edge-cache services exportBefehl.gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlErsetzen Sie Folgendes:
SERVICE_NAME: der Name Ihres DienstesFILENAME: der Name Ihrer YAML-Datei
Setzen Sie in der Routendefinition in der YAML-Datei
compressionModeaufDISABLED.Importieren Sie Ihre Media CDN-Konfiguration aus der YAML-Datei, um den Dienst zu aktualisieren. Verwenden Sie den
gcloud edge-cache services importBefehl.gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
Wenn bei der dynamischen Komprimierung für eine bestimmte Route Probleme auftreten, z. B. Kompatibilitätsprobleme mit bestimmten Clients (z. B. Smart-TVs oder Streaminggeräten), deaktivieren Sie die dynamische Komprimierung, um zu verhindern, dass Media CDN komprimierte Inhalte auf dieser Route bereitstellt.
Wenn Sie die dynamische Komprimierung für eine Route deaktivieren, stellt Media CDN keine komprimierten Inhalte mehr aus dem Cache bereit. Alle zuvor im Cache gespeicherten komprimierten Antworten werden ungültig und das CDN ruft nicht komprimierte Versionen von Ihrem Ursprung ab.
Komprimierbare Inhaltstypen
Die dynamische Komprimierung gilt für die folgenden MIME-Typen, basierend auf dem Content-Type-HTTP-Antwortheader. Antworten ohne Content-Type-Header werden nicht komprimiert.
Zu den gängigen Inhaltstypen und ihren MIME-Typen gehören:
- HTML-Inhalt:
text/html - Stylesheets:
text/css - JavaScript:
application/javascript - JSON:
application/json - HLS-Playlists:
application/x-mpegURLoderapplication/vnd.apple.mpegURL - DASH-Manifeste:
application/dash+xml
In der folgenden Tabelle ist zusammengefasst, wie sich der MIME-Typ auf die Komprimierung auswirkt.
| Komprimierbare MIME-Typen | |
|---|---|
| Genaue Übereinstimmung |
application/csv application/javascript application/json application/json+protobuf application/signed-exchange application/wasm application/x-javascript application/x-nacl application/x-plist application/x-pnacl application/x-protobuf application/x-protobuffer application/x-sdch-dictionary application/xml audio/mpegURL font/eot font/otf font/ttf image/pwg-raster image/svg+xml image/vnd.microsoft.icon image/x-icon video/vnd.mpeg.dash.mpd |
| Musterübereinstimmung | application/*+json application/*+xml application/*mpegURL text/* |
Bild- und Videoformate (z. B. image/jpeg, image/png und video/mpeg4) sind fast immer komprimiert. Daher werden sie von Media CDN nicht komprimiert. Durch die erneute Komprimierung einer bereits komprimierten Antwort wird die Dateigröße selten reduziert. Außerdem können Clients ein unerwartetes Verhalten zeigen, wenn sie eine Antwort dieser Art erhalten.
Nicht komprimierbare Antworten
Media CDN komprimiert eine Antwort nicht, wenn die Antwort eine oder mehrere der folgenden Eigenschaften aufweist:
- Die Antwort hat keinen
Content-Type-Header, der einem komprimierbaren Inhaltstyp entspricht. - Die Antwort hat keinen
Content-Length-Header. - Die Antwort hat einen
Content-Encoding-Header. Das bedeutet, dass der Ursprung die Antwort bereits komprimiert hat. Daher darf Media CDN keine zusätzliche dynamische Komprimierung durchführen. Die Antwort ist kleiner als 1 KiB.
Die Zeit, die für das Komprimieren und Dekomprimieren aufgewendet wird, hebt häufig alle Vorteile auf. Außerdem gibt es weniger Inhalte, die komprimiert werden können, wodurch die Effektivität der Komprimierung reduziert werden kann, was zu einem niedrigeren Komprimierungsverhältnis führt.
Die Antwort ist größer als 1 MiB.
Media CDN komprimiert Antworten bis zu der Größe, die für das Caching von Objekten ohne Bytebereichs-Caching zulässig ist.
Die Antwort hat einen
Cache-Control: no-transform-Header.
Logging und Monitoring
Wenn die Komprimierung aktiviert ist, meldet der vorhandene https/response_bytes_count-Messwert unter edgecache.googleapis.com/EdgeCacheRouteRule die Größe der komprimierten Antwort. Sie sollten einen Rückgang der Gesamtantwortbyte und des Durchsatzes der ausgehenden Datenübertragung für komprimierbare Inhalte feststellen.
Die Media CDN-Logs enthalten das Feld compressionAlgorithmApplied in der jsonPayload, das angibt, ob die Antwort vom Load Balancer komprimiert wurde und welcher Komprimierungstyp ggf. verwendet wurde.
{
insertId: "1c02hw9g3gjay67"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
cacheId: "IAD-862d661f",
cacheStatus": "hit,stale",
compressionAlgorithmApplied: "br"
},
}
Abrechnung
Wenn eine Antwort von Media CDN komprimiert wird, basieren die entsprechenden Gebühren für ausgehende Cache- oder Internet-Datenübertragungen auf den endgültigen komprimierten Byte, die an den Client gesendet werden.
Wenn Sie eine große Menge komprimierbarer Antworten bereitstellen, kann dies zu einer Reduzierung der monatlichen Gebühren für ausgehende Datenübertragungen sowie zu einer höheren Leistung für Endnutzer führen.