0% encontró este documento útil (0 votos)
114 vistas19 páginas

Introducción al Protocolo HTTP

Introducción al protocolo HTTP. Artículo de conceptos básicos de HTTP
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
114 vistas19 páginas

Introducción al Protocolo HTTP

Introducción al protocolo HTTP. Artículo de conceptos básicos de HTTP
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Be part of a better internet.

Get 20% off membership for a limited time

Introducción al protocolo HTTP


diego.coder26 · Follow
6 min read · May 15, 2022

31
Photo by Robynne Hu on Unsplash

Artículo de conceptos básicos de HTTP. Estructura básica y elementos del


protocolo, en conjunto a códigos de estado y otros.

Recomendaciones
Antes de empezar a estudiar el protocolo HTTP, se recomienda contar con
algunos conocimientos previos antes de leer este artículo, por lo cual, dejo la
invitación a revisar los siguientes enlaces de apoyo opcionales:

Introducción al modelo TCP/IP


Artículo básico introductorio al modelo TCP/IP. Funcionamiento,
protocolos, características y capas.
medium.com

El protocolo HTTP
El protocolo HTTP, o “Hypertext Transfer Protocol” en inglés, es un
protocolo fundamental que posibilita la realización de solicitudes de datos y
recursos a través de la web. Proporciona reglas y estructuras predefinidas
para la comunicación, estableciendo un lenguaje común entre el emisor y el
receptor de la información.

Este protocolo fue concebido por Tim Berners-Lee entre los años 1989 y 1991
mientras trabajaba en el CERN. A lo largo del tiempo, ha evolucionado sin
perder gran parte de su simplicidad original, y su versión más reciente es
HTTP/2.

Es crucial señalar que el internet se sustenta en una pila de protocolos de


comunicación, y HTTP es uno de ellos. Este protocolo opera en la capa
superior del stack, conocida como la capa de aplicación. La constante
evolución de HTTP refleja la adaptabilidad necesaria para satisfacer las
demandas cambiantes del mundo digital.

Arquitectura cliente servidor


El protocolo HTTP funciona sobre una arquitectura cliente-servidor. Esta
arquitectura se basa en una relación de comunicación entre dos entidades:
el cliente y el servidor.

Cliente web: Es cualquier software que es capaz de acceder a un servidor


y recuperar información en la web. Uno de los clientes más conocidos y
utilizados para esta labor es el navegador web, aunque no es el único,
existen otros clientes compatibles con el protocolo HTTP como por
ejemplo la herramienta Curl disponible en la mayoría de los sistemas
basados en Unix.

Servidor web: Un servidor web es un servidor conectado al internet que


espera permanentemente de solicitudes HTTP. Este servidor conoce y
entiende este protocolo debido a un software instalado que está
activamente escuchando. Uno de los software más conocidos y utilizados
que se instalan en el servidor es Nginx. Este software es capaz de
interpretar las solicitudes HTTP y a su vez, enviar una respuesta al cliente
que solicita un recurso.

En el contexto del protocolo HTTP, el mensaje que el cliente envía al


servidor se llama “request” (solicitud), y el mensaje que el servidor envía de
vuelta al cliente se llama “response” (respuesta). Estos términos reflejan la
naturaleza de la interacción entre el cliente y el servidor.

NOTA 🤓: Existen múltiples herramientas como Apache o IIS que son


competidores de Nginx. Consultar documentación correspondiente para
saber más información.

Comunicación mediante mensajes HTTP


La comunicación entre un cliente y un servidor se realiza mediante
mensajes HTTP. El protocolo HTTP define la estructura y el formato de estos
mensajes, que se intercambian entre el cliente y el servidor para realizar
solicitudes y recibir respuestas. Estos mensajes contienen información sobre
la acción que se está solicitando.

En una transacción típica, el cliente envía una solicitud HTTP al servidor, y


