【HTTP】POSTとPUTの違い。

フォームのメソッドを指定する際、基本的にGETとPOSTのいずれかを用いれば困ることはない。しかしこの二つ以外にもHTTP/1.1では様々なメソッドが定義されており、その数はなんと10種類にも及ぶ。

ざっと並べてみると以下の通り。

・GET
・HEAD
・POST
・PUT
・DELETE
・OPTIONS
・TRACE
・CONNECT
・PATCH
・LINK
・UNLINK

今回はこの中でも最も用いられるであろうPOSTメソッドと、それに良く似た挙動をするPUTメソッドの違いはどこにあるのかを調べてみた。
が、リソースがどうだ、とか、プロトコルがこうだ、とか言っても正直よくわからないので(自分が)めちゃくちゃシンプルにまとめてみた。

■POST

HTTP/1.0からサポートされたメソッド。
エンティティ(データの実体)を転送する際に用いる。
リクエスト先のURIは「リクエストを処理する場所」を指す。

■PUT

HTTP/1.0からサポートされたメソッド。
ローカルにあるファイルをサーバに転送する際に用いる。
リクエスト先のURIは「リソースが生成される場所」を指す。

 

ということで自分がわかる単語のみを使ってどうにかこうにか違う部分を比較しようと頑張ってみたが、結局のところ実務においてどう使い分ければいいのか全然ピンと来ない。

更なる詳細は以下参考URLを参照されたし。

ハイパーテキスト転送プロトコル — HTTP/1.1