≪ Today I learned. RSS購読
公開日
タグ
Web
著者
ダーシノ(@bc_rikko)

新しいHTTPリクエストメソッド QUERY

新しいHTTPリクエストメソッドのQUERYメソッドのドラフト仕様が公開された。

QUERYメソッドは、データ取得やクエリの実行時など安全で冪等なクエリを実行するために使用される。

クエリパラメータが大量に必要になる場合、GETメソッドではURIの長さ制限に引っかかり正確なリクエストができないことがある。慣習的にPOSTメソッドのリクエストボディを使ってリクエストすることがあるが、そもそもPOSTメソッドは冪等でない。

そこで新たにQUERYメソッドを用い、リクエストボディを使ってクエリを実行することができる。

QUERYメソッド

リクエスト

QUERY /contacts HTTP/1.1
Host: example.com
Content-Type: example/query
Accept: text/csv

select surname, givenname, email limit 10

レスポンス

HTTP/1.1 200 OK
Content-Type: text/csv

surname, givenname, email
Smith, John, john.smith@example.org
Jones, Sally, sally.jones@example.com
Dubois, Camille, camille.dubois@example.net

※URIの長さの制限について

URIの文字長の上限は特に定められていないが、RFC 7230では以下のように最低8,000octetsをサポートすることが推奨されているが、ブラウザによっては挙動がことなるようだ。

Various ad hoc limitations on request-line length are found in practice. It is RECOMMENDED that all HTTP senders and recipients support, at a minimum, request-line lengths of 8000 octets.

https://datatracker.ietf.org/doc/html/rfc7230