Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Стандартизирован HTTP-метод QUERY, комбинирующий возможности GET и POST

18.06.2026 08:48 (MSK)

Инженерный комитет IETF (Internet Engineering Task Force), занимающегося развитием протоколов и архитектуры сети Интернет, придал HTTP-методу QUERY статус "Предложенного стандарта" и опубликовал связанную с ним спецификацию RFC 10008. Метод QUERY по способу отправки данных на сервер повторяет метод POST, но отличается от него ориентацией не на запись данных и изменение состояния, а на формирование запросов на чтение.

По решаемым задачам новый метод близок к GET и позволят отправлять запросы, которые могут быть повторены или перезапущены без изменения состояния на сервере. Как и в методе POST параметры запроса в QUERY передаются не в URI, а в теле запроса. Подобный подход даёт возможность передавать большой объём параметров в запросе, превышающий лимит на размер параметров в методе GET (8000 байт).


   GET /feed?q=foo&limit=10&sort=-published HTTP/1.1
   Host: example.org

   QUERY /feed HTTP/1.1
   Host: example.org
   Content-Type: application/x-www-form-urlencoded

   q=foo&limit=10&sort=-published

Отправленные через метод QUERY параметры не отражаются в логах серверов, что с одной стороны затрудняет анализ запросов и диагностику проблем, но с другой стороны даёт возможность скрыть конфиденциальные данные из логов прокси-серверов.

Среди областей применения метода QUERY упоминается отправка запросов к Web API, выдающих результат в формате JSON или XML, или бэкендам, генерирующим контент. Для определения возможности использования нового метода при обращении к серверу предлагается использовать метод OPTIONS, а для определения поддерживаемых форматов метод HEAD:


   > OPTIONS /contacts HTTP/1.1
   > Host: example.org

   HTTP/1.1 200 OK
   Allow: GET, QUERY, OPTIONS, HEAD

В методе QUERY предусмотрена поддержка кэширования - прокси-серверы или обработчики могут сохранить результат выполнения запроса, присвоить ему URI для последующего обращения через метод GET и вернуть информацию о выдаче прокэшированной версии через заголовок "Last-Modified". Для проверки наличия изменений с прошлого запроса может применяться заголовок "If-Modified-Since". Для указания альтернативных вариантов выполнения запроса в ответе могут указываться заголовки "Content-Location" и "Location", отличия которых в том, что первый передаёт ссылку для получения результата ранее выполненного запроса, а второй предназначен для повторения запроса с теми же параметрами.


   > QUERY /contacts HTTP/1.1
   > Host: example.org
   > Content-Type: application/x-www-form-urlencoded
   > Accept: application/json
   > select=surname,givenname,email&limit=10&match=%22email=*@example.*%22

   HTTP/1.1 200 OK
   Content-Type: application/json
   Content-Location: /contacts/stored-results/17
   Location: /contacts/stored-queries/42
   Last-Modified: Sat, 25 Aug 2012 23:34:45 GMT
   Date: Sun, 17 Nov 2024, 16:10:24 GMT

   > GET /contacts/stored-results/17 HTTP/1.1
   > Host: example.org
   > Accept: application/json

