Как мне сообщить веб-серверу, что я отправляю сжатые данные? - PullRequest
4 голосов
/ 03 марта 2012

У меня есть клиент, который будет публиковать большие файлы JSON на сервере API. Поскольку файлы настолько сжимаемы, я бы хотел сжать их и отправить сжатые данные.

Что я хотел бы знать: каков наилучший способ сообщить о своем намерении серверу?

По сути, я хочу использовать обратное значение Accept-encoding, чтобы сервер обрабатывал данные только как сжатые для транспортных целей и автоматически распаковывал данные перед их интерпретацией в соответствии с Content-Type.

Это означает, что я не могу установить для поля Content-Type значение application/gzip, поскольку оно должно быть application/json, чтобы сервер мог понять, что такое истинная кодировка несжатых данных.

Content-Transfer-Encoding выглядит так, как будто бы он служил моим целям, но был построен с учетом электронной почты и поддерживает только 7bit, quoted-printable, base64, 8bit и binary.

Существует ли прозрачное сжатие / декомпрессия для HTTP-транспорта от клиента к серверу? А если нет, каковы наилучшие методы для достижения того, чего я пытаюсь достичь?

1 Ответ

2 голосов
/ 03 марта 2012

"Обратный" заголовок Accept-encoding равен Content-encoding.Это сигнализирует серверу, что контент распакован:

Content-encoding: gzip

Вы правы, что для этого не следует использовать заголовок Content-type, поскольку сжатие gzip зависит только от способа запросазакодирован, а не то, что он представляет.

...