Что означает HTTP2xx при приёме полевой телеметрии
Шлюз отправил пакет архива и получил успешный HTTP ответ. Прежде чем удалить локальную копию, нужно знать, какую ответственность принял сервис. Ответ может относиться к завершённой операции либо к постановке в обработку согласно конкретному контракту. Для хозяйства важна подтверждённая сохранность измерений, а не только отсутствие сетевой ошибки.
Прочитать контракт конечной точки
RFC9110 определяет семантику HTTP ответов успешного класса. (IETF — RFC9110 HTTP Semantics) Прикладное значение конкретной операции уточняется документацией сервиса. Запишите, какие статусы используются, что возвращается в теле и когда сервис считает записи принятыми. Не объявляйте любой ответ2xx автоматической гарантией записи в долговечный архив.
Если сервис отвечает после постановки задания, определите способ узнать итог. Это может быть документированный статус операции или другой предусмотренный механизм. Самостоятельное ожидание фиксированного времени не заменяет подтверждения, особенно при повышенной нагрузке или восстановлении сервера.
Определить единицу принятия
Для пакетной выгрузки выясните, принимается ли весь пакет целиком или возможен результат по отдельным записям. Сохраните идентичность каждого измерения. Одна ошибочная строка не должна исчезать из учёта только потому, что общий сетевой запрос завершился технически успешно.
На учебном наборе передайте две корректные записи и одну с намеренно неподдерживаемой схемой. Ожидаемый ответ согласуйте заранее. Проверьте, можно ли однозначно установить судьбу каждой строки, не читая серверную базу вручную и не угадывая по общему числу принятых событий.
Проверить потерю ответа
В безопасной среде воспроизведите случай, когда сервис завершил обработку, но клиент не получил результат. Повторная передача должна следовать согласованному правилу идентичности записей. Отсутствие ответа не доказывает отсутствие принятия, поэтому слепая повторная вставка может создать дубликаты.
Проверьте также перезапуск приёмного компонента по поддерживаемой программе испытания. Сопоставьте полученные подтверждения с фактически доступным архивом после восстановления. Это проверка конкретной реализации, а не утверждение, что HTTP сам определяет транзакцию всех внутренних хранилищ.
Связать очистку очереди с ответственностью
В шлюзе должно существовать понятное условие удаления локальной записи. Для неопределённого исхода предусмотрите отдельный статус и следующий шаг. Не превращайте временный сетевой успех в безусловную очистку единственной копии данных без подтверждённого контракта сервиса.
Приёмка завершается таблицей статусов и воспроизводимыми сценариями частичной ошибки, потери ответа и восстановления. Тогда хозяйство может объяснить путь каждого измерения и доказать, почему локальная копия была удалена, сохранена для повтора либо направлена на разбор с понятной причиной.