HTTP


En este post vamos a conocer el protocolo http y las peticiones que se puede hacer por medio de peticiones y respuestas.

HTTP
oscar Escrito por oscar 28 August 2020 9201 0

HTTP (HyperText Transfer Protocol) es el protocolo de comunicación que permite la transferencia de información en la web entre un cliente (por ejemplo, un navegador) y un servidor. Este protocolo define cómo se estructuran las peticiones y respuestas para intercambiar datos, siendo la base de casi todas las interacciones en la web.

¿Qué es HTTP?

HTTP es un protocolo de la capa de aplicación en el modelo OSI que se basa en un modelo de cliente-servidor.

Cliente: Un navegador o una aplicación que realiza peticiones HTTP a un servidor. Por ejemplo, cuando ingresas una URL en el navegador, el cliente envía una solicitud HTTP al servidor.

Servidor: El servidor recibe la solicitud del cliente, procesa la petición (por ejemplo, busca el archivo o los datos solicitados) y devuelve una respuesta HTTP.

Petición-Respuesta: HTTP sigue un ciclo sencillo:

Diferenciar entre HTTP y HTTPS

La diferencia principal entre HTTP y HTTPS radica en la seguridad de la comunicación entre el cliente y el servidor.

  HTTP HTTPS
Definición HTTP es un protocolo de comunicación sin cifrado, utilizado para la transferencia de datos en la web. HTTPS es la versión segura de HTTP. Utiliza un protocolo de seguridad llamado SSL/TLS (Secure Sockets Layer / Transport Layer Security) para cifrar los datos que se transfieren entre el cliente y el servidor.
Seguridad Los datos transmitidos mediante HTTP no están cifrados, lo que significa que cualquier información intercambiada entre el cliente (navegador) y el servidor puede ser vista por terceros si se intercepta la conexión.

Los datos transmitidos mediante HTTPS están cifrados, lo que significa que aunque se intercepten, no pueden ser leídos fácilmente por terceros. Esto protege información confidencial como contraseñas, detalles de tarjetas de crédito y cualquier tipo de datos sensibles.

HTTPS requiere un certificado SSL/TLS instalado en el servidor, que valida la identidad del sitio web y habilita la encriptación.

Uso comùn HTTP es adecuado para sitios web públicos que no manejan información confidencial, como blogs o sitios informativos. Se utiliza principalmente en sitios que manejan datos confidenciales, como tiendas en línea, bancos, redes sociales o cualquier servicio que implique la transmisión de información personal.
Puerto Utiliza el puerto 80 para la comunicación. Utiliza el puerto 443 para la comunicación.
Ejemplo http://www.ejemplo.com https://www.ejemplo.com

Solicitud o de HTTP

Una solicitud HTTP es un mensaje enviado por el cliente (generalmente un navegador web o una aplicación) al servidor, pidiendo que realice una acción específica, como entregar un recurso (una página web, un archivo, etc.) o enviar datos a un servidor.

Anatomía de una solicitud HTTP

Una solicitud HTTP tiene una estructura bien definida con cuatro componentes principales:

Línea de solicitud (Request Line)

La primera línea de la solicitud especifica el método HTTP, el URI (Uniform Resource Identifier) y la versión del protocolo HTTP.

#METODO URI             VERSIÓN_DEL_PROTOCOLO
 GET    /pagina-ejemplo HTTP/1.1

Cabeceras (Headers)

Las cabeceras HTTP proporcionan información adicional sobre la solicitud o el cliente. Cada cabecera es una línea que sigue el formato nombre: valor.

Host: www.ejemplo.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml

Cabeceras comunes:

Cuerpo de la Solicitud (Request Body)

No todas las solicitudes HTTP tienen un cuerpo. El cuerpo de la solicitud se utiliza para enviar datos al servidor, especialmente en métodos como POST, PUT y PATCH.

El cuerpo es la parte de la solicitud donde se envían los datos (formulario, JSON, archivos, etc.).

POST /api/usuarios HTTP/1.1
Host: www.ejemplo.com
Content-Type: application/json
Content-Length: 46

{
  "nombre": "Juan",
  "correo": "juan@ejemplo.com"
}

Línea en blanco (Separador)

Una línea en blanco se coloca entre las cabeceras y el cuerpo de la solicitud para separarlos.

Anatomía de una respuesta HTTP

Una respuesta HTTP es el mensaje que envía un servidor al cliente (por ejemplo, un navegador web) tras recibir y procesar una solicitud HTTP. La respuesta contiene el estado de la solicitud, las cabeceras que describen la respuesta, y el cuerpo con el contenido solicitado o un mensaje de error.

Línea de estado (Status Line)

La primera línea de una respuesta HTTP indica el estado de la solicitud y tiene el siguiente formato:

#VERSIÓN_DEL_PROTOCOLO CÓDIGO_DE_ESTADO FRASE_DE_ESTADO
HTTP/1.1               200              OK

Cabeceras de respuesta (Response Headers)

Las cabeceras en una respuesta HTTP proporcionan información adicional sobre la respuesta y el servidor. Cada cabecera sigue el formato nombre: valor.

Content-Type: text/html; charset=UTF-8
Content-Length: 3495
Server: Apache/2.4.29 (Ubuntu)

Cabeceras comunes:

Cuerpo de la respuesta (Response Body)

El cuerpo de la respuesta HTTP contiene los datos solicitados o un mensaje de error. Dependiendo del tipo de respuesta, puede ser una página HTML, un archivo JSON, una imagen, un archivo descargable, entre otros.

El tipo de contenido (HTML, JSON, XML, etc.) que se envía en el cuerpo de la respuesta está definido en la cabecera Content-Type.

Otros ejemplos de contenido en el cuerpo:

Ejemplo completo de una respuesta HTTP

HTTP/1.1 200 OK
Date: Mon, 23 Sep 2024 10:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 3495
Server: Apache/2.4.29 (Ubuntu)

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Página de ejemplo</title>
</head>
<body>
    <h1>Bienvenido a la página de ejemplo</h1>
    <p>Esta es una página de prueba generada por el servidor.</p>
</body>
</html>

 


Comentario

Debe aceptar antes de enviar