• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь POST запрос, регистрация платы esp32s[Node32s]

Алексей.

Active member
А где символы от 'chunked' и как совокупляются 'Content-Length: 40', 'chunked' и chunked + GZIP On по умолчанию у HTTP/1.1?
Accept-Encoding - в запросе информирует сервер о том какие кодировки сущностей клиент может принять в ответе
Content-Length - вы сами знаете что

все приложения работающие по http/1.1 должны безусловно поддерживать chunked, по какой причине в библиотеке клиента добавили chunked, комментариев нет
Код:
if(!_useHTTP10) {
 header += F("Accept-Encoding: identity;q=1,chunked;q=0.1,*;q=0\r\n");
}
а последняя там 'Content-Length: 40', которая отменяет 'chunked'.
Могла бы отменить Transfer-Encoding: chunked но его там нет

Ответ придет загадочный – должен быть сжат GZIP или с 'chunked', т.к. указан HTTP/1.1
Сервер не должен отдавать сжатые сущности потому как в запросе у Accept-Encoding не было gzip;
 

pvvx

Активный участник сообщества
Могла бы отменить Transfer-Encoding: chunked но его там нет.
'Content-Length: 40' отменяет chunked в данном констексте, а не везде. Transfer-Encoding не отменяет default установки, если не описывает их конкретно.
Сервер не должен отдавать сжатые сущности потому как в запросе у Accept-Encoding не было gzip;
Было - HTTP/1.1
Gzip, chunked, keep-alive = On.

C gzip более сложная ситуация, т.к. стандарт промышленный и рекомендательный, а не научный, что говорит о том, что является стандартом на cегодня, на то, что сделано и чаще происходит у большего кол-ва. :)
С мелкими сообщениями вам просто везет - сервер должен сравнить, что выходит меньше - в gzip или несжатый малый фрагмент. На самом деле там такого анализа нет, а производится сравнение типа, если более X байт, то сжимаем.
А так-же почему серверу не ответить в формате мультидата? И воспримет ли её тот софт на ESP-32, как и все лейблы шрифтом в верхнем регистре, что отдают до 20% серверов? :)
Проблем меньше только от того, что используемые сервера специально заточены на запросы пользователей таких устройств...
 
Последнее редактирование:

Алексей.

Active member
Ответ ТС и получил в виде "абракадабры" :)
получал вполне внятные 4-х сотки

Оно отменяет chunked в данном констексте, а не везде.
отменять нечего было, в акцепте клиент сообщал что он может принять чанкед а не говорил что он отправляет чанкед сущность

gzip как и keep-alive были добавлены в http/1.1 но клиенты и серверы могут их не поддерживать
 

pvvx

Активный участник сообщества
gzip как и keep-alive были добавлены в http/1.1 но клиенты и серверы могут их не поддерживать
Могут, но это не вина сервера. Пусть сообщат, что не могут, изменив запрос.
ПДД тоже меняют и несогласование со старыми вариантами не спасет вас от штрафа :)
В инет много публикаций на счет проверки на текущие варианты стандартов серверов HTTP. Обычно не более половины их выполняет...
RFC и пытается согласовать все эти неурядицы для большинства. Так и образуются новые варианты.
А устройство вы делаете не на вечер. Тут надо применять только то, что однозначно и уже устоялось.
(а не сочинять какие-то директивы серверу из последних RFC)
Первоапрельские RFC — Википедия
Мои Web-свалки частично поддерживают HTCPCP — Википедия
«I’m a teapot» github - Поиск в Google

По всему этому запроса HTTP/1.0 для данных поделок, будет достаточно, чтобы не вызвать непонятный ответ сервера...
Если он отказывается работать на 1.0, то тогда придется подбирать директивы, что его устраивают и дают ответ, который может распознать текущее ПО на ESP-32 :)
 
Последнее редактирование:

Алексей.

Active member
pvvx, Вы хотите сказать что библиотеки ардуины это говнокод? Я и не сомневаюсь в этом, так называемым "разработчикам" библиотек наплевать на стандарты кодирования, к разработчикам сдк это тоже относится. В примере TS в запросе был какойто фарш, я выкинул лишнее и показал что уходит в запросе. Если у вас есть лучший ответ, предложили бы.
 

pvvx

Активный участник сообщества
pvvx, Вы хотите сказать что библиотеки ардуины это говнокод? Я и не сомневаюсь в этом, так называемым "разработчикам" библиотек наплевать на стандарты кодирования, к разработчикам сдк это тоже относится.
Я не про то. Сервер тоже может поступать как ему заблагорассудится (ну как его там настроили).
В примере TS в запросе был какойто фарш, я выкинул лишнее и показал что уходит в запросе. Если у вас есть лучший ответ, предложили бы.
Указал вроде - HTTP/1.0 и всё остальное выкинуть :)
 
Сверху Снизу