Este material es parte de la serie “Introducción al desarrollo empresarial”. Artículos anteriores:
¡Hola! Hoy entenderemos los protocolos HTTP y HTTPS. Pero primero, aclaremos un punto: estamos hablando de protocolos de transferencia de datos a través de la red en la capa de aplicación del modelo OSI. Como recordará, discutimos el modelo OSI en uno de los artículos anteriores. Y si no lo recuerdas, aquí lo tienes .
Vale la pena señalar de inmediato que el protocolo HTTP consta únicamente de texto. Bueno, lo que más nos interesa es la estructura en la que se ubica este texto. Cada mensaje consta de tres partes:
¿Qué es un protocolo de transferencia de datos?
Así se llama el acuerdo generalmente aceptado, gracias al cual los desarrolladores de diferentes servicios envían información en un solo formulario. Por ejemplo, al utilizar Google Chrome, puede obtener información tanto de Facebook como de Twitter, porque los desarrolladores la transmiten mediante el protocolo HTTP estándar y su navegador puede manejarlo. Las reglas uniformes también son muy convenientes para los propios desarrolladores del lado del servidor: hay muchas bibliotecas que pueden convertir información por usted y enviarla utilizando el protocolo requerido. HTTP se concibió originalmente como un protocolo para transferir páginas HTML. Este fue el caso durante mucho tiempo, pero ahora los programadores suelen transferir cadenas y archivos multimedia a través de él. En general, este protocolo es versátil y flexible, y realmente fácil de usar. Ahora descubramos cómo hacer esto.
estructura HTTP
Vale la pena señalar de inmediato que el protocolo HTTP consta únicamente de texto. Bueno, lo que más nos interesa es la estructura en la que se ubica este texto. Cada mensaje consta de tres partes:
- Línea de salida: define los datos del servicio.
- Encabezados: descripción de los parámetros del mensaje.
- Cuerpo del mensaje (Cuerpo): datos del mensaje. Debe estar separado de los títulos por una línea en blanco.
Cómo se ve una solicitud HTTP simple
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
La línea de salida contiene:
- OBTENER - método de solicitud;
- / — solicitar ruta (ruta);
- HTTP/1.1 - versión del protocolo de transferencia de datos.
- Anfitrión : el anfitrión al que se dirige la solicitud;
- User-Agent es el cliente que envía la solicitud.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
La solicitud se envía a javarush.com/user/create/json, la versión del protocolo es HTTP/1.1. Aceptar especifica qué formato de respuesta espera recibir el cliente, Tipo de contenido especifica en qué formato se envía el cuerpo del mensaje. Longitud del contenido: la cantidad de caracteres en el cuerpo. Una solicitud HTTP puede contener muchos encabezados diferentes. Se pueden encontrar más detalles en la especificación del protocolo .
Respuestas HTTP
Después de recibir la 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 inicial 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). Los títulos indican el tipo y la extensión del contenido. El cuerpo de la respuesta contiene el código HTML que el navegador dibujará en la página HTML.
Códigos de estado de respuesta
Todo está claro con el cuerpo del mensaje y los encabezados, pero vale la pena decir algunas palabras sobre los códigos de estado. Los códigos de estado de respuesta son siempre de tres dígitos y el primer dígito del código indica la categoría de la respuesta:- 1xx - informativo. La solicitud ha sido recibida, el servidor está listo para continuar;
- 2xx - exitoso. La solicitud ha sido recibida, comprendida y procesada;
- 3xx - redirección. Se deben realizar los siguientes pasos para procesar la solicitud;
- 4xx - error del cliente. La solicitud contiene errores o no cumple con el protocolo;
- 5xx: error del servidor. El servidor no pudo procesar la solicitud, aunque estaba redactada correctamente;
- 200 OK: la solicitud fue recibida y procesada exitosamente;
- 201 Creado: la solicitud se recibió y procesó exitosamente, lo que resultó en la creación de un nuevo recurso o su instancia;
- 301 Movido permanentemente: el recurso solicitado se ha movido permanentemente y las solicitudes posteriores deben realizarse en la nueva dirección;
- Redirección temporal 307: el recurso se ha movido temporalmente. Por ahora, puedes acceder a él mediante la redirección automática;
- 403 Prohibido: la solicitud es clara, 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 para responder a esta solicitud;
- 505 Versión HTTP no compatible: el servidor no admite la versión especificada del protocolo HTTP.
GO TO FULL VERSION