PUTやDELETEのHTTPリクエストを送信する方法色々
PUTやDELETEメソッドのテストをしたい場合に使える手段を検証したので、メモを残しておきます。 記事中の「172.16.83.134」は、Docker環境のIPアドレスです。
目次
curl
「-X」で指定します。
例
$ curl -X PUT http://172.16.83.134/ $ curl -X DELETE http://172.16.83.134/ $ curl -X TRACE http://172.16.83.134/ $ curl -X OPTIONS http://172.16.83.134/
ブラウザ拡張
ブラウザの拡張機能は色々とあるので、試したものだけ記載しています。
firefox
chrome
Python
Pythonに標準で入っているurllibでPUTやDELETEのリクエストを送信することができます。
ローカルプロキシツール
burp suite
今回はburp suiteというローカルプロキシツールを使いました。
送信されるリクエストを手で書き換えます。
できなかったもの
HTMLのform
「こんな方法があったのか!」ということで、こちらの記事で記載されていた、「HTMLのformで”_method”として指定する方法」も試してみました。
Dockerでサーバ環境を用意し、サーバ側のログを確認してみたのですが、POSTメソッドとしてリクエストを受け取っていました。
ブラウザのバージョンが上がったことにより、動作しなくなったのかもしれません。
検証コード
<!DOCTYPE html> <html> <body> <p>submit put / delete / options / trace method!</p> <form method="post" action="http://172.16.83.134/"> <input type="hidden" name="_method" value="PUT"> <input type="submit" value="send put"> </form> <form method="post" action="http://172.16.83.134/"> <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="send delete"> </form> <form method="post" action="http://172.16.83.134/"> <input type="hidden" name="_method" value="OPTIONS"> <input type="submit" value="send options"> </form> <form method="post" action="http://172.16.83.134/"> <input type="hidden" name="_method" value="TRACE"> <input type="submit" value="send trace"> </form> </body> </html>