为什么一个功能完备的网站在使用 curl 查询时会出现 405 错误?

Why a fully working web site gives a 405 error when queried using curl?

我在我的 LAN 上有一个 Web 应用程序 运行,我可以从同一个子网使用任何客户端上的任何浏览器通过简单的 http://< IP >/[=12= 轻松访问它]

没什么特别的。一直有效。

但是当我尝试以下 curl 命令时:

curl -I http://<IP>/

我从 c​​url 得到他的回复:

HTTP/1.1 405 Method Not Allowed
Content-Type: text/plain; charset=utf-8
Allow: GET
Content-Length: 23
Date: Fri, 21 May 2021 17:11:59 GMT
Server: Python/3.8 aiohttp/3.7.4.post0

我期待 200 OK

您必须删除错误的选项 -I,它是 --head 的别名,它不同于默认的 -X GET

Fot that reason response show you that HEAD method in not allowed (405), 唯一接受的是 GET, 所以您必须将命令重写为 curl http://<IP>/.


编辑*

如果只获取状态码,为了测试服务健康,您应该重写命令如下:

curl -s -o /dev/null -w "%{http_code}" http://<IP>/

结果将是一个包含 http 响应状态代码的字符串。