我有表格的网址http://domain/image/?uuid?/42x42/some_name.png
.Web服务器(nginx)配置为查找文件/some/path/image/?uuid?/thumbnail_42x42.png
,如果它不存在,则将URL发送到后端(Django via mod_wsgi),然后生成缩略图.然后后端发出302重定向到客户端请求的完全相同的URL,并认为在第二次请求时服务器将注意到缩略图文件并直接发送它.
问题是,这适用于所有浏览器吗?到目前为止,测试没有显示任何问题,但我能确定所有用户代理都会按预期解释这个吗?
更新:让我澄清意图.目前的工作原理如下:
客户端请求图像的缩略图.
服务器看到该文件不存在,因此它将请求转发给后端.
后端创建缩略图并返回302.
后端释放所有资源,让服务器将新生成的文件共享给当前和后续客户端.
让后端服务于新创建的映像更糟糕的原因有两个:
必须创建两种提供相同数据的方法;
服务器在提供静态内容方面要好得多.如果客户端链接速度极慢怎么办?后端不是特别快,也不是内存效率高,并且在给客户端换勺时将其保存在内存中可能会浪费.
所以我让后端工作的时间最短.
Update²:我非常感谢一些RFC参考或者有很多浏览器经验的人的意见.所有这些肯定的答案都令人愉快,但它们看起来毫无根据.