GET - получение, идемпотентный. POST - создание/действие, не идемпотентный. PUT - замена ресурса, идемпотентный. PATCH - частичное обновление. DELETE - удаление, идемпотентный. В Go в handler проверяют r.Method: switch r.Method { case http.MethodGet: ... case http.MethodPost: ... }. Для идемпотентности повторный PUT/DELETE с теми же данными дают тот же результат; при ретраях безопасны.
if r.Method != http.MethodPost {
http.Error(w, "Method Not Allowed", 405)
return
}