If you are using connexion sharing on a 3G mobile network, you may have noticed that your web pages are sometime looking different when browsing from your home ADSL connexion or from your 3G mobile data connexion.
On 3G mobile network, some pictures may look ugly and some pages may even be completly broken. This happened to me when connected on Bouygues Telecom 3G mobile connexion to administrate some Joomla site. Administration was completly impossible, most of the pages giving unexpected errors or even remaining blank.
This comes from the fact that some ISP are using some stream compression technics to save some bandwidth on their mobile network. Not all ISP are doing so, but it is quite common nowadays, especially in the area where 3G networks are saturated.
This article explains how to get rid of these alterations and get back the unaltered web pages you are expecting from any neutral internet service provider. It deals with a client side approach (as a user) and a web site approach (as a webmaster).
With this setup, pages served from your home or office connexion and from your mobile data connexion should remain exactly the same.
1. How to detect ByteMobile Proxy Compression
You can easily detect that a page has been damaged by a Bytemobile alteration by inspecting its source code.
If you can see some links like :
your page has been modified on the fly using Bytemobile algorythm before being sent to your phone or laptop.
My french 3G mobile operator Bouygues Telecom is using it, but only on some parts of its network. After a quick analysis, I came to the conclusion that it uses this web page compression in heavy traffic zones like train stations, but not in the zones where traffic is lighter (suburbs, small cities, country side, ...).
2. How to Stop this Alteration
The official and most efficient solution to stop your mobile network operator from altering your web pages is to use aa official header value that stamps your web pages as not being able to accept any type of alteration.
When reading the Official W3C directives, it clealy states that a proxy must not do any type of transformation or alteration on pages when Cache-Control header is set to no-transform.
So we just need to setup this header to get rid of this plague ...
But, according to your need, there are 2 ways to do it :
- as a web user, you should configure your browser so that any page served to you is not altered
- as a webmaster, you should configure your web site so that everybody will get a nice and clean browsing experience on your site
2.1. On Firefox Side
As a internet user, you can configure Firefox to inject the header Cache-Control : no-transform for each and every page you visit. This will completly disable ByteMobile proxy compression for every site.
First thing is to install Modify Headers extension.
Next, you need to configure it to add the following rule :
- Action : Add
- Name : Cache-control
- Value : no-transform
The green dot at the end of the rule indicates that the rule is enabled.
With this setup active, your web pages should not be altered anymore. These on the fly modifications are part of the past.
If you are a webmaster or a publisher of a web site powered by Joomla, you should also now be able to administrate it from a mobile data connexion. Your site backend should not be broken anymore !
2.2. On Your Web Site
If you are a web site owner and you realized that your site pages are broken by ByteMobile compression technic, you may want to disable any type of compression for every visitors, even if they have not configured their browser as explained ealier.
You can do it very easily but adding the same header directive Cache-Control : no-transform for every page served by your web site.
If you are running Apache, you can do it by adding the following directive to your site's virtual host :
# disable any proxy transformation
Header set Cache-Control "no-transform"
You just need to restart apache for this configuration to become effective.
Pages alteration for users who are browsing your site from a mobile network should be over. They should now enjoy a complete and unaltered browsing experience on your site, whatever browser and configuration they have.
Hope it helps !