Los métodos HTTP proporcionan una forma de especificar la acción deseada que se realizará en el recurso dado. El resultado depende de la implementación del servidor y pueden ser datos preexistentes o datos generados dinámicamente.
Los métodos HTTP más utilizados son GET, POST, PUT, PATCH y DELETE, que corresponden a operaciones CRUD (crear, leer, actualizar, eliminar).
Métodos de solicitud:
- GET: El método GET se utiliza para recuperar información identificada por Request-URL. Es el principal modo de recuperación de información. No cambia el estado del recurso solicitado y se dice que es un método seguro. Si la URL de solicitud hace referencia a un proceso de producción de datos, los datos producidos se devolverán como respuesta en lugar del texto de origen, a menos que el texto sea el resultado de un proceso.
- POST: el método POST se utiliza para enviar datos al servidor como un cuerpo de solicitud. Este método indica que los datos en el cuerpo de la solicitud están destinados a ser aceptados y lo más probable es que se almacenen en el servidor. El encabezado Content-Type indica el tipo de cuerpo de la solicitud. Se usa principalmente al cargar un archivo o al enviar un formulario web completo. Las respuestas al método no se almacenarán en caché hasta que la respuesta contenga los campos de encabezado Cache-Control o Expires apropiados.
- PUT: el método PUT se usa para reemplazar el estado ya existente del recurso o crear el recurso si el recurso no existe (decidido por el servidor de origen) con la carga útil de la solicitud.
- PATCH: El método PATCH se utiliza para realizar una actualización parcial de un recurso. Puede considerarse como un conjunto de instrucciones que describe la modificación de datos ya presentes en el servidor para producir una nueva versión de los datos y no se considera como el recurso completo.
- DELETE: El método DELETE se utiliza para eliminar un recurso específico en el servidor de origen. El cliente no puede estar seguro de que la operación se haya realizado, aunque el código de estado que devuelve el servidor así lo indica.
- HEAD: HEAD es idéntico a la solicitud GET, pero el servidor no debe enviar el cuerpo de la respuesta, sino que debe enviar los mismos encabezados que hubiera enviado si se hubiera solicitado el URI con el método GET. Se puede usar para obtener metadatos sin transferir el cuerpo de la respuesta desde el servidor y, a menudo, se usa para probar la validez, accesibilidad y modificación reciente de los enlaces de hipertexto.
- CONNECT: el método CONNECT se utiliza para establecer un túnel HTTP de extremo a extremo a través de un servidor proxy.
- OPCIONES: El método OPCIONES solicita opciones de comunicación permitidas para un recurso determinado. Esta solicitud se puede enviar para averiguar los métodos HTTP admitidos y otras opciones compatibles sin solicitar el recurso.
- TRACE: el método TRACE solicita al servidor que envíe la solicitud exacta, tal como la recibió, en el cuerpo de la respuesta. Es útil para fines de diagnóstico.
Una simple solicitud GET en javascript:
Javascript
// GET request fetch("https://jsonplaceholder.typicode.com/users/2") // Convert response to json .then((response) => response.json()) // Print data to console .then((data) => console.log(data));
Terminologías importantes:
- Seguro: un método HTTP es seguro si no cambia el estado del servidor. En otras palabras, un método es seguro si solo se puede usar para leer o recuperar los datos. Varios métodos HTTP son seguros, por ejemplo, GET y HEAD. Todos los métodos seguros son idempotentes, pero lo contrario no es cierto. Por ejemplo, PUT y DELETE, ambos métodos son idempotentes pero no seguros.
- Idempotente: un método HTTP es idempotente si la operación produce el mismo resultado cuando se ejecuta una o varias veces y deja el servidor en el mismo estado. En otras palabras, un método idempotente no debería causar ningún efecto no deseado, independientemente de la cantidad de veces que se ejecute. Los métodos GET, HEAD, PUT y DELETE son idempotentes si se implementan correctamente. Todos los métodos seguros también son idempotentes.
- Cacheable: Una respuesta cacheable es una respuesta HTTP que se puede almacenar en caché, que se almacena para poder acceder a ella para su uso posterior, guardando la nueva solicitud en el servidor. Esto evita requests innecesarias al servidor.
Método de solicitud |
La solicitud tiene carga útil |
La respuesta tiene carga útil |
Seguro |
idempotente |
almacenable en caché |
---|---|---|---|---|---|
OBTENER |
Opcional |
Sí |
Sí |
Sí |
Sí |
CORREO |
Sí |
Sí |
No |
No |
Sí |
PONER |
Sí |
Sí |
No |
Sí |
No |
PARCHE |
Sí |
Sí |
No |
No |
No |
ELIMINAR |
Opcional |
Sí |
No |
Sí |
No |
CABEZA |
Opcional |
No |
Sí |
Sí |
Sí |
CONECTAR |
Opcional |
Sí |
No |
No |
No |
OPCIONES |
Opcional |
Sí |
Sí |
Sí |
No |
RASTRO |
No |
Sí |
Sí |
Sí |
No |