Можно ли перенаправить не HTML-файлы с HTTP? И цепочки перенаправлений? - PullRequest
0 голосов
/ 19 марта 2010

Я думал о аккуратном способе балансировки нагрузки, и одна вещь, которая потребуется, - это возможность загружать изображение на странице HTML из нескольких мест без перезаписи URL (при каждой загрузке).

Так что мне нужно иметь один URL, который является «статическим» URL. Например, http://example.com/myimage.png Изображение на самом деле не содержится в example.com. Поэтому example.com выполняет HTTP-ответ 302, 301 или 307, чтобы вызвать перенаправление на 2.example.com. Как браузеры обрабатывают это с изображениями, как в этой ситуации? Кроме того, как браузеры обрабатывают многократные перенаправления, например, если 2.example.com также не содержит его, и оно перешло к 3.example.com? (Обратите внимание, я спрашиваю об этом, потому что я никогда не видел перенаправления 301 ни на чем, кроме HTML-страницы)

Кроме того, какой код состояния лучше использовать. «301» означает «перемещено навсегда», и это «перемещение» не является постоянным, поэтому я не хочу, чтобы оно кэшировалось. Должен ли я использовать 307? Поддерживается ли это поисковыми системами и современными браузерами?

Ответы [ 3 ]

3 голосов
/ 19 марта 2010

Перенаправление является концепцией HTTP и применяется к любому ресурсу, который может быть доставлен по HTTP, а не только к HTML. Цепные перенаправления и не-HTML перенаправления прекрасно работают в большинстве современных браузеров.

Если вы хотите временное перенаправление, используйте 302, если вы не хотите перенаправлять также POST и PUT. Проблема в том, что большинство реализаций выдают GET для нового адреса ресурса после POST или PUT, получившего 302.

Обратите внимание, что 303 и 307 являются специфичными для HTTP 1.1.

2 голосов
/ 19 марта 2010

Я бы посоветовал против балансировки нагрузки, как это. Балансировка нагрузки - это не то, для чего предназначены ответы 3xx.

Протокол HTTP имеет возможности для кэширования, которые могут помочь снизить нагрузку на сервер. Существуют также серверные технологии для балансировки нагрузки. Эти технологии хорошо развиты, будут более стабильными и многоразовыми.

0 голосов
/ 24 марта 2010

Как говорит Бенедикт С., я думаю, что вы лаете не на то дерево.

Если вы хотите выполнить балансировку нагрузки, то выполните балансировку нагрузки. Round-robin DNS - самый простой метод (и он эффективнее во многих отношениях, чем более дорогие решения). Если вам необходимо попытаться сбалансировать нагрузку между серверами с разными полными доменными именами, создайте URL-адрес на стороне клиента в javascript.

Остатки вашего поста применимы к другим вопросам о перенаправлении. Есть много плохих советов, опубликованных о SEO. Google занимает около 92% мирового рынка и публикует довольно подробные спецификации о том, как они делят пауки и ранжируют сайты. Перенаправление в вашем домене не должно влиять на ваш рейтинг в любой компетентной поисковой системе. Перенаправление за пределы вашего домена только улучшит рейтинг цели.

Да, в браузерах реализовано ограничение на количество перенаправлений, выполняемых для одного запроса, но оно зависит от браузера.

...