
Hola a todos, en esta ocasión vamos a ver una parte importante que no debes de saltarte debido a que es un tema fundamental para comprender como funciona la parte más básica de una aplicación, sin más que agregar, comenzamos.
¿HTTP Request?
Las peticiones HTTP (HTTP Request) es la manera en la que un cliente solicita un recurso a un servidor, recursos que tiene almacenados este mismo, por ejemplo: una pagina web, una imagen, un video, etc.
Estructura de una petición HTTP
Request Line
GET /index.html HTTP/1.1
- Método HTTP
- Recurso solicitado
- Versión del protocolo
Cabeceras (Headers)
Los headers proporcionan más información de la solicitud, como tipo de contenido, cookies, credenciales de autenticación.
Ejemplo de cabeceras comunes
Host: www.ejemplo.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9
Referer: https://www.google.com
Cookie: sessionid=abc123
Accept-Language: es-419,es;q=0.9
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Host : indica el servidor al cual se envía la petición
User-Agent: Identifica el navegador, Sistema operativo y plataforma
Accept: Indica que tipo de contenido puede recibir el cliente por parte de la respuesta servidor
Referer: Indica la URL desde donde el usuario llego a la pagina actual
Cookie: Envía cookies almacenadas en el navegador al servidor, como identificadores de sesión, tokens, preferencias de usuario.
Accept-Language: Indica el lenguaje natural y el local que prefiere el cliente
Accept-Encoding: Indica qué tipos de compresión acepta el cliente para recibir respuestas más pequeñas y optimizar la velocidad de carga.
Connection: Controla si la conexión debe mantenerse abierta para múltiples solicitudes o cerrarse después de una sola petición.
¿pero todo esto, donde puedo verlo gráficamente en firefox?
Da click en las imágenes para ver el procedimiento:




¿HTTP Response?
El HTTP response es la respuesta que regresa el servidor después de que un cliente emitió una petición (HTTP request), esta respuesta emite los datos solicitados y otros detalles.

Linea de estado (status line)
- Estado: muestra la respuesta emitida por el servidor, esta respuesta tiende a ser diferente de a cuerdo a lo que este mismo determine. por ejemplo: en este caso nos mandó un código de estado 200, que quiere decir que el recurso existe y que fue devuelto con éxito, el mensaje de estado OK (es una breve descripción del mensaje de estado).
- Versión: Indica la versión del protocolo utilizado HTTP/1.1
- Transferido: No es como tal una cabecera, si no más bien representa el total de tráfico que se ha transferido para esa solicitud en la herramienta que se está utilizando, en este caso estamos utilizando las herramientas de desarrollador de firefox.
- Prioridad de la solicitud: Los navegadores modernos asignan prioridades a las solicitudes HTTP para la optimización de carga en la pagina. Estas son algunas categorías comunes:
▶︎ Highest (Alta prioridad) → Recursos críticos como HTML principal, archivos CSS, scripts esenciales.
▶︎ Medium (Media prioridad) → Archivos JavaScript diferidos o imágenes visibles.
▶︎ Low (Baja prioridad) → Imágenes fuera de la vista inicial, scripts diferidos, fuentes web. - Resolución DNS : significa que el navegador usó el resolvedor DNS configurado en tu sistema operativo (por ejemplo, el de tu proveedor de Internet o uno que hayas configurado como Google DNS
8.8.8.8o Cloudflare1.1.1.1).
Principales códigos de estado
Los códigos de estado están categorizados en cinco grupos:
1xx (Informativos) → La solicitud se está procesando, pero no ha terminado.
2xx (Éxito) → La solicitud fue recibida, entendida y procesada correctamente.
3xx (Redirección) → Se necesita una acción adicional para completar la solicitud.
4xx (Errores del cliente) → La solicitud es incorrecta o no permitida.
5xx (Errores del servidor) → El servidor falló al procesar la solicitud.
Encabezados de respuesta
Los encabezados son información adicional sobre las respuesta y su contenido
Date: Indica la fecha y hora en que el servidor generó la respuesta.
Server: muestre información sobre el software del servidor web que procesó la solicitud.
Last-Modified: Indica la fecha en la que el recurso solicitado fue modificado.
ETag: Es un identificador único para una versión especifica de un recurso 💬
Content-Type: Define el contenido en el cuerpo de la respuesta, ayudando al navegador a interpretarlo correctamente.
Content-Type: text/html; charset=UTF-8 # HTML
Content-Type: application/json # JSON
Content-Type: image/png # Imagen PNG
Keep-Alive: Controla cuanto tiempo se mantiene abierta la conexión entre cliente y servidor para reutilizarla en multiples peticiones.
timeout=5 → Mantiene la conexión abierta durante 5 segundos.
max=100 → Permite hasta 100 solicitudes antes de cerrar la conexión.
Connection: Define el estado de la conexión después de la respuesta.
keep-alive → Mantiene la conexión abierta.
lose → Cierra la conexión después de la respuesta.
Cuerpo de respuesta
El cuerpo de respuesta contiene los datos que el servidor envía al cliente.

Conclusión
De acuerdo con lo visto en este post, espero que se entiendan los conceptos, es un tema muy importante ya que entendemos como se tramitan las peticiones y respuestas desde el cliente al servidor, entonces a la hora de realizar alguna explotación vamos a tener más claro que podemos enviar y recibir de este mismo. Sin nadamas que agregar vamos al siguiente post.


