C Web服务器头发送
我用C编写了一个简单的web服务器,它侦听连接并通过套接字发送一些文本。 我希望服务器能访问我的服务器。在这种情况下,我应该s*结束头,例如代码(200)、内容类型、内容长度*C Web服务器头发送,c,sockets,header,C,Sockets,Header,我用C编写了一个简单的web服务器,它侦听连接并通过套接字发送一些文本。 我希望服务器能访问我的服务器。在这种情况下,我应该s*结束头,例如代码(200)、内容类型、内容长度* 如何将这些标头发送到客户端(浏览器或telnet) 如何提取请求的标题 (也许,我只是不明白这个问题,请投票否决我。) http响应头格式并不太难: header1\n header2\n <empty line>\n content\n content\n 因此,当您使用浏览器连接到web服务器时
- 如何将这些标头发送到客户端(浏览器或telnet)
- 如何提取请求的标题
- (也许,我只是不明白这个问题,请投票否决我。)
http响应头格式并不太难:
header1\n
header2\n
<empty line>\n
content\n
content\n
因此,当您使用浏览器连接到web服务器时,它将弹出“另存为”对话框,而不是在浏览器窗口中显示下载的网页。如果您获得了该对话框,并且下载的文件也正常,那么您的Web服务器会正确发送标题
G
这是另一个问题,客户机是否按照您(和W3C)的预期处理它们
编辑:HTTP ok状态为:
HTTP/1.1 200 OK\n
谷歌搜索更多状态码。现在这是一个相当广泛的问题。标题是一行行文本。相应地解析/格式化。。。?谷歌搜索HTTP协议的规范,然后从那里开始。你@ern0在一定程度上是正确的。确切地说,我想知道如何将这些标题发送到浏览器。只是将它们作为空闲写入套接字吗//new_fd是套接字文件描述符'send(new_fd,“HTTP/1.0 200 OK\n”,16,0);发送(新的“内容类型:text/html\n”,24,0);发送(新的“内容长度:29\n”,20,0);发送(新的“文件内容”,10,0);'是的,就这些,没有任何魔力,只有空行。就像我说的,用浏览器试试。内容长度不是强制性的。
HTTP/1.1 200 OK\n