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

时间:2008-09-24 10:12:05

标签: http browser compatibility

我有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. 后端释放所有资源,让服务器将新生成的文件共享给当前和后续客户端。
  5. 让后端为新创建的图像服务更糟糕,原因有两个:

    1. 必须创建两种提供相同数据的方式;
    2. 服务器在提供静态内容方面要好得多。如果客户端链接速度极慢怎么办?后端不是特别快,也不是内存效率高,并且在给客户端喂食垃圾时将其保存在内存中可能会造成浪费。
    3. 所以我让后端保持最短的工作时间。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

是的,可以重新指向与之前相同的URI。