Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GZip-кодирование по-умолчанию #6

Closed
leemuar opened this issue Feb 19, 2019 · 5 comments
Closed

GZip-кодирование по-умолчанию #6

leemuar opened this issue Feb 19, 2019 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@leemuar
Copy link
Collaborator

leemuar commented Feb 19, 2019

Вопрос для обсуждения

При отправке любого запроса библиотека по-умолчанию шлет заголовок Accept-Encoding: gzip, т.е. всегда запрашивает у сервера сжатые данные. Имеет ли смысл делать такое действие по-умолчанию?

В текущей версии чтобы получить несжатые данные мне как пользователю библиотеки нужно предприниматься какие-то действия (какие?). Возможно, было бы удобно сделать так, чтобы по умолчанию этот заголовок не добавлялся. Возможно, сделать доп параметр, передача которого добавит заголовок при запросе:

Результат = КоннекторHTTP.PostJson("https://httpbin.org/post",, Новый Структура("СжиматьОтвет", Истина));

П.С. Как в текущей версии отключить запрос на сжатие?

@vbondarevsky
Copy link
Owner

По умолчанию пользователю нужно получить данные и со сжатием это будет быстрее и экономнее для трафика. Несжатые данные нужны больше для целей отладки и т.п.

Сейчас отключить сжатие можно так

  1. Изменить поведение по умолчанию:
    заменить 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

  2. Переопределить заголовок

Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Encoding", "identity");
Результат = КоннекторHTTP.GetJson("http://httpbin.org/headers",, Новый Структура("Заголовки", Заголовки));

@leemuar
Copy link
Collaborator Author

leemuar commented Feb 19, 2019

быстрее и экономнее для трафика

согласен, но при этом мы постоянно тратим процессорный ресурс клиента на распаковку ответа

@vbondarevsky
Copy link
Owner

быстрее и экономнее для трафика

согласен, но при этом мы постоянно тратим процессорный ресурс клиента на распаковку ответа

Если ответ маленький, то эти затраты незначительны. Если ответ большой, то сжатый он обработается быстрее и тем самым будут меньше затрат в целом.
Ну и к тому же поведение по умолчанию очень легко изменить

@leemuar
Copy link
Collaborator Author

leemuar commented Feb 21, 2019

Ну и к тому же поведение по умолчанию очень легко изменить

Согласен. Я предлагаю добавить еще более простой способ изменить это поведение (повысить уровень абстракции интерфейса для управления сжатием):

ввести дополнительный параметр для управления сжатием. Например, "СжиматьОтвет". По умолчанию он будет равен "Истина". При выполнении запроса со значением "Ложь" команда (заголовок) на сжатие серверу отправляться не будет:

Результат = КоннекторHTTP.PostJson("https://httpbin.org/post",, Новый Структура("СжиматьОтвет", Ложь));

Цель изменений - повысить удобство управления сжатием. Чтобы не нужно было вспоминать какой именно заголовок нужно установить и какое значение он должен иметь, чтобы сжатие отключить

@vbondarevsky vbondarevsky self-assigned this Apr 26, 2020
@vbondarevsky vbondarevsky added the enhancement New feature or request label Apr 26, 2020
@vbondarevsky
Copy link
Owner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants