LoginSignup
0
0

More than 5 years have passed since last update.

Webを支える技術(HTTPメソッド)

Posted at

20181115

やったこと

Webを支える技術を読む
HTTPメソッドの章

気になった事、メモ

GET POST以外のメソッドについて

なぜ html の form は PUT / DELETE をサポートしないのか?

とても興味深い👓

Railsではmethod: を使い_methodパラメータでPATCH・PUT・DELETEメソッドを動かす

form_tag(search_path, method: "patch")

上のコードから以下の出力が得られる

<form action=“/search” method=“post”>
  <input name=“_method” type=“hidden” value=“patch” />

べき等と安全

べき等 👉 ある操作を何回繰り返しても同じ結果になること

安全 👉 操作対象のリソースを変化させないこと

メソッド べき等 安全
GET, HEAD  ⭕
PUT, DELETE  ⭕
POST  ❌

実装のコツ

  • GETにリソースの取得以外の機能を付与させない

  • POST他のメソッドで出来ることをさせない。他のメソッドが持つべき等や安全が利用出来ない

  • 時間や状況で指し示すリソースが変化するリソースは、更新や削除できない様にする

  • PUT 変更内容は完全な表現にする。

PUTがべき等でなくなる例

変更内容 結果 べき等
100 +50 100+(50*n) 👈PUTを繰り返すと値が変化し続ける
100 150 150

所感

HTTPメソッドを数種類に限定し、統一インターフェイスにすることでシンプルさ、拡張発展性を持った事がWebが発展した要因の一つとの事。Webではないけれど、VHSとベータ、DVDとブルーレイなど規格が乱立するとユーザーはもとより、ソフト・ハードを作る人も混乱して発展しにくくなるから規格をシンプルに統一することは大事だなと感じた。

Webは規格にのっとればどのハードでもリソースを利用できる。スバラシイ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0