ИТ-домой Согласно новостям от 19 июня, 16 июня по местному времени Internet Engineering Task Force (IETF) официально опубликовала стандартный документ RFC 10008, определяющий новый метод HTTP-запроса — QUERY.

Этот документ принадлежит к документу Internet Standards Track (Standards Track) и в настоящее время находится на стадии «Предлагаемый стандарт». Этот новый метод получил название «Метод HTTP QUERY».

Эта спецификация предоставляет веб-разработчикам и дизайнерам API стандартизированный способ обработки сложных запросов только для чтения, требующих запроса. Короче говоря, он заполняет давний пробел между методами GET и POST.

Обычные пользователи не увидят методы HTTP напрямую при просмотре веб-страниц, но эти методы всегда работают в фоновом режиме в браузерах, приложениях, API, менеджерах пакетов, инструментах командной строки и различных веб-сервисах. GET используется для запроса данных, POST используется для отправки данных, PUT и PATCH используются для обновления ресурсов, а DELETE используется для удаления. Однако, когда API необходимо отправить на сервер сложный запрос и при этом просто хочет получить данные без побочных эффектов, разработчики ранее сталкивались с двумя вариантами, которые не являются идеальными.

Первый — это метод GET, который подходит для сценариев запроса, где параметры просты и могут быть непосредственно закодированы в URL-адресе. Хотя он имеет четкую семантику и широко поддерживается, его параметры можно размещать только в URL-адресе. В RFC 10008 указывается, что это вызывает несколько проблем: URL-адреса имеют ограничения по длине, но конкретные значения неясны, некоторые структурированные данные сложно закодировать в URI, запрошенные URI с большей вероятностью будут протоколироваться или сохраняться в избранном, а каждая другая комбинация параметров запроса будет рассматриваться как независимый ресурс. Когда условия запроса становятся большими или вложенными, GET становится неэффективным.

Другой вариант — заимствовать метод POST. POST позволяет переносить тело запроса, поэтому его часто используют для передачи сложных условий запроса, таких как POST/фид с данными формы. Однако семантика POST не обещает, что запрос будет доступен только для чтения — его можно использовать для создания ресурса, обновления данных, запуска фоновой задачи, отправки формы или просто выполнения поиска. Сервер не может определить по самому методу, является ли запрос безопасным или он изменит состояние.

Метод QUERY предназначен для устранения этого пробела. Он используется аналогично POST — помещая параметры запроса в тело запроса вместо URL-адреса, тем самым нарушая ограничение длины URI GET. Но семантически QUERY ближе к GET — он четко определен как «безопасный» и «идепотентный» метод.

Примечание от IT Home: Идемпотент — это понятие в математике и информатике, часто встречающееся в абстрактной алгебре.

Запросы QUERY можно автоматически повторять или повторять, не опасаясь частичных изменений состояния сервера. Он имеет ту же семантику, что и GET, но по выражению ближе к POST. С тех пор разработчикам больше не нужно скрывать операции только для чтения, такие как POST, поскольку GET недостаточно гибок, и поэтому цель проектирования API становится более ясной.

В RFC 10008 также подробно описано, как метод QUERY совместим с существующими механизмами HTTP. Сервер может объявить о поддержке метода QUERY через поле заголовка ответа «Разрешить». В спецификации также представлен новый заголовок ответа Accept-Query, который используется для информирования клиента и сервера о том, какие форматы содержимого запроса принимаются. Кроме того, ответ QUERY поддерживает механизм кэширования — прокси-сервер или процессор могут кэшировать результаты запроса, назначать ему URI для последующего доступа с помощью метода GET и управлять достоверностью кэша с помощью информации заголовка, такой как Last-Modified. В документации также рассматриваются смежные темы, такие как мультимедиа, перенаправления, условные запросы, запросы области и безопасность.

Хотя RFC 10008 был одобрен IETF для стандартизации и опубликован публично, его статус «предлагаемого стандарта» означает, что его фактическая реализация продолжает зависеть от различных веб-серверов, прокси, клиентов, браузеров, платформ API и инструментов разработки, постепенно добавляя поддержку метода QUERY.

Спецификация была совместно написана несколькими членами рабочей группы HTTP IETF. Проект документа прошел несколько раундов обсуждений и доработок в сообществе и, наконец, был официально опубликован в качестве предлагаемого стандарта редакционной группой RFC в июне 2026 года.

Отказ от ответственности: внешние ссылки перехода (включая, помимо прочего, гиперссылки, QR-коды, пароли и т. д.), содержащиеся в статье, используются для передачи дополнительной информации и экономии времени выбора. Результаты предназначены только для справки. Это утверждение содержится во всех статьях IT House.

Инженер- по профессии, не представляющий свою жизнь без высоких технологий. Люблю фотографировать и фотошопить,...

Leave a comment

Your email address will not be published. Required fields are marked *