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

    新しい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