1) вероятно, можно сжимать сам http поток, тем же гзипом. но тут уж как смогут договориться между собой клиент и сервер.
2) если сжимать именно данные, то можно после сжатия делать base64 encode. Но это имеет смысл только в том случае, когда gzip уменьшает объем данных хотя бы на 25%, т.к. base64 увеличит их обратно на 33%.