为什么一个功能完备的网站在使用 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>/
我从 curl 得到他的回复:
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 响应状态代码的字符串。
我在我的 LAN 上有一个 Web 应用程序 运行,我可以从同一个子网使用任何客户端上的任何浏览器通过简单的 http://< IP >/[=12= 轻松访问它]
没什么特别的。一直有效。
但是当我尝试以下 curl 命令时:
curl -I http://<IP>/
我从 curl 得到他的回复:
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 响应状态代码的字符串。