diff --git a/handlers.go b/handlers.go
index f0ab2aec48b7770a187b5063ab4ec73b90c1c17f..e36088e839ae058faa30428a76efe205843ba23a 100644
--- a/handlers.go
+++ b/handlers.go
@@ -44,7 +44,7 @@ func get(w http.ResponseWriter, r *http.Request) {
 	writeJSON(w, body, http.StatusOK)
 }
 
-func post(w http.ResponseWriter, r *http.Request) {
+func requestWithBody(w http.ResponseWriter, r *http.Request) {
 	args, err := url.ParseQuery(r.URL.RawQuery)
 	if err != nil {
 		http.Error(w, fmt.Sprintf("error parsing query params: %s", err), http.StatusBadRequest)
diff --git a/main.go b/main.go
index 891dfc6bf5157189319b5ebb99feb804b91f98f0..afaf04a3ac525bbebebfeeac80c66aedf078162f 100644
--- a/main.go
+++ b/main.go
@@ -11,13 +11,20 @@ const maxMemory = 1024*1024*5 + 1
 func app() http.Handler {
 	h := http.NewServeMux()
 	templateWrapper := withTemplates("templates/*.html")
+
 	h.HandleFunc("/", methods(templateWrapper(index), "GET"))
 	h.HandleFunc("/forms/post", methods(templateWrapper(formsPost), "GET"))
+
 	h.HandleFunc("/get", methods(get, "GET"))
-	h.HandleFunc("/post", methods(post, "POST"))
+	h.HandleFunc("/post", methods(requestWithBody, "POST"))
+	h.HandleFunc("/put", methods(requestWithBody, "PUT"))
+	h.HandleFunc("/patch", methods(requestWithBody, "PATCH"))
+	h.HandleFunc("/delete", methods(requestWithBody, "DELETE"))
+
 	h.HandleFunc("/ip", ip)
 	h.HandleFunc("/user-agent", userAgent)
 	h.HandleFunc("/headers", headers)
+
 	return logger(cors(h))
 }