格式化所有客户端的原始HTML输出

时间:2015-10-05 06:24:41

标签: html c sockets http curl

我目前正在C中为试图破解我的服务器的人制作一个额外的轻量级Web服务器,但我想知道用于输出的正确编码。

我制作了一个简单的测试页面,只显示"错误"用粗体和"这是一个黑客服务器"作为主要文本。

我尝试使用最小的HTTP标头,以便页面可以更好地显示。

目前Opera浏览器正确处理下面的html,但是,当我在CURL中使用no参数测试它时,屏幕上没有任何参数。我反而希望HTML代码出现。

当我对CURL使用-I参数时,预期的HTTP标题会正确显示。

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标头格式化了返回代码?

1 个答案:

答案 0 :(得分:0)

  

...然后我继续用apache bench测试它并获得“peer peer reset”

您可能没有完全从客户端读取请求,只是将响应转储到客户端并关闭连接。另请参阅Perl: Connection reset with simple HTTP server

除此之外,您提供的单行代码不足以回答您的问题,因为它与您从客户端读取的内容,发送的内容以及关闭TCP套接字的内容相关。响应本身很好,但你最好添加一个内容长度。