Když si zprovozním http server přes nc, tak aby vypisoval pro každý request unikátní a aktuální odpověď, vznikne problém,
while true; do
{
echo -ne "HTTP/1.1 200 OK\r\nConnection:close;\r\nContent-type:text/html; Charset=utf-8\r\n\r\n<html>" ;
date '+%T %d/%b' ;
} | nc -l -N -C -p 80 >/dev/null
done
že odpověď pro request vznikne dřív , než dojde k requestu, což znamená že pro první request přijde odpovď z doby spuštění příkazu a je to pak celé "o krok" dozadu.
(vím, proč se tomu tak, děje, to je dané posloupností, že nejdřív se do spící pípy vypíše teď odpověď a až přijde request, ji nc schroustá a pošle jako odpověď a hned poté se připraví odpověď na příště)
A kromě toho nelze do odpověď dostat data z aktuálního requestu (například "hlavičku" GET s cestou ).
Jak elegantně pomocí smyčky a nc (a asi coproc nebo píp) zprovoznit demonstraci serveru aby nebyl o krok pozadu?
A další věc: vzniká mi mraky otevřených socketů TCP TIME_WAIT, které zůstávají viset. Hádám, že Connection-close v tom nehraje roli.
Nejde mi o to to vyřešit to nahrazením Apache serveru s php prostředím a vytvořením index.php souboru s obsahem <?echo time(); ?>, ale vyřešit přes nc a bash.