Ответ 1
Будет ли браузер автоматически gzip-кодировать ваши данные для вас? Короткий ответ...
HAAHAHAAahahahahahhaha.
Долгий ответ заключается в том, что некоторые пользовательские агенты могут делать такие вещи, но вы определенно не можете полагаться на него. Состояние apache mod_deflate:
некоторые специальные приложения действительно поддерживают сжатие запросов, например, некоторые клиенты WebDAV.
Итак, нет, это не сработает. Вам нужно будет создать соответствующее сообщение HTTP-запроса самостоятельно. Соответствующий заголовок в этом случае равен Content-Encoding: gzip
и NOT Content-Type:
, поскольку сам контент application/json
, вы просто хотите кодировать тело сущности вашего сообщения HTTP-запроса для транспорта.
Обратите внимание, что вам нужно также добавить соответствующий заголовок Content-Length:
, определяющий размер в байтах тела объекта сообщения после сжатия -OR- отправить ваше HTTP-сообщение с помощью Transfer-Encoding: chunked
и отказаться от спецификации длины содержимого.
На принимающей стороне вы можете указать mod_deflate
использовать фильтр ввода для распаковки информации:
<Location /dav-area>
SetInputFilter DEFLATE
</Location>
Это немного тяжело, если вы получаете только сжатые тела сообщений для нескольких ресурсов. Вместо этого вы, вероятно, должны просто использовать клиентскую сторону script для проверки заголовка Content-Encoding: gzip
и вручную распаковать тело запроса. Как это сделать, скажем, PHP, это еще один вопрос. Если вам нужны детали для этого, вы должны отправить еще один вопрос.