HTTPメソッドの名前と目的は矛盾なきように

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

スマホアプリなどでウェブサービスはよく使われており、そこではHTTPがよく使われているが、HTTPメソッドはちゃんと使い分けをすべきである。これが滅茶苦茶になっていると混乱を引き起こすからだ。

HTTPメソッドには何があるか

さて、HTTPメソッドといっても、何があるのかがわからない方も多いので、これから列挙していきたい。(HTTP1.1)

  • GET – 指定されたリソースを取得する
  • POST – クライアントからデータを送信する
  • HEAD – 指定されたリソースのヘッダー情報のみ取得する
  • DELETE – 指定されたリソースを削除する
  • PUT – 指定されたURIにリソースを保存する
  • OPTIONS – サーバーを調査する
  • TRACE – サーバーまでのネットワーク経路を調査する
  • CONNECT – TCPトンネルを接続する

うち覚えておくべきはGET、POST、PUT、DELETEである。

でも挙動は変えられる

しかしながら、これはプロトコル上の取り決めに過ぎず、実際の処理はサーバー次第で簡単に変えることができてしまう。

例えば、GETメソッドでも、本来ならPOSTメソッドで行うべきことも(制約はあるものの)できるし、その逆も然りである。

この点から、API設計を行う際に、その処理がどういうことを意図しているのかの意味合いを意識しなければならない。

最後に

HTTPメソッドはプロトコル上の取り決め、特にあることをするためにはこのメソッドを使うべきという程度の取り決め以上の機能はなく、メソッドが違っても任意に処理が行えてしまう。

しかしながら、これは誤解を招いてトラブルを引き起こす要素になるので、処理と使うべきメソッドはちゃんと把握すべきであろう。

タイトルとURLをコピーしました