Dynamische Komprimierung aktivieren

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), Scripts (JavaScript) und Videomanifeste (HLS/DASH) beschleunigt. Das kann die Seitenladezeit und die Startzeiten von Videos erheblich reduzieren.

Große Live-Videoplaylists (Manifeste) haben eine beträchtliche Menge an wiederholten Daten und Abrufen, einschließlich des Host- und Pfadpräfixes der einzelnen Segmente sowie der HLS- oder DASH-Wiedergabemetadaten. 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. Die HLS- und DASH-Listen werden häufig insgesamt 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, vor der Bereitstellung komprimiert werden, wenn der Client einen der unterstützten Komprimierungsalgorithmen (br oder gzip) akzeptiert.

Media CDN fügt allen Antworten, die komprimiert werden können, einen Vary: Accept-Encoding-Header hinzu. Weitere Informationen finden Sie unter Nicht komprimierbare Inhalte.

Wenn der Accept-Encoding-Header der Anfrage eine Präferenz für komprimierte Inhalte angibt, indem br oder gzip angegeben wird (und optional ein nicht nullwertiger q-Parameter 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 gesendet werden kann, da die vollständige Inhaltslänge erst bekannt ist, wenn die gesamte Antwort komprimiert wurde. Bei HTTP/1.1 und niedriger verwendet Media CDN Transfer-Encoding: chunked in der Antwort, wenn Content-Length nicht verwendet wird.

    Nachdem eine Antwort komprimiert und im Cache gespeichert wurde, kann Media CDN den Content-Length-Header in nachfolgende Antworten aufnehmen und den Wert auf die Länge des komprimierten Inhalts festlegen.

  • Legt Accept-Ranges auf none fest. Dadurch werden Clients darüber informiert, dass Bereichsanfragen für diese Ressource ignoriert werden.

  • Alle starken ETag-Antwortheader werden gemäß RFC 9110, Abschnitt 8.8.3 schwächen. Beispiel: ETag: "xyzzy" wird durch ETag: W/"xyzzy" ersetzt.

  • Hiermit wird der Content-Encoding-Header auf br oder gzip festgelegt, was für den ausgewählten Komprimierungsalgorithmus steht.

    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 im Accept-Encoding-Header haben.

    • HLS-Manifeste werden nur mit gzip komprimiert.

    Media CDN bestimmt die Komprimierungsstufe, um die Gesamtgröße des Downloads und die CPU-Kosten auf dem Client auszugleichen. Höhere Komprimierungsstufen profitieren nicht immer von der Leistung, insbesondere auf Mobilgeräten mit geringerer Leistung.

Dynamische Dekomprimierung konfigurieren

Sie können die dynamische Komprimierung für Routen aktivieren, über die Anfragen gesendet werden.

Hinweise

Gehen Sie dazu so vor:

Dynamische Komprimierung für eine Routenregel aktivieren

Der Komprimierungsmodus für eine Routenregel ist standardmäßig deaktiviert.

Wenn Sie den Modus auf „Automatisch“ festlegen, wird die dynamische Komprimierung für jede infrage kommende Antwort aktiviert. Außerdem wird Media CDN angewiesen, automatisch den besten Komprimierungsalgorithmus auszuwählen.

So aktivieren Sie die dynamische Komprimierung:

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Namen des Dienstes, um die Seite Details des Dienstes zu öffnen, für den Sie eine Routenregel konfigurieren möchten.

  3. Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.

  4. Klicken Sie auf Weiter, um zum Abschnitt Routing zu gelangen.

  5. Wenn Sie eine Hostregel bearbeiten möchten, klicken Sie auf den Pfeil, um sie zu maximieren.

  6. Wenn Sie eine Routenregel bearbeiten möchten, klicken Sie in der entsprechenden Zeile auf Bearbeiten.

  7. Klicken Sie im Bereich Routingregel bearbeiten auf Erweiterte Konfigurationen.

  8. Optional: Fügen Sie unter Routenaktion ein Element für die CDN-Richtlinie hinzu.

    Mit einer CDN-Richtlinie kann Media CDN Inhalte einmal komprimieren und mehrmals bereitstellen. So wird Bandbreite gespart und die Bereitstellung beschleunigt.

  9. Wählen Sie im Bereich Dynamische Komprimierung die Option Komprimierung aktivieren aus.

  10. Klicken Sie auf Speichern, um die Routenregel zu speichern.

  11. Klicken Sie auf Dienst aktualisieren, um die Änderungen am Dienst zu speichern.

gcloud und YAML

  1. Exportiere die Media CDN-Konfiguration in eine YAML-Datei. Führen Sie den Befehl gcloud edge-cache services export aus.

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: der Name Ihres Dienstes
    • FILENAME : der Name der YAML-Datei
  2. Legen Sie in der Routendefinition in der YAML-Datei unter routeAction den Wert compressionMode auf AUTOMATIC fest, 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: AUTOMATIC
    
  3. Wenn du den Dienst aktualisieren möchtest, importiere die Media CDN-Konfiguration aus der YAML-Datei. Führen Sie den Befehl gcloud edge-cache services import aus.

    gcloud edge-cache services import SERVICE_NAME \
        --source=FILENAME.yaml
    

Ihre Konfiguration wird kurz darauf an alle Edge-Standorte übertragen.

Wenn die dynamische Komprimierung für eine Route aktiviert ist und die neue Konfiguration auf Produktionsmaschinen wirksam wird, beginnt Media CDN, infrage kommende Antworten zu komprimieren, auch wenn unkomprimierte Cache-Versionen vorhanden sind. Während das Media CDN neue Inhalte abruft und komprimiert, kann es zu einem vorübergehenden Anstieg der Zugriffe auf deinen Ursprung kommen.

Dynamische Komprimierung für eine Routenregel deaktivieren

So deaktivieren Sie die dynamische Komprimierung:

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Media CDN auf.

    Zum Media CDN

  2. Klicken Sie auf den Namen des Dienstes, um die Seite Details des Dienstes zu öffnen, für den Sie die Routenregel konfigurieren möchten.

  3. Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.

  4. Klicken Sie auf Weiter, um zum Abschnitt Routing zu gelangen.

  5. Wenn Sie eine Hostregel bearbeiten möchten, klicken Sie auf den Pfeil, um sie zu maximieren.

  6. Wenn Sie eine Routenregel bearbeiten möchten, klicken Sie in der entsprechenden Zeile auf Bearbeiten.

  7. Klicken Sie im Bereich Routingregel bearbeiten auf Erweiterte Konfigurationen.

  8. Heben Sie im Abschnitt Dynamische Komprimierung die Auswahl der Option Komprimierung aktivieren auf.

  9. Klicken Sie auf Speichern, um die Routenregel zu speichern.

  10. Klicken Sie auf Dienst aktualisieren, um die Änderungen am Dienst zu speichern.

gcloud und YAML

  1. Exportiere die Media CDN-Konfiguration in eine YAML-Datei. Führen Sie den Befehl gcloud edge-cache services export aus.

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: der Name Ihres Dienstes
    • FILENAME : der Name der YAML-Datei
  2. Legen Sie in der Routendefinition in der YAML-Datei compressionMode auf DISABLED fest.

  3. Wenn du den Dienst aktualisieren möchtest, importiere die Media CDN-Konfiguration aus der YAML-Datei. Führen Sie den Befehl gcloud edge-cache services import aus.

    gcloud edge-cache services import SERVICE_NAME \
        --source=FILENAME.yaml
    

Wenn bei einem bestimmten Pfad Probleme mit der dynamischen Komprimierung auftreten, z. B. Kompatibilitätsprobleme mit bestimmten Clients (z. B. Smart-TVs oder Streaminggeräte), kannst du die dynamische Komprimierung deaktivieren, damit das Media CDN keine komprimierten Inhalte über diesen Pfad 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, die auf dem HTTP-Antwortheader Content-Type basieren. 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-Playlisten: application/x-mpegURL oder application/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
Schemaabgleich 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 aufweisen, 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 enthält 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 die Antwort bereits vom Ursprung komprimiert wurde. Daher darf das Media CDN keine zusätzliche dynamische Komprimierung vornehmen.
  • Die Antwort ist kleiner als 1 KiB.

    Die Zeit, die für das Komprimieren und Dekomprimieren aufgewendet wird, verschiebt häufig alle Vorteile. Außerdem gibt es weniger Inhalte, die komprimiert werden können, wodurch die Effektivität der Komprimierung reduziert werden kann und ein niedrigeres Komprimierungsverhältnis sein kann.

  • Die Antwort ist größer als 1 MiB.

    Media CDN komprimiert Antworten auf die Größe, die für das Caching von Objekten ohne Bytebereich-Caching zulässig ist.

  • Die Antwort hat einen Cache-Control: no-transform-Header.

  • Die Antwort enthält einen Vary: Accept-Encoding-Header. Das bedeutet, dass keine dynamische Komprimierung erforderlich ist, da der Ursprung die Antwort komprimieren kann.

Logging und Monitoring

Wenn die Komprimierung aktiviert ist, wird der komprimierte Antwortumfang vom vorhandenen Messwert https/response_bytes_count unter edgecache.googleapis.com/EdgeCacheRouteRule erfasst. Bei komprimierbaren Inhalten ist mit einem Rückgang der Gesamtantwortbyte und des ausgehenden Datenübertragungsdurchsatzes zu rechnen.

Die Media CDN-Logs enthalten das Feld compressionAlgorithmApplied in jsonPayload, das angibt, ob die Antwort vom Load Balancer komprimiert wurde sowie den Komprimierungstyp.

{
  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, beruhen die entsprechenden Kosten für ausgehende Cache- oder Internetdatenü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.

Nächste Schritte