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 CDNTransfer-Encoding: chunked
in der Antwort, wennContent-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
aufnone
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 durchETag: W/"xyzzy"
ersetzt.Hiermit wird der
Content-Encoding
-Header aufbr
odergzip
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 imAccept-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:
Identifizieren oder erstellen Sie einen Media CDN-Ursprung mit komprimierbaren Inhalten, die bereit für die Bereitstellung sind.
Erstellen oder identifizieren Sie einen Media CDN-Dienst mit mindestens einer Routingregel.
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
Rufen Sie in der Google Cloud -Konsole die Seite Media CDN auf.
Klicken Sie auf den Namen des Dienstes, um die Seite Details des Dienstes zu öffnen, für den Sie eine Routenregel konfigurieren möchten.
Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.
Klicken Sie auf Weiter, um zum Abschnitt Routing zu gelangen.
Wenn Sie eine Hostregel bearbeiten möchten, klicken Sie auf den Pfeil, um sie zu maximieren.
Wenn Sie eine Routenregel bearbeiten möchten, klicken Sie in der entsprechenden Zeile auf
Bearbeiten.Klicken Sie im Bereich Routingregel bearbeiten auf Erweiterte Konfigurationen.
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.
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
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 DienstesFILENAME
: der Name der YAML-Datei
Legen Sie in der Routendefinition in der YAML-Datei unter
routeAction
den WertcompressionMode
aufAUTOMATIC
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
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
Rufen Sie in der Google Cloud -Konsole die Seite Media CDN auf.
Klicken Sie auf den Namen des Dienstes, um die Seite Details des Dienstes zu öffnen, für den Sie die Routenregel konfigurieren möchten.
Klicken Sie auf die Schaltfläche Bearbeiten, um in den Bearbeitungsmodus zu wechseln.
Klicken Sie auf Weiter, um zum Abschnitt Routing zu gelangen.
Wenn Sie eine Hostregel bearbeiten möchten, klicken Sie auf den Pfeil, um sie zu maximieren.
Wenn Sie eine Routenregel bearbeiten möchten, klicken Sie in der entsprechenden Zeile auf
Bearbeiten.Klicken Sie im Bereich Routingregel bearbeiten auf Erweiterte Konfigurationen.
Heben Sie im Abschnitt Dynamische Komprimierung die Auswahl der Option Komprimierung aktivieren auf.
Klicken Sie auf Speichern, um die Routenregel zu speichern.
Klicken Sie auf Dienst aktualisieren, um die Änderungen am Dienst zu speichern.
gcloud und YAML
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 DienstesFILENAME
: der Name der YAML-Datei
Legen Sie in der Routendefinition in der YAML-Datei
compressionMode
aufDISABLED
fest.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
oderapplication/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.