Este material forma parte de la serie "Introducción al desarrollo empresarial". Artículos anteriores:
¡Hola! Hoy aprenderemos sobre los protocolos HTTP y HTTPS. Pero primero, aclaremos un punto: estamos hablando de protocolos para enviar datos a través de una red a nivel de aplicación del modelo OSI. Puede recordar que conocimos el modelo OSI en uno de los artículos anteriores. Si no lo recuerdas, aquí está .

¿Qué es un protocolo de comunicación de datos?
Esto es lo que llamamos el conjunto de reglas acordadas que permiten a los desarrolladores de diferentes servicios enviar información en un formato que otros pueden entender. Por ejemplo, puede utilizar Google Chrome para obtener información tanto de Facebook como de Twitter, ya que los desarrolladores la envían mediante el protocolo HTTP estándar, que permite que su navegador la procese. Las reglas uniformes son muy convenientes para la gente que desarrolla la parte del servidor: hay muchas bibliotecas que pueden convertir información por usted y enviarla usando el protocolo apropiado. HTTP se concibió inicialmente como un protocolo para enviar páginas HTML. Esa es la forma en que se usó durante mucho tiempo, pero ahora los programadores a menudo lo usan para enviar cadenas y archivos multimedia. En general, este protocolo es universalmente aceptado y versátil, y es muy fácil de usar. Y ahora vamos a investigar cómo usarlo.La estructura de HTTP
Debemos notar de inmediato que el protocolo HTTP consiste solo en texto. Lo que más nos interesa es la estructura de este texto. Cada mensaje consta de tres partes:- Línea de inicio: define algunos datos de mantenimiento.
- Encabezados: describen los parámetros del mensaje.
- Cuerpo — Este es el contenido del mensaje. El cuerpo debe estar separado de los encabezados por una línea vacía.
Así es como se ve una solicitud HTTP simple:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
La línea de salida indica:
- GET — El método de la solicitud
- / — La ruta de la solicitud
- HTTP/1.1 — La versión del protocolo
- Host : el host al que se dirige la solicitud
- Agente de usuario : el cliente que envía la solicitud.
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
donde codegym.cc es el host, /send es la ruta de la solicitud y ? es un separador que indica que siguen los parámetros de consulta. Al final, se enumeran los pares clave-valor ("clave=valor"), separados por un ampersand. POST : este método publica información en el servidor. Una solicitud POST puede enviar varios tipos de información: parámetros como pares "clave=valor", JSON, código HTML o incluso archivos. Toda la información se envía en el cuerpo del mensaje. Por ejemplo:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
La solicitud se envía a codegym.cc/user/create/json y la versión del protocolo es HTTP/1.1. "Aceptar" indica el formato de respuesta que el cliente espera recibir. "Tipo de contenido" indica el formato del cuerpo del mensaje enviado en la solicitud. "Content-Length" es el número de caracteres en el cuerpo. Una solicitud HTTP puede contener muchos encabezados diferentes. Para obtener más información, consulte la especificación del protocolo .
Respuestas HTTP
Después de recibir una solicitud, el servidor la procesa y envía una respuesta al cliente:
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
La línea de inicio de la respuesta contiene la versión del protocolo (HTTP/1.1), el código de estado (200) y la descripción del estado (OK). Sus encabezados incluyen el tipo y la longitud del contenido. El cuerpo de la respuesta contiene código HTML que el navegador representa como una página HTML.
Códigos de estado de respuesta
Todo está claro con respecto al cuerpo del mensaje y los encabezados, pero debemos decir algunas palabras sobre los códigos de estado. Los códigos de estado de respuesta son siempre de tres dígitos. El primer dígito del código indica la categoría de la respuesta:- 1xx — Informativo. La solicitud fue recibida. El servidor está listo para continuar.
- 2xx — Exitoso. La solicitud fue recibida, entendida y procesada.
- 3xx — Redirección. Se deben realizar acciones adicionales para procesar la solicitud.
- 4xx: error del cliente. La solicitud contiene errores o no cumple con el protocolo.
- 5xx — Error del servidor. La solicitud se redactó correctamente, pero el servidor no pudo procesarla.
- 200 OK: la solicitud se recibió y se procesó correctamente.
- 201 Creado: la solicitud se recibió y se procesó correctamente, lo que resultó en la creación de un nuevo recurso o instancia.
- 301 Movido permanentemente: el recurso solicitado se movió permanentemente. Las solicitudes posteriores deben realizarse utilizando la nueva dirección.
- Redirección temporal 307: el recurso se ha movido temporalmente. Por ahora, se puede acceder mediante el reenvío automático.
- 403 Prohibido — Se entendió la solicitud, pero se requiere autorización.
- 404 No encontrado: el servidor no encontró el recurso en esta dirección.
- 501 No implementado: el servidor no admite la funcionalidad requerida para responder a la solicitud.
- 505 Versión HTTP no admitida: el servidor no es compatible con la versión especificada del protocolo HTTP.
GO TO FULL VERSION