为了好玩,我正在尝试用C编写一个非常简单的服务器。
当我send
对Firefox的这个回复时,它打印出身体“hello,world”,但是使用Chromium它给了我一个Error 100 (net::ERR_CONNECTION_CLOSED): Unknown error.
我相信这是相关的代码:
char *response = "HTTP/1.0 200 OK\r\nVary: Accept-Encoding, Accept-Language\r\nConnection: Close\r\nContent-Type: text/plain\r\nContent-Length:20\r\n\r\nhello, world";
if(send(new_fd, response, strlen(response), 0) == strlen(response)) {
printf("sent\n");
};
close(new_fd);
我错过了什么?
谢谢!
答案 0 :(得分:2)
Content-Length似乎是12,而不是20。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4:
当在允许消息正文的消息中给出Content-Length时,其字段值必须与消息正文中的OCTET数完全匹配。 HTTP / 1.1用户代理必须在收到并检测到无效长度时通知用户
这是不是意味着FF违反了规范? (好吧,你使用的是HTTP / 1.0,所以可能没有。)