Знакомьтесь: HTTP QUERY
QUERY — безопасный и идемпотентный метод, передающий тело запроса, по сути «GET с телом». Он позволяет вынести сложные условия выборки из раздутого URL в тело запроса, не прибегая к POST, семантика которого для выборки не подходит.
Изучайте, тестируйте и проверяйте HTTP — включая новый QUERY
QUERY /productsNEWAccept: application/jsonContent-Type: application/json { "category": "boots", "inStock": true}200 OKContent-Location: /products?…Cache-Control: max-age=60 { "results": 42, "cacheable": true}Один поиск, четыре способа
Один и тот же поиск товаров четырьмя способами:
Прокрутите по горизонтали, чтобы сравнить все методы. QUERY показан первым.
| Свойство | QUERY | GET · URL | GET · body | POST |
|---|---|---|---|---|
| Тело запроса | JSON | нет | не определено · избегать | JSON |
| Безопасный (без побочных эффектов) | ✓ | ✓ | ✓ | ✗ |
| Идемпотентный | ✓ | ✓ | ✓ | ✗ |
| Кэшируемый ответ | ✓через Content-Location | ✓ | ~ненадёжно · не определено | ~по умолчанию нет · нужно явно |
| Фильтры вне URL | ✓ | ✗ | ✓ | ✓ |
| Не зависит от длины URL | ✓ | ✗предел ~2 КБ | ✓ | ✓ |
| Стандартизован и поддержан | ~новый RFC · внедрение в начале | ✓ | ✓ | ✓ |
Смотреть дальше
Методы
Семантика, безопасность, идемпотентность и кэшируемость GET / POST / PUT / PATCH / DELETE / HEAD / OPTIONS и нового метода QUERY.
Песочница
Выберите метод, добавьте тело и отправьте настоящий запрос на echo-эндпоинт того же origin, чтобы увидеть, как именно принимаются методы вроде QUERY.
Коды состояния
Основные коды состояния, сгруппированные от 1xx до 5xx, каждый с примером реального HTTP-сообщения.
Заголовки
Заголовки запроса и ответа по назначению — аутентификация, кэширование, согласование содержимого, CORS, безопасность — с синтаксисом и примерами.