Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio retialis / Servitor HTTP simplex
Multis petitionibus servire
Servitor paginae prioris unam petitionem tractavit et deinde
consistit. Servitor verus currere pergit, clienti post clientem
respondens. Involve gradus accipe-lege-responde in loop —
et quia anulus variabiles circa se declaratas communicat, statum inter
petitiones servare potes. Hic servitor emptores suos numerat et
unicuique numerum eius dicit:
my $listener = IO::Socket::INET.new(
:listen,
:localhost('127.0.0.1'),
:localport(8080),
);
my $customer = 0;
loop {
my $conn = $listener.accept;
$conn.recv;
$customer++;
# heredoc qq:to exemplar mundum facit — variabilis recta interponitur
my $body = qq:to/END/;
Hello!
You are customer number $customer.
Thanks for visiting.
END
# mitte caput primum, deinde corpus, ut duas scripturas separatas
$conn.print("HTTP/1.0 200 OK\r\nContent-Type: text/plain\r\n\r\n");
$conn.print($body);
$conn.close;
}.accept moratur donec cliens se
coniungat, deinde foramen novum pro illo uno colloquio reddit. Quia
$customer extra anulum vivit, ex una petitione in sequentem
superstes est: primus visitator emptor 1 est, secundus
2, et ita porro. Anulus numquam sponte finit, itaque
servitor stat donec eum per Ctrl-C sistas.
Duo notatu digna sunt:
Responsum duabus partibus scribitur. Primum
.printcaput HTTP mittit — lineam status, genus contentorum, et lineam vacuam quae capita finit. Secundum corpus mittit. HTTP non curat utrum haec una scriptura an pluribus adveniant, itaque ea dividere formulam protocolli fixam ab ea parte quae revera mutatur seiungit.Corpus ex exemplari venit.
qq:to/END/heredoc est — catenaqqquae usque ad lineamENDcurrit. Per plures lineas se extendit et$customerprorsus ut quaelibet catena duplicibus virgulis notata interponit, quod eam instrumentum exemplaris nitidum ad responsum aedificandum facit. (Una ex structuris citandi ex cursu superiore est.)
Coniunge te aliquotiens ut calculum ascendentem spectes:
$ curl http://127.0.0.1:8080/
Hello!
You are customer number 1.
Thanks for visiting.
$ curl http://127.0.0.1:8080/
Hello!
You are customer number 2.
Thanks for visiting.Petitiones ita alteram post alteram tractare genus servitoris simplicissimum est. Servitor in productione unamquamque coniunctionem quoque in filo vel promisso proprio serviret, ne cliens tardus ceteros retineret — sed cor eius exacte hic anulus est: accipe, lege, responde, repete.
Navigatio cursus
← Petitioni respondere | Via litteris maioribus →
💪 Vel recta ad exercitationem
huius sectionis i.