Métodos de petición HTTP explicados

HTTP define nueve métodos de petición estándar, pero la mayor parte del tráfico diario usa solo unos pocos. Esta tabla explica cada método, si es seguro e idempotente y los códigos que devuelve una llamada correcta.

Actualizado:

MétodoUso¿Seguro?¿Idempotente?Estado de éxito
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

Notas

Preguntas frecuentes

¿Cuál es la diferencia entre GET y POST?
GET recupera un recurso sin efectos secundarios y puede repetirse con seguridad; los parámetros van en la URL. POST crea algo o dispara una acción, puede cambiar el estado y no debe repetirse a ciegas.
¿Qué significa que un método HTTP sea seguro?
Un método seguro nunca modifica el estado del servidor, así que puede llamarse sin riesgo. GET, HEAD, OPTIONS y TRACE son seguros; POST, PUT, PATCH y DELETE no lo son.
¿Cuál es la diferencia entre PUT y PATCH?
PUT reemplaza todo el recurso con lo que envías; PATCH aplica un cambio parcial solo a ciertos campos. PUT es idempotente, repetirlo da el mismo resultado; PATCH en general no lo es.
¿Qué hace el método HEAD?
HEAD funciona como GET pero no devuelve cuerpo. Sirve para comprobar si un recurso existe, su tamaño o sus cabeceras sin descargar el contenido completo.