Conoce un poco sobre los Métodos HTTP en REST

El año pasado, en la universidad, veía una materia que se llama Web Services, los cuales son una serie de mecanismos para comunicar dos dispositivos electrónicos sobre Internet. Uno de los temas dentro de esa asignatura era REST (Representational State Transfer), que resulta ser un web service que trabaja sobre el servidor Apache y emplea todas sus bondades. Últimamente, se puede leer mucho sobre frameworks de desarrollo ágil de software que cuentan con algo llamado CRUD (Create Read Update and Delete), una serie de verbos para crear aplicaciones y servicios web, que a su vez facilitan el manejo de información en bases de datos. Pues, ese CRUD está ligado a REST.

Resulta y acontece que para esa época de estudio, encontré un buen artículo que explica las muchas diferencias entre los varios métodos que ofrece el protocolo HTTP, de los cuales REST hace uso, pero como está en Inglés, no sería tan fácil compartirlo, así que a continuación, viene una pequeña adaptación el Español. Sigue leyendo para que conozcas un poco más sobre estos métodos.

Métodos HTTP

El navegador emplea normalmente los métodos HTTP más usados por los desarrolladores, GET y POST. Para los que no saben, el método GET lo usamos cuando escribimos en la barra de direcciones del navegador un enlace válido, al presionar enter, el navegador envía una petición al servidor por medio del método GET. Por otro lado, cuando nos damos de alta en un sitio web o hacemos un pago a través de Internet, el navegador usará el método POST.

Además de GET y POST, están también PUT, DELETE, HEAD y OPTIONS, los cuales plantearé uno a uno enseguida.

GET

Se usa para obtener información del servidor, puede ser algún archivo HTML, una imagen, un archivo de texto, un XML, etc. Este método solo debe usarse para obtener información del servidor de acuerdo a los estándares de HTTP. El método GET no debe cambiar el estado del servidor, es decir, no debe hacer ninguna modificación a cualquier archivo que en éste se encuentre. En términos de CRUD, GET sería el Read (Leer).

POST

Se podría decir que es el método HTTP más empleado, eso en parte a que permite hacer variedad de operaciones del CRUD, aunque por estándar, es el encargado de crear un nuevo recurso y, por consiguiente, modificar el estado del servidor. En términos de CRUD, el método POST se confunde en ocasiones con el método PUT, aunque la diferencia radica en una cualidad que se llama idempotencia.

¿En qué consiste la idempotencia? Sencillo, se trata de la capacidad que tenga un ente (este caso el método) de realizar una misma operación varias veces, y obtener el mismo resultado que si solo se hiciese una vez.

Teniendo en cuenta que es la idempotencia, se dice que el método POST no es idempotente, en cambio sí lo es el método PUT. Dice el artículo original, que POST cada vez que hace una operación cambia el estado del servidor, por ejemplo, si en un formulario de comentarios de un blog, presionamos dos veces el botón “Comentar”, habrás creado dos veces el mismo comentario en el servidor y para cada nuevo petición POST, se creará un nuevo comentario en el servidor. Por esto es que se liga al método POST con la acción del CRUD, CREATE (Crear, Registrar).

PUT

No es tan usado como lo son GET y POST. Su uso podría darse en el caso de que, por ejemplo, quisieras hacer una operación que haga una acción sobre el estado del servidor, pero que la siguiente vez que suceda, no cambie ese estado. El ejemplo que da el autor del artículo que traduzco se basa en la operación de actualización.

Queremos actualizar un archivo que ha sido subido al servidor, dicha subida ocasionó un cambio en el estado del servidor. Cuando vuelvas a subir el mismo archivo al servidor, el archivo viejo será reemplazado por el que acabas de cargar.

Teniendo esto en cuenta, podemos relacionar el método PUT con la acción del CRUD, UPDATE (actualizar).

DELETE

No tiene mucho que explicar. Teniendo en cuenta los estándares de HTTP, el método DELETE es el único que debe ser usado para borrar un recurso del servidor, sin embargo, algunos desarrolladores emplean los métodos GET o POST para esa labor. En cuanto a CRUD, DELETE sería la acción, que lleva su mismo nombre, DELETE (borrar).

HEAD

Se usa para obtener la cabecera de respuesta que devuelve el servidor al hacer una petición sobre éste. Similar a GET, ambos no cambian el estado del servidor, aunque HEAD solo devuelve los metadatos. Se puede usar para saber si cierto recurso está en el servidor.

OPTIONS

Este método se usa para saber que otros métodos HTTP están disponibles, para determinado recurso, en el servidor. Por ejemplo, para saber si alguna imagen acepta los métodos GET o POST, haces la petición REST sobre ese recurso y en la cabecera de respuesta, obtendrás la respuesta Allow con los métodos que pueden usarse sobre dicho recurso.

Cierre

La idea de este artículo es compartir, y traducir, el texto original, el cual considero muy bueno, sobre los métodos que se usan en una aplicación RESTful. Todo esto, en aras de brindar información de consulta en español. Como siempre, si hay algo mal, deja el comentario para estar al tanto. Espero les sirva a quien lea esto.

Anuncios

Autor: cesc1989

Ingeniero de Sistemas que le gusta escribir y compartir sobre recursos que considera útiles, además que le gusta leer manga y ver anime.

9 comentarios en “Conoce un poco sobre los Métodos HTTP en REST”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s