el servidor responde con un mensaje HTTP que contiene la información
solicitada o indica el resultado de la operación. Este intercambio de
mensajes permite la transferencia de datos y recursos entre el cliente y el
servidor, formando la base de la comunicación en la arquitectura cliente-
servidor en la web.

Estructura mensaje HTTP


Estos mensajes HTTP deben responder a una estructura en particular
definidas en el estándar. Los mensajes HTTP deben contener 3 elementos
esenciales:
1. Línea de petición (Request line)

2. Cabecera HTTP (Header).

3. Cuerpo HTTP (Body).

A continuación una breve descripción de cada uno de estos elementos de un


mensaje HTTP.

1. Línea de petición (Request line)


La línea de petición en un mensaje HTTP contiene información sobre la
acción que se realizará hacia la otra entidad. Esta información se especifica
mediante métodos, que básicamente representan la acción que se va a llevar
a cabo, como obtener información o actualizarla.

Aquí algunos métodos establecidos por el estándar:

GET — Solicita información.

POST — Envía información.

PUT — Actualiza información.

DELETE — Elimina información.

Aquí un vistazo del contenido de la línea de petición:

GET /api/autos HTTP/1.1

NOTA 🤓: Existen más métodos establecidos, para más información


consultar: https://developer.mozilla.org/es/docs/Web/HTTP/Methods

2. Cabeceras HTTP (Headers)


Las cabeceras en mensaje HTTP son como etiquetas informativas que el
cliente envía al servidor junto con la solicitud. Proporcionan información
esencial sobre la transacción en curso. Estas cabeceras se forman con la
sintaxis “Cabecera: Valor” y se incluyen en la parte superior de la solicitud.

Encontramos la siguiente información en las cabeceras:

Tipo de contenido que se aceptan.

Tamaño del contenido de la petición en bytes.

Fecha de la petición.

Nombre del dominio o dirección IP.

Información del navegador o sistema operativo.

Entre otros.

NOTA 🧐: Las cabeceras se pueden agrupar en los siguientes grupos;


cabeceras generales, cabeceras de petición y cabeceras de entidad. Para más
información consultar: https://developer.mozilla.org/en-
US/docs/Web/HTTP/Headers

Aquí un vistazo del contenido de una cabecera:


Host: en.wikipedia.org
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html
Content-Length: 345

4. Cuerpo HTTP (Body)


En un mensaje HTTP, el cuerpo (o payload) es información adicional que el
cliente envía al servidor. Puede ser cualquier conjunto de datos y puede estar
en cualquier formato compatible con el protocolo HTTP, como XML, JSON,
texto plano, etc.

Podemos enviar la siguiente información en el cuerpo:

Usuario y contraseñas.

Datos de formularios.

Archivos.

Entre otros.

Aquí un vistazo del contenido de un cuerpo en formato JSON:


{
"nombre": "Diego",
"apellido": "Cortés"
}

Ejemplo completo de mensaje HTTP con sus 3 partes

POST /api/users HTTP/1.1


Host: en.wikipedia.org
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Content-Length: 345
{
"nombre": "Diego",
"apellido": "Cortés"
}

NOTA 🤓: Tanto el mensaje de solicitud como el de respuesta en HTTP


siguen la misma estructura básica que consta de estas tres partes
principales.

Códigos de estado en HTTP


El código de estado en HTTP es un número de tres dígitos que proporciona
información sobre el resultado de la solicitud. Estos códigos se dividen en
cinco clases:

1xx (Respuestas informativas): La solicitud fue recibida, continúa el


proceso.

2xx (Respuestas exitosas): La acción se completó con éxito o se entendió


y aceptó.

3xx (Redirecciones): Se necesita realizar más acciones para completar la


solicitud.

4xx (Errores del cliente): La solicitud contiene sintaxis incorrecta o no se


puede cumplir.

5xx (Errores del servidor): El servidor falló al cumplir una solicitud


aparentemente válida.
Search Write

