2013-11-21 10 views
11

Wir haben vor Kurzem auf unserer Website einen Fehler behoben, der dem in How to stop javascript injection from vodafone proxy? beschriebenen ähnlich ist - im Grunde hat das Vodafone-Mobilfunknetz unsere Seiten im Transit zerstört und Änderungen am JavaScript vorgenommen, die Viewmodels durchbrochen haben.Gibt es einen Grund, die Überschrift "Cache-Control: no-transform" nicht auf jede Seite zu setzen?

Hinzufügen eines Headers "Cache-Control: no-transform" auf der Seite, bei der das Problem aufgetreten ist, behoben, das ist großartig.

Wir sind jedoch besorgt, dass wir, wenn wir mehr Client-seitige Entwicklung mit JavaScript MVP-Techniken machen, es vielleicht wieder sehen.

Gibt es einen Grund, diese Kopfzeile nicht zu jeder Seite hinzuzufügen, die von unserer Seite angeboten wird?

Gibt es nützliche Transformationen, die dies verhindern wird? Oder sind es im Grunde genommen nur ähnliche Beispiele von Trägern, die harmlose Versuche machen, Dinge zu minimieren und sie dabei möglicherweise zu brechen?

Antwort

12

Die Gründe, diesen Header nicht hinzuzufügen, sind Geschwindigkeit und Datenübertragung.

Einige Proxy/CDN-Dienste kodieren die Medien. Wenn Ihr Client hinter einem Proxy oder einen CDN-Dienst verwendet, erhält der Client möglicherweise eine höhere Geschwindigkeit und weniger Datenübertragungen. Dieser Header bestellt tatsächlich Proxy/CDN - nicht um die Medien zu verschlüsseln und die Daten unverändert zu belassen.

Also, wenn Sie sich nicht darum kümmern, oder Ihre App nicht viele Dateien wie Bilder oder Musik verwenden, oder Sie möchten keine Codierung für Ihre Datenverkehr, gibt es keinen Grund, dies nicht zu tun (und die gegenüber, empfohlen zu).

Siehe RFC hier: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5

+0

Wenn die HTML-Seite wird die 'Cache-Control hatte serviert: no-transform' Header, aber keine Bilddateien von ihm verbunden * nicht *, wäre das Proxies ermöglichen die Bilder transformieren? Ich gehe davon aus. – Carson63000

+1

Sie haben absolut recht. Wenn Sie mit diesem Header nur das html/javascript bereitstellen können und möchten, können die anderen Ressourcen die Codierung per Proxy zulassen. es einfach mit '.htaccess' zu erreichen, können Sie bestimmte Dateitypen definieren, um ihre Kopfzeile festzulegen. – MeNa

+5

Es macht einen großen Unterschied im Falle von Bildern: http://calendar.perfplanet.com/2013/mobile-isp-image-recompression/ – Kornel

8

Google hat vor kurzem den Dienst googleweblight aufgenommen hat also, wenn Ihre Seiten die hat: Richtlinie Header „Cache-Control nicht-transform“ Sie werden Opting-out von Umcodieren Ihrer Seite in Falls die Verbindung von einem mobilen Gerät mit langsamer Internetverbindung kommt.

Mehr Infos hier: https://support.google.com/webmasters/answer/6211428?hl=en

+0

Die wichtigste Nachricht von Google ist möglicherweise Auswirkungen auf SEO durch Hinzufügen dieser Kopfzeile: " Bitte beachten Sie, dass Seiten, die die Transcodierung ablehnen, in den Suchergebnissen gekennzeichnet werden, um Benutzern anzuzeigen, dass sie länger zum Laden benötigen und möglicherweise mehr Daten verwenden. " –

+0

Richtig, hier steht auch: https://developer.chrome.com/multidevice/data-compression – davidtaubmann