Вы не сказали, но давайте предположим, что это HTTP-соединение.
Короче говоря, они делают это для экономии пропускной способности.3G не бесплатен!
Если вы напрямую запрашиваете ресурсы (GET), то вы находитесь во власти всех посредников, которые обрабатывают ответ HTTP (т.е. прокси, шлюзы), и вы можете быть уверены, что они могутпосмотрите MIME-тип в заголовках и ведите себя соответственно.
Вы можете попробовать использовать заголовок HTTP Accept
в своем запросе и использовать параметр q
, чтобы "намекнуть", что вы хотите максимальной точности.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Accept: image/png;q=1
q
варьируется от 0 до 1. Возможно, вам удастся уйти с меньшим значением (чем 1).Пожалуйста, прочитайте связанный раздел для более подробной информации.
Вы также можете проверить входящий заголовок Content-Type
;это может показать, есть ли "объявленное" изменение в качестве или даже тип MIME.Возможно, он говорит вам, что он сделал!
Было бы замечательно, если бы «стандарт» выполнил за вас свою работу!
Если это не сработало, и вы контролируетена стороне сервера, используйте для него альтернативную текстовую кодировку, например Base64, которую посредники не могут «сжать» для вас.SOAP делает это с тех пор!
Если вам действительно нужно обойти сжатие изображений, а Accept
не работает, вы должны прокси-запросы такого рода самостоятельно и перекодировать их с не-image MIME-тип в ответе.
Если вы идете по маршруту само-прокси, вы, вероятно, можете избежать вызова ваших изображений application/octect-stream
, который является типом MIME для "неинтерпретируемых байтов".Это позволило бы более-менее передавать данные и, как мы надеемся, не позволяло посредникам «помогать» от ваших вещей!