Помимо типа "application/x-www-form-urlencoded" для передачи параметров в запросах QUERY также могут напрямую использоваться расширенные форматы, такие как JSONPath (application/jsonpath), XSLT (application/xslt+xml) и SQL (application/sql). Поддерживаемые форматы возвращаются сервером в заголовке Accept-Query.


   > HEAD /contacts HTTP/1.1
   > Host: example.org

   HTTP/1.1 200 OK
   Content-Type: application/xhtml
   Accept-Query: application/x-www-form-urlencoded, application/jsonpath, application/sql

   > QUERY /errata.json HTTP/1.1
   > Host: example.org
   > Content-Type: application/jsonpath
   > Accept: application/json
   >
   > $..[
   >     ?@.errata_status_code=="Rejected"
   >     && @.submit_date>"2024"
   >   ]
   >   ["doc-id"]


  1. Главная ссылка к новости (https://mailarchive.ietf.org/a...)
  2. OpenNews: Впервые за 15 лет обновлена спецификация протокола HTTP/1.1
  3. OpenNews: Протокол HSTS получил статус предложенного стандарта
  4. OpenNews: HTTP/2.0 получил статус предложенного стандарта
  5. OpenNews: Протокол HTTP/3.0 получил статус предложенного стандарта
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65713-http
Ключевые слова: http
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (60) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:36, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    И так браузеры еле работают, простое открытие хрома, файрфокса, браве без отображения страниц запускает по 25-30 процессов, жрет память и процессор...
     
     
  • 2.7, q (ok), 10:21, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Обнови комп. Удали нескучные расширения. Закрой миллиард вкладок, которые накопились на 20 лет бравзинга (я же знаю, что ты их не закрываешь - видел у тебя на скринах, от табов только узенькие полоски, на которые даже кнопка закрытия вкладки не умещается).
     
     
  • 3.11, Аноним (11), 10:27, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почикать совместимость с целыми поколениями железа. Это конечно сильно.
     
  • 3.17, анон (?), 10:44, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Обнови комп. Удали нескучные расширения. Закрой миллиард вкладок, которые накопились на 20 лет бравзинга. Выбери жизнь. Выбери работу. Выбери карьеру. Выбери семью. Выбери телевизор с большим экраном. Выбери стиральную машину, музыкальный центр, автомобиль и электрический консервный нож. Выбери здоровый желудок, зубы и медицинскую страховку. Выбери недвижимость и аккуратно выплачивай взносы. Выбери свой первый дом. Выбери друзей. Выбери курорты и шикарные чемоданы. Выбери костюм-тройку в самой лучшей фирме из самой дорогой материи. В свой выходной выбери диван, чтобы развалиться и смотреть отупляющее шоу. Набивай брюхо всякой всячиной. Выбери загнивание, в конце концов, и со стыдом вспомни подонков, которых ты заложил, чтобы выбраться самому. Выбери своё будущее. Выбери жизнь.
     
     
  • 4.26, Жироватт (ok), 11:02, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Обнови комп. Удали нескучные расширения. Закрой миллиард вкладок, которые накопились на 20 лет бравзинга. Выбери жизнь. Выбери работу. Выбери карьеру. Выбери семью. Выбери смарт-телек на ведроиде с большим, полутораметровым экраном. Выбери робота-пылесоса, голосового ассистента-в-колонке, электромобиль-Теслу и очередной сверхполезный гаджет с Алиэкспресс. Выбери здоровый желудок, зубы и ДМС. Выбери квартиру-апартаменты внутри МКАДа и аккуратно выплачивай ипотеку. Выбери свою первую дачу. Выбери друзей. Выбери сказочное_бали, Хайнань и невскрываемые бронированные чемоданы. Выбери мешковатый костюм от самой дизайнерской фирмочки МСК из самой дорогой, хотя бы без примесей полиэстера и вискозы, материи. В свой выходной выбери диван, чтобы развалиться и смотреть отупляющие видосы с ю- и рутуба. Набивай брюхо всякой дешёвой и илитной всячиной. Выбери загнивание, в конце концов, и со стыдом вспомни подонков, которых ты заложил, чтобы выбраться самому. Выбери своё будущее. Выбери жизнь.

    Адаптировать надо, адаптировать.
    Текст актуален для Штатов 90х-00х, но уже не для СНГ второй половины 20х.

     
  • 2.15, aname (ok), 10:42, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А поддерживаемые методы тут причём?
     

  • 1.2, Аноним (2), 09:53, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    https://xkcd.com/927/

    Раньше разработчики срались из-за организации поиска на POST вместо GET когда надо изобразить что-то сложное.
    Теперь будут сраться в выборе из 3 методов, великолепно.

     
     
  • 2.5, 1 (??), 10:04, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нормик - как раз для "плутания" надо не меньше 3 "сосен". Больше - лучше !
     
  • 2.42, Аноним (42), 11:57, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь будут гадать почему в ответ прилетает протухший кэш. POST то никто в адеквате не кэширует
     
  • 2.52, penetrator (?), 12:33, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    срались только долбанариумы, GET в принципе не нужен для API, это просто семантика

    GET надо только для подсасывания ресурсов самим браузером

    теперь все будут использовать QUERY но только не в старых версиях браузеров, но цирк сохранится

     
     
  • 3.58, qrKot (?), 13:05, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А версия браузера тут при чем???

    Браузер сам по себе ничего, кроме GET и POST не умеет, остальное JS делает. А метод в запросе - просто строка, чо хошь, то и пиши.

     
     
  • 4.62, penetrator (?), 13:09, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А версия браузера тут при чем???
    > Браузер сам по себе ничего, кроме GET и POST не умеет, остальное
    > JS делает. А метод в запросе - просто строка, чо хошь,
    > то и пиши.

    VERB должен поддерживаться браузером, с полной реализацией связанной с методом спецификации

    начиная например от длины GET запроса, до конкретных поддерживаемых Content-Type в том же POST

     

  • 1.3, Хрю (?), 09:57, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >метод POST, но отличается от него ориентацией не на запись данных и изменение состояния,

    С какого времени пост стал ориентированным на запись и изменение состояния? Пост это пост, какой смысл ему веб. Сервер придаст такой и будет у него смысл. У меня пост readonly, а для изменения есть put, patch, delete.

     
     
  • 2.8, Аноним (8), 10:25, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    По классике пост для создания, пут для изменения, патч для изменения части, делит для удаления. И гет для получения
     
     
  • 3.12, Хрю (?), 10:39, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Этому уже очень давно мало кто следует ибо это сильно узко и не удобно. Для современных браузеров и веб. серверов это просто слова, возможно, с небольшими настройками по умолчанию, для легаси. Но так хоть гет делай для изменений, хоть делете кешируемый всё это будет работать.
     
     
  • 4.60, qrKot (?), 13:06, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Для современных браузеров и веб. серверов это просто слова

    Бгг, особенно для ingress'ов и реверс-прокси, ага.

     
  • 3.53, penetrator (?), 12:36, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    кто сделал это классикой? а если сценарий отработки предполагает вызов внешнего сервиса и тип операции определяется внешним сервисом?

    тогда что? стройная (нет) семантическая модель идет лесом? ))))))

    я не использую вообще семантику HTTP для API, это бред, одни статус коды чего стоят

    лучше обращать на технические ограничения и особенности использования VERBS а не вот это вот всё  

     
     
  • 4.61, qrKot (?), 13:09, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> а если сценарий отработки предполагает вызов внешнего сервиса и тип операции определяется внешним сервисом?

    А каким образом твоему API-контракту не насрать на контракт внешнего сервиса? Ну вот пришел тебе PUT-запрос - тебе что-то мешает в коде его обработки POST к внешнему сервису сделать?

     
  • 2.24, qrKot (?), 10:59, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> С какого времени пост стал ориентированным на запись и изменение состояния?

    Собственно, всегда был. Ну, точнее, немного не так.
    В этих ваших интернетах больше роляет ИДЕМПОТЕНТНОСТЬ запроса. И вот GET (бай дизайн) - идемпотентный (т.е. его можно безопасно закешировать, что важно, с учетом ограниченности, например, пропускной способности этих ваших интернетов). Т.е. GET дает гарантию, что два-десять-стопицот одинаковых запросов подряд по результату не будут отличаться от одного запроса.
    POST же - ровно тот же GET, только без всяких гарантий. У него нет гарантий идемпотентности, что по сути говорит о том, что состояние он в любой момент поменять может.

     
     
  • 3.38, Bonifatium (?), 11:49, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > GET (бай дизайн) - идемпотентный
    > GET дает гарантию

    за это отвечает приложение. GET сам по себе не дает гарантий.

     
     
  • 4.43, Аноним (42), 11:59, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    За это надо бить разрабов приложения, потому что мутировать данные в GET - это ССЗБ
     
     
  • 5.49, Анонисссм (?), 12:20, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >бить разрабов приложения, потому что мутировать данные в GET - это ССЗБ

    сюрприз, данные могут меняться даже без запросов

     
  • 4.56, qrKot (?), 12:58, 18/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.54, penetrator (?), 12:38, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    не дает, потому что данные могут поменяться, и один и тот же гет будет выдавать уже обновленные данные

    только если ты не захочешь делать версионирование по хешу, но это бред хранить это все, скажем так - это узко специализированное решение

     
     
  • 4.57, qrKot (?), 13:02, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Гарантия идемпотентности не в том, что данные никогда не меняются - это в принципе невозможная гарантия.

    Гарантия идемпотентности - это гарантия, что N повторяющихся запросов (при любом натуральном N) идентичны по своему результату одному аналогичному запросу.

     

  • 1.4, Аноним (4), 10:03, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А кто вам запрещает в GET вставлять ненулевое тело? HTTP это не запрещает, да и я так делал и делаю
     
     
  • 2.10, фф (?), 10:26, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а кто запрещает не изменять данные по POST запросу (если логика подразумевает лишь выдачу информации)? или может кто-то запрещает кешировать ответ на такой запрос?
    Почему тогда уж не сделать один универсальный метод запроса, а в заголовках указывать - можно ли кешировать, можно ли писать в логи итп.
     
     
  • 3.35, qrKot (?), 11:27, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> а в заголовках указывать - можно ли кешировать

    Ну ващет можно указывать. Прям заголовки специальные есть даже. Вот тут с механикой ознакомиться можно: https://datatracker.ietf.org/doc/html/rfc2616#section-13

    >> а кто запрещает не изменять данные по POST запросу

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

    >> или может кто-то запрещает кешировать ответ на такой запрос?

    Здравый смысл, например? Метод не гарантирует идемпотентность - что вы кешировать собрались?

    >> Почему тогда уж не сделать один универсальный метод запроса

    На JSON-API посмотрите - один универсальный POST, везде 200-Ок в ответах. HTTP - строго транспорт, вся информация об ошибках и т.д. - в BODY.
    За пределами же API-применения на локальной машинке есть всяческие border-gateway и реверс-прокси, маппинг, CORS'ы и прочее-прочее, которым удобнее иметь методы и заголовки.

     
     
  • 4.50, фф (?), 12:20, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    это всё понятно.
    Моя мысль была про зачем выдумывать новые методы, если можно всё это реализовать на уже имеющихся?

    про идемподентость вот только - а кто ее гарантирует в гет запросе, или вот в этом новом?
    сервер вполне и базу может грознуть и диск отформатировать после первого гет, и на второй уже физически не сможет прочитать инфу для ответа.
    Идемпотентность можно задекларировать в апи. И тогда пофиг как вы будете слать запросы - soap вон вобще по smtp умеет работать - ответы можно будет кешировать.

     
  • 2.16, Аноним (16), 10:44, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вставлять никто не запрещает :) Но стандартный сервер может просто отбросить всё после хэдера и будет прав.
     
     
  • 3.31, Dmitry (??), 11:07, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стандартный сервер это какой? Как я напишу, так и будет
     
     
  • 4.39, qrKot (?), 11:52, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Стандартный - это реверс-прокси или boder-gateway хостера. Что бы ты ни писал, настройкам ингресса на это по барабану.
     
  • 3.33, Аноним (33), 11:12, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "стандартный сервер" - это который нарушает хттп спеку? Оставьте такие сервера себе.
     
     
  • 4.40, qrKot (?), 11:55, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Где нарушает-то?

    Читаем спеку:
    '''The GET method means retrieve whatever information (in the form of an
       entity) is identified by the Request-URI.'''

    Метод GET служит для получения любой информации, идентифицируемой Request-URI. Body частью Request-URI не является - можно смело выкидывать.

     
  • 2.20, Аноним (20), 10:50, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, причем сразу multipart/form-data, чтобы вообще )))
     
  • 2.34, qrKot (?), 11:14, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Принятые соглашения и сторонние прокси, например?

    Да, в стандарте напрямую про игнор body ничего не говорится, но там говорится следующее:
    '''The GET method means retrieve whatever information (in the form of an
       entity) is identified by the Request-URI.'''
    Ну т.е. "запрос для получения информации, идентифицируемой Request-URI". А body в Request-URI не входит, т.е. запросы с одинаковой урлой и разными body, согласно стандарту, должны возвращать одну и ту же информацию.

    На основании этого есть СОГЛАШЕНИЕ об идемпотентности запроса. Пока ты на локалхосте пилишь сайты на PHP, по сути, никто тебе не запретит body в GET-запросе читать или аплоадить фоточки GET-запросом через multipart-form. Однако как только ты чуть-чуть за пределы локалхоста выберешься...

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

     
  • 2.36, фняк. (?), 11:42, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Просто решили в стандарте прописать явным образом. Давно ковырял, но была там какая-то неоднозначность, хотя на практике работало
     

  • 1.6, вымя (?), 10:04, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И, эээээ, чем это отличается от PUT?
     
     
  • 2.13, Жироватт (ok), 10:41, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ...Но другая группа в IETF нашла в PUT фатальный недостаток - его писали не они! Для решения этой проблемы они создали QUERY (похожее на PUT, но другое), и я наивно вспоминаю докладчика на IETF-овской конференции, говорящего, что скоро все хттп-запросы будуи ходить исключительно как QUERY через QUIC, и каждая обёртка над серверным API на экране будет исключительно QUERY-ем...
     
     
  • 3.19, Аноним (19), 10:49, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И чем же это будет отличаться от текущего балагана, кроме того что его просто узаконят и подметут в помойку бесконечно растущих хедеров?
     
     
  • 4.21, Жироватт (ok), 10:54, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ничем.  "xckd - 15й стандарт".
    Но с другой стороны - зря что ли инженегры зарплату в этих комитетах получают? Нужно рожать Новый&УлуДшенный стандарт даже через "не могу", иначе кто заметит усилий.
     
  • 2.30, Аноним (30), 11:06, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это GET-овый PUT, как будто бы.
     
  • 2.45, qrKot (?), 12:00, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кхм, а что у него общего с PUT?

    PUT - создай/измени запись.
    QUERY - выбери мне данные, удовлетворяющие запросу, который лежит в body.

     

  • 1.9, Аноним (11), 10:26, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Стало хуже.
     
     
  • 2.27, LaunchWiskey (ok), 11:03, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раньше было лучше!
     

  • 1.14, Аноним (16), 10:42, 18/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.18, Аноним (20), 10:48, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    QUERY энтерпрайзно. Изживают потихонечку хакерскую культуру, выдавливают по капле.
     
  • 1.22, localhostadmin (ok), 10:56, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я не совсем понял. Че  оно отличается от обычного POST? В чем проблема принимать POST запросы и обрабатывать их как QUERY?
     
     
  • 2.29, Жироватт (ok), 11:06, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Стандарты мутятся - лавэшка (на миграциях, переписывании и доработках) крутится.
    А потом отключат и GET, и POST для защиты детей от Ынтернета^W^W^W^W безопасности парсеров от хакеров и всё. Будет тебе кури вместо 2х типов запросов
     
  • 2.32, Аноним (33), 11:10, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    POST - семантически про изменение данных. Query/get - про чтение данных, ожидая, что состояние запрашиваемых данных от этого запроса не изменится.
     
  • 2.47, qrKot (?), 12:11, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У POST особой семантики нет. POST - это "вот запрос к серверу, отдай как есть, сервер сам знает, что с этим делать". POST может запрашивать данные, изменять данные, создавать, удалять - да все может (с точки зрения семантики).

    QUERY - больше про выборку данных. Фильтры, запросы "отдай мне пользователей с датой рождения позднее 2006 года" и т.д. Условно SELECT-запросы.

    По факту, запрета на изменение данных нет, и в случае неидемпотентных запросов действительно от POST не отличается.
    Зато для идемпотентных (SELECT-запросов) есть механика со специальными заголовками про кеши/протухание кешей/ссылками на повтор запроса/ссылками на получение данных из прошлых запросов. Кажется, конечно, что херня ненужная, но это если не задумываться о реверс-прокси и прочих border-gateway'ях.

    Вот пришел к тебе запрос "выбери мне всех блондинов с голубыми глазами и членом 35 см." - ты в базу сходил, получил мой профиль, и в кеше у себя прихранил. Наружу отдал заголовки "за следующую минуту вряд ли чего изменится", "данные запроса я у себя храню в кеше следующий час по ссылке1" и "повторно запросить можно по ссылке2".
    Следующий запрос через 30 секунд отдастся прямо из кеша реверс-прокси (до тебя даже не дойдет, нахрена тебе лишние запросы). Потом еще час запросы будут отдаваться из твоего уже кеша, и только через час оно начнет опять в базу ломиться.

    Офигительно же. И двухуровневый кеш самому пилить не надо, тупо заголовки правильно расставь.

     

  • 1.23, Соль земли2 (?), 10:58, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > даёт возможность скрыть конфиденциальные данные из логов прокси-серверов

    Решение проблемы через Ж, вместо нормальной настройки прокси.

     
  • 1.25, IdeaFix (ok), 11:00, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пару дней назад попросил безопасника открыть 43 порт, ну надо мне было whois чтобы банить автономками. Готовая скриптовая оснастка уже была, и в других местах она работала, а тут 43 закрыт.

    Безопасник сказал - у ripe есть rest api, перепиши свои скрипты под https и не нужен тебе 43 порт. Я конечно сказал что скоро мы и пинговать будем по rest api через https, но пошел переписывать скрипты.

    А тут вон оно чо... http query.

     
  • 1.28, Аноним (33), 11:04, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Подобный подход даёт возможность передавать большой объём параметров в запросе, превышающий лимит на размер параметров в методе GET (8000 байт).

    Никто и ничто не мешает передавать параметры запроса точно также как в посте - через тело гета. Спека это разрешает. Люди этим пользуются.

    Единственный "бонус" от появления query - явно описанная семантика в отличие от гета, но так себе. Функционально оно ничего не меняет.

     
     
  • 2.37, Аноним (37), 11:48, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Спека это разрешает.

    пруф в студию, пожалуйста. заранее спасибо. с ув.

     
  • 2.51, qrKot (?), 12:27, 18/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> Никто и ничто не мешает передавать параметры запроса точно также как в посте - через тело гета. Спека это разрешает.

    Никто и ничто не мешает реверс-прокси, ингрессам, бордер-гейтвеям и т.д. игнорировать тело запроса при передаче. Спека это разрешает.

    >> Единственный "бонус" от появления query - явно описанная семантика в отличие от гета

    The GET method means retrieve whatever information (in the form of an
       entity) is identified by the Request-URI.

    GET-метод служит для получения любой информации (в форме сущности), идентифицируемой Request-URI.
    В чем "не явная семантика"? 2 важных положения "ПОЛУЧЕНИЕ сущности" и "идентифицируемой Request-URI". Т.е. содержимое body (не часть Request-URI) не может быть используемо для идентификации. Поясню: два GET-запроса с одинаковой урлой, но с разными body должны и обязаны возвращать идентичные ответы (идентичные GET-запросу на ту же урлу вообще без body).

    Поэтому в спека НЕ ЗАПРЕЩАЕТ передачу body в GET-запросе, но явным образом лишает body GET-запроса всякого смысла. Если body не имеет право изменить что-то в процессинге запроса, нахрена его вообще передавать?

     

  • 1.46, GrandProgrammer (ok), 12:06, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Теперь еще деприкейт GET метода сделают лет через двадцать.
     
  • 1.48, Аноним (48), 12:19, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Говорили-же им: не плоди сущности без надобности. Все равно плодят. А что в итоге?
    >могут напрямую использоваться расширенные форматы, такие как .... SQL (application/sql)

    что чревато иньекциями, т.к. WAFы не смогут очищать SQL запросы в BODY

    ЗЫ. Выглядит прямо как сознательная диверсия.

     
  • 1.55, Аноним (55), 12:45, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По GET спецификации можно передавать тело. Зачем новый "квари" потребовался?!
     
  • 1.59, Аноним (59), 13:05, 18/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где же RFC 10000
     
  • 1.63, Assador (ok), 13:12, 18/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру