gpt4 book ai didi

http - 这是有效的 HTTP 响应吗?

转载 作者:可可西里 更新时间:2023-11-01 16:19:09 26 4
gpt4 key购买 nike

我正在使用 C++ 编写 Web 服务器,它对所有请求做出以下响应:

static std::string rsp[] = { 
"HTTP/1.1 200 OK\r\n",
"Server: WebServer\r\n",
"Content-Type: text/html\r\n",
"Content-Length: 3\r\n",
"Connection: close\r\n",
"\r\n",
"123"
};

内容“123”可以在浏览器中成功显示。但是当我用apache-ab做测试的时候,ab总是报这样的错误:

ab -n 1 -c 1 http://127.0.0.1:1080/
apr_socket_recv: Connection reset by peer (104)

我认为我关闭套接字的速度太快了,所以我评论了 close() 函数。但ab只是hold住,ab似乎在等待一个完整的回应。

最佳答案

如果您可以在浏览器中正确呈现响应 (123),那么这意味着您的服务器没有任何问题,但是您的服务器无法理解 ab 发送到您的服务器的请求。

ab 的请求不一定与网络浏览器的请求相同。而且 ab 不完全是 http 1.1 投诉者,它是一个 http1.0 客户端。

"It (ab) does not implement HTTP/1.x fully; only accepts some 'expected' forms of responses.

Source

试试这个:
0. 查看发送到服务器的请求:ab -n 5 -c 5 -v 10 http://127.0.0.1:8000/ 使用详细参数。你应该看到这样的东西:

    GET / HTTP/1.0
Host: 127.0.0.1:8000
User-Agent: ApacheBench/2.3
Accept: */*
  1. 使用 Firebug 或其他工具,获取从浏览器发送的请求。
  2. 现在,匹配它们,看看发送的请求有何不同。使用 ab -H 将这些自定义 header 从 ab 发送到您的网络服务器。

关于http - 这是有效的 HTTP 响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com