重定向到同一个URL是否安全?

Rom*_*sky 11 browser compatibility http

我有表格的网址http://domain/image/?uuid?/42x42/some_name.png.Web服务器(nginx)配置为查找文件/some/path/image/?uuid?/thumbnail_42x42.png,如果它不存在,则将URL发送到后端(Django via mod_wsgi),然后生成缩略图.然后后端发出302重定向到客户端请求的完全相同的URL,并认为在第二次请求时服务器将注意到缩略图文件并直接发送它.

问题是,这适用于所有浏览器吗?到目前为止,测试没有显示任何问题,但我能确定所有用户代理都会按预期解释这个吗?

更新:让我澄清意图.目前的工作原理如下:

  1. 客户端请求图像的缩略图.
  2. 服务器看到该文件不存在,因此它将请求转发给后端.
  3. 后端创建缩略图并返回302.
  4. 后端释放所有资源,让服务器将新生成的文件共享给当前和后续客户端.

让后端服务于新创建的映像更糟糕的原因有两个:

  1. 必须创建两种提供相同数据的方法;
  2. 服务器在提供静态内容方面要好得多.如果客户端链接速度极慢怎么办?后端不是特别快,也不是内存效率高,并且在给客户端换勺时将其保存在内存中可能会浪费.

所以我让后端工作的时间最短.

Update²:我非常感谢一些RFC参考或者有很多浏览器经验的人的意见.所有这些肯定的答案都令人愉快,但它们看起来毫无根据.

Vin*_*vic 4

如果没有,客户端就坏了。大多数客户端将遵循重定向循环,直到达到最大值。所以是的,在您的后端因任何原因不生成缩略图之前应该没问题。

您可以将 URL 更改为http://domain/djangoapp/generate_thumbnail,这将返回缩略图和正确的内容类型等