html - 为所有客户端格式化原始 HTML 输出

标签 html c sockets http curl

我目前正在用 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/

相关文章:

c - 绑定(bind)到 INADDR_ANY 和特定 IP 的差异

javascript - 如何暂时停止 title 属性显示工具提示?

javascript - 更改类函数不起作用

c - 在 C 语言中,为什么指向字符的指针变量的值在赋值后不能更改?

c - getchar和putchar的实际用途是什么?

java - 异步UDP如何在java中从客户端获取ip和端口?

html - 组合悬停不起作用

javascript - 语法错误: missing : after property id when html file inspection

c - 编程 MSP430 的工具和步骤

java - Android中如何处理OutOfMemoryError