2013-11-21 14 views
11

Abbiamo recentemente corretto un fastidioso errore sul nostro sito web simile a quello descritto in How to stop javascript injection from vodafone proxy? - in pratica, la rete mobile Vodafone stava vandalizzando le nostre pagine in transito, apportando modifiche al codice JavaScript che ha rotto i modelli viewmodels.Qualche motivo per non aggiungere l'intestazione "Cache-Control: no-transform" ad ogni pagina?

Aggiunta di un'intestazione "Cache-Control: no-transform" alla pagina che stava riscontrando il problema risolto, il che è ottimo.

Tuttavia, siamo preoccupati del fatto che, mentre eseguiamo più sviluppo lato client utilizzando le tecniche JavaScript MVP, potremmo vederlo di nuovo.

C'è qualche motivo per non aggiungere questa intestazione ad ogni pagina pubblicata dal nostro sito?

Ci sono delle utili trasformazioni che ciò impedirà? O si tratta semplicemente di esempi simili di vettori che compiono tentativi di minare le cose e potenzialmente di romperle nel processo?

risposta

12

I motivi per non aggiungere questa intestazione sono le prestazioni di velocità e il trasferimento dei dati.

Alcuni servizi proxy/CDN codificano il supporto, quindi se il client si trova dietro un proxy o si sta utilizzando un servizio CDN, il client potrebbe ottenere maggiore velocità e spendere un trasferimento di dati più lento. Questa intestazione in realtà ordina proxy/CDN - non codificare il media e lasciare i dati così come sono.

Quindi, se non ti interessa, o la tua app non usa molti file come immagini o musica, o non vuoi alcuna codifica sul tuo traffico, non c'è motivo per non farlo (e opposto, consigliato a).

vedere la RFC qui: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5

+0

Se la pagina HTML viene servito ha avuto il 'Cache-Control: no-intestazione transform', ma i file di immagine collegati a esso ha * non *, vorrei che permetterà deleghe a trasformare le immagini? Sto assumendo così. – Carson63000

+1

Hai assolutamente ragione. se puoi e vuoi servire solo l'html/javascript con questa intestazione, le altre risorse consentirebbero la codifica per proxy. è facile da raggiungere con '.htaccess', puoi definire tipi specifici di file per impostare la loro intestazione. – MeNa

+5

Fa una grande differenza in caso di immagini: http://calendar.perfplanet.com/2013/mobile-isp-image-recompression/ – Kornel

8

Google ha recentemente incorporato la googleweblight servizio, quindi se le vostre pagine ha il "Cache-Control: no-transform" direttiva intestazione sarai opting-out dalla transcodifica tua pagina in caso la connessione proviene da un dispositivo mobile con connessione internet lenta.

Maggiori informazioni qui: https://support.google.com/webmasters/answer/6211428?hl=en

+0

Il messaggio chiave di Google è che potresti avere un impatto sulla SEO aggiungendo questa intestazione: " Tieni presente che le pagine che disattivano la transcodifica verranno etichettate nei risultati di ricerca per indicare agli utenti che potrebbero essere necessari più tempo per essere caricati e potrebbero utilizzare più dati. " –

+0

Corretto, è anche indicato qui: https://developer.chrome.com/multidevice/data-compression – davidtaubmann

Problemi correlati