为何curl命令请求成功,wget带--spider参数却返回405错误?
问题原因分析
核心原因是三个命令发送的HTTP请求方法存在差异:
curl http://somehost:port/endpoint:默认发送GET请求,服务器允许该方法,因此返回成功响应。wget http://somehost:port/endpoint:同样默认发送GET请求,符合服务器的方法限制,所以能成功下载文件。wget --spider -S http://somehost:port/endpoint:--spider参数会让wget发送HEAD请求,仅用于获取响应头来验证资源是否存在,但你的服务器配置不允许该端点使用HEAD方法,因此返回405 "Method not allowed"错误。
HTTP 405状态码的本质就是服务器拒绝了当前请求使用的方法,这里的情况就是服务器仅开放GET请求访问该端点,禁用了HEAD请求。
内容的提问来源于stack exchange,提问作者C.k.
相关产品推荐
相关产品推荐

