HTTPに20年ぶりとなる新しいメソッドが登場
おそらく、これまでに経験があるはずです。
商品を検索する必要があるとします。検索フィルターが大きすぎてURLに収まりません。これを解決するために、POSTリクエストを使用します。
それで動作はしますが、それは「嘘」です。データを読み取っているだけなのに、HTTPに対してはデータを変更していると伝えていることになります。
2026年6月、IETFはRFC 10008を公開しました。これはQUERYと呼ばれる新しいHTTPメソッドを定義しています。これは20年以上ぶりとなる新しいメソッドです。そして、まさに上述の課題を解決するものです。
現在の課題
GETはデータの読み取りに最適です。セーフ(safe)であり、キャッシュも可能です。しかし、リクエストボディを運ぶことができません。また、URLには文字数制限もあります。
POSTはボディを運べます。しかし、HTTPはPOSTが状態を変更するものだと想定しています。つまり、自動キャッシュや安全なリトライ機能が失われることを意味します。もしPOSTリクエストがタイムアウトした場合、単純にリトライすることはできません。サーバーがすでに何かを変更してしまったかどうかが分からないからです。
解決策:QUERY
QUERYは、ボディを持つGETリクエストです。これには2つの保証があります。
- セーフ(safe)であること。データを変更しません。
- べき等(idempotent)であること。2回送信しても、1回送信したときと同じ結果が得られます。
現在の使い方
AxiosやFetchを使って、今すぐ利用できます。
Axiosの例:
axios.request({
method: 'QUERY',
url: '/api/products',
data: { category: 'shoes', maxPrice: 100 }
})
Fetchの例:
fetch('/api/products', {
method: 'QUERY',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ category: 'shoes', maxPrice: 100 })
})
今後の展望
移行は一晩で進むわけではありません。ロードマップは以下の通りです。
- インフラストラクチャ:NginxやApacheはこれらのリクエストを通過させます。QUERYメソッドを許可するために、WAFやセキュリティルールを更新する必要があるかもしれません。
- フレームワーク:Spring、Rails、Expressが2026年から2027年にかけてネイティブサポートを追加することが予想されます。
- CDN:CloudflareやAkamaiのエンジニアがこの策定に協力しているため、迅速なCDNサポートが期待できます。これにより、キャッシュが非常に容易になります。
なぜこれがコードにとって重要なのか
- 自動リトライ: QUERYはべき等であるため、モバイルアプリやクライアントは失敗したリクエストを安全にリトライできます。
- キャッシュの向上: CDNはボディに基づいてQUERYのレスポンスをキャッシュできます。自前で構築したRedisのキャッシュレイヤーを削除できるかもしれません。
- よりクリーンなURL: 複雑なJSONをURLのクエリパラメータに詰め込む必要がなくなります。
- セマンティックなAPI: APIドキュメントがより明確になります。開発者は、どのエンドポイントがデータを読み取り、どのエンドポイントがデータを書き込むのかを正確に把握できるようになります。
現在のPOSTエンドポイントを監査して、チームの準備を進めましょう。データ読み取りのみを行っているものを特定してください。それらが、将来のQUERYエンドポイントになります。
