我怎样才能使xinetd的服务,使浏览器可以可靠地显示其输出?
该服务始终在其stdin上看到HTTP GET请求,并将其答复发送到stdout。 xinetd处理tcp连接。
Firefox 有时会正确显示输出。 但是有时它声称服务器在还在加载页面时重置了连接。 有时它会显示所有的输出,但不断等待更多(当我然后按下ESC,它使一个新的HTTP连接到服务器的请求)。
xinetd服务的定义是:
service test { disable = no id = test type = UNLISTED port = 8043 wait = no socket_type = stream flags = IPv4 user = root server = /usr/local/bin/test.sh }
这个简单的testing脚本忽略input,只是回声最小的HTML。 它引起与真实情况相同的问题,尽pipe我在最后添加了一个closuresstdout的命令。
echo 'HTTP/1.1 200 OK' echo 'Content-Type: text/html; charset=UTF-8' echo '' echo '<html>' echo '<body style="background:#dfd">' echo '<b>hello, world!</b><br>' echo `date` echo '</body>' echo '</html>'
这和networking服务器有什么不同呢?
我find了两个可能的答案在xinetd'连接重置由对等' :
原来我必须同时做两个,再加上一个:
HTTP/1.0而不是HTTP/1.1 cat一起发送 有人看到更简单的方法吗? HTTP / 1.1标准允许省略Content-Length,而不是closures连接。 一只cat和一系列echo命令之间的区别在哪里?