MÉTODOS HTTP
Y SUS USOS
CON EJEMPLOS SENCILLOS
El internet funciona por medio
de una interacción entre el
cliente (frontend) y el servidor
(backend). Esto es posible
gracias, en gran parte, al
protocolo HTTP, sus métodos
y los usos de estos.
¿Qué es el protocolo HTTP y
por qué es tan importante?
El “Protocolo de Transferencia de
Hipertexto” es un estándar de
transferencia de todo tipo de datos en
la web que nos dice cómo debemos
hacer este intercambio de datos. Este
funciona gracias a sus métodos o
verbos HTTP y hace nuestra interacción
con internet óptima y segura.
Es importante porque facilita el
envío de datos y el almacenamiento
de estos en un servidor. Es de hecho
el protocolo más conocido y la razón
por la que la URI de las páginas web
empiezan “https://” (esta “s” al final
significa “secure” lo cual te dice que
el sitio web en el que estás es seguro
contra el robo de datos).
Así es como funciona
todo con HTTP:
1. Ingresas al
navegador.
2. Ingresas una página
web en la barra de
búsqueda.
6. El servidor de la
página en cuestión
envía todos los
datos y multimedia
que luego se
renderizarán en la
interfaz de usuario.
5. Luego de que el
navegador da con la
página, envía peticiones
como GET a la dirección
IP para obtener
recursos como el HTML,
CSS, JS y los JSON’s del
servidor.
3. El navegador solicita la
página web al DNS, que
es como un gran
repertorio de páginas
web.
4. Si este encuentra algo, te
carga la página. Si no, te
muestra el error 404.
LOS MÉTODOS HTTP
¿QUÉ SON Y CÓMO FUNCIONAN?
Como conducto regular del envío de
datos en la web, HTTP define un
conjunto de
así llamados “métodos de petición”
que sirven para indicar acciones con
relación a recursos determinados.
Puedes crear, leer, suprimir y
actualizar datos con estos verbos o
sustantivos HTTP.
Los métodos más
comunes son:
GET:
Este se usa para la
obtención de datos. Un
ejemplo práctico: Siempre
que ingresas a una página
web esto se representa
como una petición GET ya
que el evento activado al
ingresar a la página hace
que el servidor responda
con la información que
contiene toda la interfaz
de usuario junto con su
interacción, archivos
multimedia, etc.
https://www.abrirllave.com/html/ejemplo-metodo-geten-atributo-method.php
POST:
Se usa para la creación
de datos, pueden ser en
paquetes grandes, y el
envío de estos de
manera privada al
servidor. Ilustración:
Cuando creas tu
contraseña de usuario o
guardas ciertos
registros en una página
web estos se almacenan
de forma privada en el
servidor.
https://www.abrirllave.com/html/ejemplo-metodo-post-en-atributomethod.php
PUT:
Es necesario para la
actualización de datos,
aunque también crea nuevos.
Ejemplo: Le indicas a una base
de datos la actualización
completa de un registro.
Envías un nuevo archivo. Si el
elemento existe, se reemplaza.
Si no existe, se crea dentro del
servidor.
https://www.oscarblancarteblog.com/2018/12/03/
metodos-http-rest/
HEAD:
realiza una acción similar a
GET, pero a diferencia de
este, HEAD solo solicita los
metadatos de un recurso y
no todos los elementos de
este. Ejemplo: Queremos
tener el encabezado de la
respuesta en vez del
archivo (puede ser muy
pesado).
https://www.ionos.com/es-us/digitalguide/hosting/cuestionestecnicas/http-request/?srsltid=AfmBOoocMCIU-hqW9QqFTz8JMPngTSFg1ZwtSY4yMRveP07VItn0UBY
PATCH:
Este es utilizado para
efectuar modificaciones
parciales a un recurso.
Es similar a PUT pero
actúa con uno o ciertos
datos de un registro. Un
caso para esto sería: Se
http://www.softwero.com/2017/08/cuando-debemosmodifican ciertas
utilizar-el-metodo-patch.html
instancias o propiedades
dentro de un formulario
o registro.
DELETE:
A veces una necesidad en nuestra vida es borrar o
deshacernos de información. Así como creamos,
obtenemos y actualizamos datos, con este método en
particular podemos borrarlos. Una ilustración sencilla:
Cuando se elimina una cuenta en una red social, muy
posiblemente se usó este método para eliminarla del
conjunto de “usuarios”.
https://www.oscarblancarteblog.com/2018/12/03/metodoshttp-rest/
OPTIONS:
Es quizá el más importante y el que más nos ayudará a mantener
buenas prácticas. Resulta que este método permite a los clientes
descubrir o verificar los métodos HTTP permitidos por un servidor.
Para dar un ejemplo: Quieres saber qué métodos soporta un
servidor.
https://unaaldia.hispasec.com/2018/09/explotando-el-metodo-put-para-vulnerar-servidores-web.html
CONCEPTOS IMPORTANTES DE
HTTP
Aunque los métodos HTTP pueden variar en cuanto a
semántica (crear, leer, suprimir y actualizar), estos aún
pueden compartir similitudes entre sí. Los métodos HTTP ser
“safe”, “idempotent” y “cacheable”.
safe:
Se puede decir que este
tipo de método es para
“solo lectura” concerniente
a lo que pasa dentro del
servidor. Se considera
“seguro” porque no genera
ningún cambio considerable
en el servidor. GET, HEAD,
OPTIONS y TRACE
pertenecen a esta
categoría.
idempotent:
El output o respuesta de
estos métodos va a ser
la misma no importando
el número de veces que
usemos un método de
esta categoría. Esto no
le supone al servidor el
riesgo de ser alterado
porque simplemente
devuelven el mismo
recurso, actualizan el
mismo recurso o quitan
el mismo recurso. Se
pueden considerar
como idempotentes:
GET, HEAD, PUT, DELETE,
OPTIONS, TRACE.
cacheable:
Un método HTTP se
considera cacheable
cuando la respuesta que
se da desde el servidor
se puede almacenar
para uso en el futuro:
GET y HEAD se juntan a
esta categoría.
CONCLUSIÓN Y BIBLIOGRAFÍA
Ahora sabemos que en el mundo del desarrollo
web, tener conocimiento y dominio de los métodos
HTTP puede mejorar en grandes aspectos la
comunicación cliente-servidor y optimizar los
procesos dentro de nuestras páginas web. La
información en esta infografía es nada, a pesar de
ser un resumen, a comparación de todo lo que hay
para aprender y practicar acerca de HTTP y
HTML. Nunca pares de aprender.
Fuentes:
http.dev, HTTP Methods: https://http.dev/methods#cacheable
mlytics, HTTP Methods: https://learning.mlytics.com/the-internet/httprequest-methods/
MDN. HTTP request methods: https://developer.mozilla.org/enUS/docs/Web/HTTP/Methods
Platzi. Cursos. https://platzi.com/clases/2272-nestjs/37080-metodosput-y-delete-para-editar-y-eliminar/