Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación web / Un servidor HTTP sencillo / Exercises / La ruta en mayúsculas
Solución: La ruta en mayúsculas
Aquí tienes una posible solución para la tarea.
Código
my $listener = IO::Socket::INET.new(
:listen,
:localhost('127.0.0.1'),
:localport(8080),
);
loop {
my $conn = $listener.accept;
my $request = $conn.recv;
# "GET /hello HTTP/1.0" — the path is the second word; drop the leading '/'
my $reply = $request.lines.first.words[1].substr(1).uc;
$conn.print("HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n$reply\n");
$conn.close;
}🦋 Puedes encontrar el código fuente en el archivo text-response.raku.
Salida
HELLOComentarios
.recvlee la petición. Su primera línea esGET /hello HTTP/1.0;.words[1]extrae/hello, y.substr(1)quita la barra inicial para dejarhello..uclo pasa a mayúsculas, y eso se convierte en el cuerpo de la respuesta. La respuesta depende ahora de lo que pidió el cliente: el servidor está procesando la petición, no devolviendo una cadena fija.El bloque entero de aceptar, leer y responder está dentro de un
loop, así que el servidor responde una petición tras otra en lugar de detenerse tras la primera. Detenlo con Ctrl-C.
Navegación del curso
← La ruta en mayúsculas | Cro 101 →