我目前正在用 C 语言为那些试图破解我的服务器的人制作一个额外的轻量级 Web 服务器,但我想知道用于输出的正确编码。
我正在制作一个简单的测试页面,仅以粗体显示“错误”,并将“这是一个被黑客攻击的服务器”作为主要文本。
我尝试使用最少的 HTTP header ,以便页面可以更好地显示。
目前,Opera 浏览器可以正确处理下面的 html,但是,当我在 CURL 中测试它时不使用任何参数,屏幕上什么也没有出现。相反,我希望出现 HTML 代码。
当我为 CURL 使用 -I 参数时,预期的 HTTP header 正确显示。
char buf[10000]={"HTTP/1.1 200 OK\r\nContent-type: text/html\r\n\r\n<html><head><title>hacked</title></head><body><H1>Error</h1><p>This is a hack-ed-server</p></body></html>\n"};
在所有测试中,我使用了相同的正确 IP 地址和正确的端口号,并且包含上述代码的服务器守护进程一直在运行。
我很好奇。 CURL、Opera 或我的代码有问题吗?我是否错误地格式化了 HTTP header 的返回代码?
最佳答案
... I then proceed to test it with apache bench and got "connection reset by peer"
您可能没有完整地阅读来自客户端的请求,而只是将您的响应转储给客户端并关闭了连接。另见 Perl: Connection reset with simple HTTP server .
除此之外,您提供的单行代码不足以回答您的问题,因为它与您从客户端读取的内容、发送的内容以及关闭 TCP 套接字的时间相关。响应本身很好,但您最好添加一个内容长度。
关于html - 为所有客户端格式化原始 HTML 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32942437/