2

我有一个 Web 应用程序,用户可以在其中发布 url 以下载他的文件。我正在使用 libcurl,并且正在检查响应 Content-Length 以强制执行文件大小限制。我担心一些被带走的服务器会继续上传,最终会填满所有可用空间并阻塞我的服务器。如果文件的大小大于 Content-Length,libcurl 会中止下载文件吗?

4

1 回答 1

2

是的,它会(大部分)。由于 Content-Length 字段(使用时)是 HTTP 用于告知此特定响应正文的大小的方式。HTTP 客户端无法读取任何内容,因为连接将保持打开状态并重新用于下一个请求。

这是基本的 HTTP 1.1 功能,您可以在RFC7230中找到详细信息,如果您想阅读 curl 代码,请查看 lib/http.c 源代码以了解 Content-Length 标头匹配和解析,然后进一步了解“maxdownload”字段用于 lib/transfer.c 等。

于 2012-04-15T22:31:02.283 回答