Menu
Coddy logo textTech

Anatomía de una solicitud

Lección 20 de 47 del curso Redes con la terminal de Coddy.

Debajo de curl, una solicitud HTTP es texto sin formato enviado a través de un socket. Comienza con una línea que indica lo que quieres:

GET /index.html HTTP/1.1

Tres partes: el método (qué tipo de operación), la ruta (qué elemento) y la versión. Después vienen los encabezados, uno por línea; luego, una línea en blanco y, opcionalmente, el cuerpo.

La línea en blanco no es decorativa. Es la forma en que el servidor sabe que los encabezados han terminado y que comienza el cuerpo, si lo hay. Una solicitud sin ella se queda bloqueada, porque el servidor todavía está esperando recibir el resto.

Puedes enviar una manualmente. nc abre una conexión sin procesar y todo lo que le proporciones va directamente por la red:

printf 'GET / HTTP/1.0\r\n\r\n' | nc 127.0.0.1 9110

\r\n es el final de línea que HTTP requiere, y el segundo es esa línea en blanco.

challenge icon

Desafío

Difícil

Omite curl por completo y habla HTTP tú mismo.

  1. Crea index.html que contenga raw
  2. Sirve la carpeta en el puerto 9110
  3. Envía una solicitud GET /index.html HTTP/1.0 sin procesar mediante nc e imprime solo la primera línea de lo que devuelva

Esa primera línea es la línea de estado del servidor. Salida esperada:

HTTP/1.0 200 OK

Recuerda la línea en blanco: printf 'GET /index.html HTTP/1.0\r\n\r\n'.

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Redes con la terminal

Practica por tu cuenta: Playground de Terminal