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.1Tres 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.
Desafío
DifícilOmite curl por completo y habla HTTP tú mismo.
- Crea
index.htmlque contengaraw - Sirve la carpeta en el puerto 9110
- Envía una solicitud
GET /index.html HTTP/1.0sin procesar mediantence 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 OKRecuerda la línea en blanco:
printf 'GET /index.html HTTP/1.0\r\n\r\n'.
Pruébalo tú mismo
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
2Nombres y DNS
Por qué existen los nombresEl archivo hostsBuscar un nombreTipos de registrosRepaso: nombres5HTTP a mano
Anatomía de una solicitudMétodos de solicitudCódigos de estadoEncabezados de respuestaEscribir una respuestaRepaso: conceptos básicos de HTTPPractica por tu cuenta: Playground de Terminal