Closed leemuar closed 4 years ago
По умолчанию пользователю нужно получить данные и со сжатием это будет быстрее и экономнее для трафика. Несжатые данные нужны больше для целей отладки и т.п.
Сейчас отключить сжатие можно так
Изменить поведение по умолчанию:
заменить gzip
на identity
здесь
https://github.com/vbondarevsky/Connector/blob/master/src/CommonModules/%D0%9A%D0%BE%D0%BD%D0%BD%D0%B5%D0%BA%D1%82%D0%BE%D1%80HTTP/Ext/Module.bsl#L1909
Переопределить заголовок
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Encoding", "identity");
Результат = КоннекторHTTP.GetJson("http://httpbin.org/headers",, Новый Структура("Заголовки", Заголовки));
быстрее и экономнее для трафика
согласен, но при этом мы постоянно тратим процессорный ресурс клиента на распаковку ответа
быстрее и экономнее для трафика
согласен, но при этом мы постоянно тратим процессорный ресурс клиента на распаковку ответа
Если ответ маленький, то эти затраты незначительны. Если ответ большой, то сжатый он обработается быстрее и тем самым будут меньше затрат в целом. Ну и к тому же поведение по умолчанию очень легко изменить
Ну и к тому же поведение по умолчанию очень легко изменить
Согласен. Я предлагаю добавить еще более простой способ изменить это поведение (повысить уровень абстракции интерфейса для управления сжатием):
ввести дополнительный параметр для управления сжатием. Например, "СжиматьОтвет". По умолчанию он будет равен "Истина". При выполнении запроса со значением "Ложь" команда (заголовок) на сжатие серверу отправляться не будет:
Результат = КоннекторHTTP.PostJson("https://httpbin.org/post",, Новый Структура("СжиматьОтвет", Ложь));
Цель изменений - повысить удобство управления сжатием. Чтобы не нужно было вспоминать какой именно заголовок нужно установить и какое значение он должен иметь, чтобы сжатие отключить
Добавил в документацию как можно отключить сжатие https://github.com/vbondarevsky/Connector#gzip-%D0%B4%D0%B5%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%82%D0%B5%D0%BB%D0%B0-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0
Вопрос для обсуждения
При отправке любого запроса библиотека по-умолчанию шлет заголовок Accept-Encoding: gzip, т.е. всегда запрашивает у сервера сжатые данные. Имеет ли смысл делать такое действие по-умолчанию?
В текущей версии чтобы получить несжатые данные мне как пользователю библиотеки нужно предприниматься какие-то действия (какие?). Возможно, было бы удобно сделать так, чтобы по умолчанию этот заголовок не добавлялся. Возможно, сделать доп параметр, передача которого добавит заголовок при запросе:
П.С. Как в текущей версии отключить запрос на сжатие?