Joe*_*Joe 40 redirect image http http-headers
返回图像资源时返回301/302/303代码是否可以?我过去做过这个,似乎有效.这是一种很好的做法,是否与大多数浏览器兼容?
Jus*_*ant 43
是的,您可以重定向图像,浏览器将遵循重定向.但是出于性能原因,您通常希望将重定向保持在最低限度,因为每个重定向都需要单独的HTTP请求,这会增加服务器开销并增加最终用户页面加载时间.
您应该避免的一件事是重定向页面上的许多图像.这将严重减慢页面加载时间,尤其是在每个新HTTP请求需要很长时间的高延迟网络(例如电话,中国,卫星互联网)上.此外,HTTP客户端仅限于每个服务器主机名的少量同时HTTP连接,因此即使在快速网络上,您最终也会遇到瓶颈.
但是,重定向页面上的1或2个图像并不是什么大问题.
如果您重定向图像并且它们是可缓存的,那么理想情况下,您可以在遥远的未来为日期设置HTTP Expires标头(以及相应的Cache-Control标头),因此至少在后续访问页面时用户不会再次进行重定向.
如果您重定向的原因是为了符合新的URL方案,大多数Web服务器都可以轻松地在服务器上重写URL,而无需将实际重定向发送回客户端.换句话说,客户端可以请求,/static/bar.jpg但服务器可以配置为将其转换为/media/images/bar.jpg.在大多数情况下,这种URL重写方法优于重定向,因为您可以重构内容在服务器上的位置,而不会在客户端或服务器端产生重定向开销.
是的,它有效.
关于良好实践,有哪些替代方案?返回错误响应(404)?不是很有帮助.返回重定向资源将返回的图像?可能不可能,否则你不会重定向.用新URL修复img标签?当然,在可能的情况下,但也许你希望浏览器彻底改变方向(可能是一个计数器).