
RFC 10008で新しいHTTP QUERYメソッドが仕様化
TL;DR:RFC 10008の公開により、リクエストボディを含む複雑な検索クエリに対応する新たなHTTP QUERYメソッドが定義された。このメソッドはGETのようにキャッシュ可能で冪等性を持つ一方、現在のサポートは限定的である。
RFC 10008の公開により、HTTP通信に新しいQUERYメソッドが定義された。このメソッドは、従来のGETリクエストのクエリパラメータを用いた検索やPOSTを使用した読み取り専用操作に代わる選択肢として設計されている。
HTTP QUERYメソッドの仕様
HTTP QUERYメソッドはGETメソッドに類似しており、リクエストボディを伴う点が主な特徴である。QUERYメソッドは安全 (safe) で冪等 (idempotent) であることを意図して設計されており、GETメソッドと同様にリクエストのキャッシュが可能である。
従来、複雑な検索クエリはGETリクエストのクエリパラメータを用いて実装されてきた。しかし、非ASCII文字や特殊文字をパラメータとして送信する場合、エンコーディング処理が必要になる。また、サーバーおよびミドルウェアはリクエストパラメータをログに記録する可能性がある。一方、GETリクエストにボディを含める従来の手法は、クライアント、プロキシ、ウェブサーバーの実装により異なる処理が行われ、実装によってはボディを拒否、削除、または解釈する場合もある。
実装上の課題
HTTP QUERYメソッドのサポートは現在非常に限定的であり、今後相当期間にわたって限定的なままとなる可能性がある。ブラウザがアドレスバーにURLを入力した際やブックマークをクリックした際に送信するのはGETリクエストである。標準的なHTMLフォームで使用可能なメソッドはGETおよびPOSTのみに制限されている。さらに、ほとんどのプロキシ、ファイアウォール、ウェブサーバーは標準的なHTTPメソッドのみを許可しており、他のクライアント、プロキシ、ウェブサーバーがHTTP QUERYメソッドを拒否する可能性がある。
HTTP メソッド自体は単なる文字列であるため、理論上は任意のメソッド名を定義することは可能である。
ツールサポート
Kreya は最新の 1.20 リリースで HTTP QUERY メソッドへの組み込みサポートを追加した。

筆者の見立て
- フィルタリングされたデータのリンク共有またはブックマーク機能をユーザーに提供する必要がある場合、引き続き GET リクエストの使用を検討すべきと論じている。
- QUERY リクエストのカスタムキャッシング実装は、リクエストボディを考慮する必要があるため、GET リクエストの場合よりも困難である可能性を示唆している。
この記事は元記事の事実のみに基づいて自動生成されました。
出典
kreya.app『The new HTTP QUERY method explained』https://kreya.app/blog/new-http-query-method-explained/ (RFC 10008 の報道による)