重定向到同一URL是否安全?
时间:2020-03-06 14:39:10 来源:igfitidea点击:
我的网址格式为" http:// domain / image /?uuid?/42x42/some_name.png"。将Web服务器(nginx)配置为查找文件/ some / path / image /?uuid?/ thumbnail_42x42.png
,如果该文件不存在,则将URL发送到后端(Django通过mod_wsgi)。然后生成缩略图。然后,后端发出302重定向,该重定向到客户端请求的完全相同的URL,这样的想法是,在第二次请求后,服务器将注意到缩略图文件并直接发送。
问题是,这将适用于所有浏览器吗?到目前为止,测试没有发现任何问题,但是我可以确定所有用户代理都可以按预期进行解释吗?
更新:让我澄清一下意图。当前,它的工作方式如下:
- 客户端请求图像的缩略图。
- 服务器看到该文件不存在,因此它将请求转发到后端。
- 后端创建缩略图并返回302.
- 后端释放所有资源,让服务器将新生成的文件共享给当前和后续的客户端。
后端为新创建的图像提供服务会更糟,原因有两个:
- 必须创建两种服务相同数据的方式;
- 该服务器在提供静态内容方面要好得多。如果客户端的链接速度非常慢怎么办?后端不是特别快,也不是高效存储,并且在用勺子喂客户端时将其保留在内存中可能是浪费的。
因此,我将使后端工作最少的时间。
Update2:我真的很感谢RFC参考或者对具有丰富浏览器经验的人的看法。所有这些肯定的答案都是令人愉快的,但看起来有些毫无根据。
解决方案
如果没有,则说明客户已破产。大多数客户端将遵循重定向循环,直到达到最大值。所以是的,在后端出于任何原因不生成缩略图之前应该没问题。
我们可以改为将URL更改为http:// domain / djangoapp / generate_thumbnail,这将返回缩略图和正确的内容类型,依此类推
是的,可以将我们重定向到与以前相同的URI。