HTTP GET文件扩展名支持

时间:2017-04-19 12:20:02

标签: sockets http get

我发现HTTP是处理我服务器上文件的好方法。我根据套接字接口编写C程序。 当我发出HTTP GET时,我可以轻松下载文件,但只能下载具有已知扩展名的文件。扩展名为XXX的(备份)文件“未找到”(实际上响应返回码为200(“OK”),但响应内容是包含错误消息的HTML页面(404 =未找到)。

如何确保Web服务器发送我要求的任何文件?我在HTTP GET请求中尝试了Accept关键字,但这没有帮助(或者我犯了一个错误)。

我没有自己的服务器,所以我无法改变服务器设置。在客户端服务器上,我不使用浏览器,只使用套接字接口(见上文)。

1 个答案:

答案 0 :(得分:2)

我认为理解HTTP并不真正具有"文件"的概念很重要。和"目录。"相反,该协议对位置和资源进行操作。虽然可以代表文件和目录,但绝对不能保证它们是相同的。

有问题的服务器似乎配置为在遇到未知扩展时提供404错误页面。这有点奇怪,绝对不符合标准。虽然部署Web-Application Firewall可能会发生。同样,HTTP不以任何方式信任文件扩展名,而是依赖于MIME media types形式的元数据。这也是(或多或少)进入请求的Accept标题的内容。

  

如何确保Web服务器发送我要求的任何文件?

嗯,你不能。虽然客户可能表达偏好,但服务器是以哪种方式发送内容的最终权威。