POSTとGETとPUTとDELETEとHEADの違いなど

プログラミング学習していれば必ず出くわすPOSTやGETやPUTやDELETEやHEAD。

 

その他にOPTIONSもありますが、それらをまずは私のような初学者向けに簡単な違いからメモしていきたいと思います。

 

 

冪等性と安全性

GET

冪等であり安全である

 

HEAD

冪等であり安全である

 

PUT

冪等だが安全でない

 

DELETE

冪等だが安全でない

 

POST

冪等でなく安全でない

 

 

冪等(Idemoitence)というのはある操作を何回行っても結果が同じことという意味の言葉。(リクエストをした際のレスポンスが一定)

 

安全(Safe)かそうでないかは、操作対象のリソースの状態を変化させないことの意味。(意図しないリクエストなどによりリソースや結果を変えてしまう危険性)

 

安全が保たれずリソースの状態を変化させてしまうことを副作用(Side Effect)という。

 

実はGETもPUTもDELETEも安全でなくなる場合も例外的にあることを覚えておくこと。

 

簡単なまとめ

GETは安全であり、PUTとDELETEは冪等性を持っていて、POSTはいざとなったらなんでもできる側面を持っている(ただし安全とは言えない)

 

取得したデータを渡す際はこの性質をしっかり把握した上で適切に使い分ける必要があると言えます。

 

この項目については追記または別記事にてまた触れたいと思います。

 

では。

WEBmemo

Posted by kyotasato