开发者

Is it possible to redirect non-HTML files with HTTP? And chaining redirects?

开发者 https://www.devze.com 2022-12-24 01:08 出处:网络
I have been thinking about a neat way of load balancing and one thing that would be required is to开发者_Go百科 be capable of loading an image on an HTML page from multiple locations without rewriting

I have been thinking about a neat way of load balancing and one thing that would be required is to开发者_Go百科 be capable of loading an image on an HTML page from multiple locations without rewriting the URL(on each load)

So what I need to be able to do is have one URL which is the "static" URL. Such as http://example.com/myimage.png The image is not actually contained in example.com though. So example.com does a either a 302 or 301 or 307 HTTP response to cause a redirect to 2.example.com. How do browsers handle this with images like in this situation? Also, how do browsers handle multiple redirections for instance if 2.example.com also didn't contain it and it went to 3.example.com ? (Note, I am asking this because I've never seen a 301 redirect on anything but an HTML page)

Also, which status code would be best to use. 301 means "moved permanently" which this "move" isn't permanent so I don't want it cached. Should I use 307? Is that supported by search engines and modern browsers?


Redirect is an HTTP concept and applies to any resource that can be delivered over HTTP, not only HTML. Chaining redirects and non-HTML redirects work just fine in most modern browsers.

If you want temporary redirect, use 302, unless you want to redirect POST and PUTs as well. The problem is that most implementations will issue GET for the new resource address after POST or PUT that got 302.

Note that 303 and 307 are HTTP 1.1 specific.


I would advise against load balancing like this. Load balancing is not what 3xx responses are intended for.

The HTTP protocol has capabilities for caching which can help with reducing server load. There are also server technologies for load balancing. These technologies are well developed will be more stable and reusable.


As Benedict C says, I think you're barking up the wrong tree.

If you want to do load-balancing, then do load balancing. Round robin DNS is the simplest method (and is more effective in a number of regards than more expensive solutions). If you must try to load balance across servers with different FQDNs, then generate the URL client-side in javascript.

The remnants of your post are applicable to other questions about redirection. There's a lot of bad advice published about SEO. Google has approx 92% of the world market and publish quite detailled specs about how they spider and rank sites. Redirection within your domain should not affect your rankings in any competent search engine. Redirection outside your domain will only improve the ranking of the target.

Yes, browsers implement a limit on the number of redirections followed for a single request - but it varies by browser.

0

精彩评论

暂无评论...
验证码 换一张
取 消