【问题标题】:Which HTTP status codes should be used to advise download managers?应该使用哪些 HTTP 状态代码来通知下载管理器?
【发布时间】:2014-05-15 14:48:58
【问题描述】:

我写了一个小PHP脚本,它限制了下载文件的速度,并且支持下载恢复功能。

但是可以通过使用下载管理器来覆盖速度限制,例如创建 10 个下载部分,因此同时下载文件的 10 个其他部分,并通过这种方法达到快 10 倍的速度。

我想知道,我怎样才能知道指定用户已经在运行下载,以及我需要发送哪些 HTTP 状态代码才能让下载管理器知道,他们不允许下载其他部分文件,但允许下载恢复功能?

编辑:也许它足够精确...... 实际上,我需要最好的 HTTP 状态代码来让下载管理员知道,同一文件的多个文件流(或部分)是不允许的,而只能是一个。

【问题讨论】:

  • 如果你不想允许并行下载,一旦你发现检测,你会为额外的下载会话发送 403/forbidden。或者您使用一次性令牌保护文件,从而立即消除多次下载问题。

标签: php http http-status-codes download-manager


【解决方案1】:

您可以将下载限制为每个 IP 一个连接,然后向后续请求发送 429 Too Many Requests HTTP 代码(或只是 403 Forbidden)。

【讨论】:

  • 好的,所以我尝试了两种 HTTP 状态代码,并且 Freedownloadmanager 正在写入日志,以防代码 429 为“未知网络错误”,如果代码 403 用户名或密码无效。还有其他可能的选择吗?还是只是下载管理器本身的失败实现?
  • @salim_aliya,是的,这确实是 FDM 的问题。 429 不是“未知错误”,403 表示“服务器理解请求,但拒绝执行。授权无济于事。” (tools.ietf.org/html/rfc2616#section-10.4.4)。我认为他们将 403 与 401 混淆了(提供有效的用户名和密码确实有效)。
猜你喜欢
  • 2021-12-14
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 2023-03-12
  • 2011-12-31
相关资源
最近更新 更多