I was doing my testing with my own custom written http client (based on Java.net.Socket). In all tests, I sent a Accept-Encoding: gzip, deflate header.
The data I was receiving back from my server was not compressed when using 3G, but it was compressed when I was using wifi (which doesn't cause any problems, I just have to decompress it manually as you suggested). This is why I was concerned that the data was not actually being compressed over the air. If I'm not using the "Android HTTP stack", and I see uncompressed data from the socket's inputstream, does that mean the data was actually transmitted uncompressed over the air? Or is there some other compression/decompression layer when using a 3G connection that has been abstracted away from the SDK? Jean-Baptiste Queru wrote: > The compression is standard HTTP compression when seen from the client. > > As I understand (but I'm not an authority in this domain), if you use > the Android HTTP stack, the decompression will happen transparently > for you. > > If you're rolling out your own HTTP code you'll have to do the > decompression yourself, but the proxy should only send you compressed > data if you advertise that you support it (in your request headers), > and you should advertise it if you don't support it. > > JBQ > > On Wed, Dec 3, 2008 at 2:16 PM, melody <[EMAIL PROTECTED]> wrote: > > > > Hi Jean-Baptiste Queru, > > > > Thanks for the info. Just wanted to clarify a minor point. > > > > When you say that the data is compressed when it is sent over the air, > > are you saying that the compression and decompression happens at a > > layer that I never see? Is the Android OS handling the decompression > > of the incoming data that so that when I look at it in the SDK, it's > > already decompressed for me? > > > > Thanks. > > > > > > > > Jean-Baptiste Queru wrote: > >> It's actually not uncommon in the cell world to turn off compression > >> on the public Internet, so that the proxy can have an easier time > >> looking at the data and processing it to send it over the air (where > >> it is compressed), i.e. trading Internet bandwidth for some CPU time > >> on the proxy. > >> > >> JBQ > >> > >> On Tue, Nov 25, 2008 at 10:53 AM, melody <[EMAIL PROTECTED]> wrote: > >> > > >> > Thanks. I ran the test in the emulator, and the http compression was > >> > kept. So this does indeed seem to be a problem being caused by a > >> > proxy at T-Mobile. > >> > > >> > Not to be overly dramatic, but isn't this a pretty serious issue? I > >> > would think that under 3G, T-Mobile would very much want us all to be > >> > using HTTP compression so that we don't flood their network. Even on > >> > my home broadband connection, when I turn off http compression in my > >> > browser to do testing work, most websites load much more slowly, > >> > especially with the massive css/js files being transmitted these > >> > days. > >> > > >> > Something else that may or may not be related: > >> > I noticed that the T-Mobile proxy is also converting my http request > >> > to a "HTTP 1.0" request, whereas I am actually trying to send a "HTTP > >> > 1.1" request. > >> > > >> > > >> > > >> > > >> > David Turner wrote: > >> >> The best way to test this is try to run your test from the emulator, > >> >> since > >> >> the browser > >> >> wouldn't then use an intermediate T-Mobile proxy. > >> >> > >> >> On Tue, Nov 25, 2008 at 12:27 AM, melody <[EMAIL PROTECTED]> wrote: > >> >> > >> >> > > >> >> > I've been working on improving the speed of my application and noticed > >> >> > that when I turn off wifi and use the 3G connection, http requests no > >> >> > longer use http compression. > >> >> > > >> >> > Specifically, when using the 3G connection, the "Accept-Encoding" > >> >> > header (which I have set to "gzip, deflate") are stripped off before > >> >> > the request arrives at my server. I tested this with the HttpClient > >> >> > class, and with my own custom http client through java.net.Socket. > >> >> > > >> >> > I then also verified this using the native android web browser. With > >> >> > wifi turned on, my server recieves a header "Accept-Encoding: gzip". > >> >> > With wifi turned off, and using the 3G connection, my server does not > >> >> > receive that header. > >> >> > > >> >> > I initially thought this might be an intentional behavior as part of > >> >> > 3G connections, but then I tested it with a 3G iphone (on AT&T), and > >> >> > there was no such problem there. So I'm guessing it's a problem > >> >> > specific to T-Mobile. i wonder if there is some proxy that is > >> >> > intentionally stripping out this header. > >> >> > > >> >> > I'd appreciate any advice about this. For an XML-based web service > >> >> > like mine where the response data has a high compression ratio, this > >> >> > behavior causes a significant speed hit. > >> >> > > >> >> > > > >> >> > > >> > > > >> > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---