Los códigos de estado en HTTP son esenciales para comunicar el resultado


de una solicitud entre el cliente (navegador o aplicación) y el servidor. Estos
códigos proporcionan información rápida y estandarizada sobre cómo se
manejó la solicitud y si fue exitosa, si se redirigió, o si hubo algún problema.

HTTPS en ayuda de la seguridad


HTTP si bien es cierto que es un protocolo que nos facilita la comunicación y
estandarización web, tiene una pequeña desventaja la cual es la seguridad.
Debido a que los paquetes enviados en internet no están cifrados, pudiendo
ser capturados por terceros.

HTTPS utiliza una combinación de dos protocolos de comunicación ( HTTP


+ SSL /TLS ) que hace que cualquier información transmitida en la red se
establezca como cifrada. En otras palabras HTTPS es la versión segura.

NOTA 📚: para obtener HTTPS en el servidor se debe contar con otros


recursos como un certificado SSL y configuraciones, para más información
consultar en este artículo de Cloudflare.

Recursos HTTP
HTTP es un protocolo que contiene mucho más características que las
descritas en este artículo, te invito a seguir profundizando sobre este tema
en las siguientes páginas oficiales:

Mozilla developer : https://developer.mozilla.org/es/docs/Web/HTTP

W3C : https://www.w3.org/Protocols/
Gracias por haber llegado hasta aquí, si encuentras esto útil, no olvides
aplaudir 👏 . Suscríbete para obtener más contenido 🔔.
Si necesita ayuda adicional, comunícate conmigo 🤠.

@diego.coder | Linktree
Systems analyst focused on programming with more than 5+ years
of experience.
linktr.ee

Muchas gracias por leer, agradezco su tiempo.

Https
Written by diego.coder26 Follow

419 Followers

Nuevo canal de Youtube para más contenido!


https://www.youtube.com/@diego.coder26

More from diego.coder26

diego.coder26 diego.coder26

Instalar múltiples versiones de Presente simple y presente


Node.js en Windows con NVM… continuo (reglas gramaticales en…
Artículo básico sobre la instalación de la Artículo básico sobre el presente simple y
herramienta NVM. Comandos y ejemplos. continuo. Conceptos, verbo to be, reglas y…
Dec 30, 2023 13 1 Jul 24, 2022 8

diego.coder26 diego.coder26

Las mejores APIs públicas para Sentencias DML en SQL (INSERT,


practicar programación SELECT, UPDATE y DELETE)
Artículo sobre las mejores APIs para practicar Artículo básico sobre SQL. Sentencias DML,
y modelar nuestros desarrollos. casos de uso y ejemplos (INSERT, SELECT,…

Jan 10 18 Aug 9, 2023 3

See all from diego.coder26


Recommended from Medium

Alexander Nguyen in Level Up Coding Vinayak Singh

The resume that got a software REST vs SOAP


engineer a $300,000 job at Google. A comprehensive guide between the two API
1-page. Well-formatted. architectural patterns

Jun 1 8.3K 95 Jan 16 52

Lists

Staff Picks Stories to Help You Level-Up


670 stories · 1082 saves at Work
19 stories · 662 saves

Self-Improvement 101 Productivity 101


20 stories · 2171 saves 20 stories · 1927 saves

Saurabh Malviya Louis Trinh

Crack the concurrency code: 10 Efficient Data Pagination in


Java interview questions with… MongoDB with Skip, Limit, and…
1. How do you ensure thread safety in a Understanding Skip and Limit:
multithreaded environment?

Jun 14 5 May 7 3
LORY Afan Khan in JavaScript in Plain English

A basic question in security Microsoft is ditching React


Interview: How do you store… Here’s why Microsoft considers React a
Explained in 3 mins. mistake for Edge.

May 12 3.6K 37 Jun 6 1.5K 43

See more recommendations

Help Status About Careers Press Blog Privacy Terms Text to speech Teams

También podría gustarte