Лучшие практики для стороны клиента по сравнению с серверными перенаправлениями: Когда использовать что?

Я понимаю, что большая часть стороны сервера поддержки языков перенаправляет (asp.net: Response.Redirect, PHP: header( 'newpage' ) ; ). Вы могли также сделать перенаправление с JavaScript (window.location.href="newLocationURL").

Когда Вы выбрали бы один по другому?

Относительно ASP.net/IIS7 (пул приложений в режиме Integrated, включите 32 бита apps=false), я заметил, что, даже когда страница имеет 302 заголовка, целое тело страницы отправляется в сторону клиента.

И я верю дело обстоит не так с PHP, только заголовки отправляются? Заключить Перенаправление в кавычки на стороне клиента означает следующую steps:Client-сторону-> Серверная сторона-> Клиентский-> Серверная сторона-> Клиентский.

Перенаправление на means:Client-стороне Серверной стороны-> Серверная сторона-> Клиентский (только заголовки) *-> Серверная сторона-> Клиентский.

Существует ли W3C, реализация перенаправления стандартной или стороны сервера отличается от одной технологии веб-сервера до другого?

Править: Я только обеспокоен Ответом. Перенаправление (в asp.net) и не server.transfer, по крайней мере, для этого обсуждения

20
задан ram 22 February 2010 в 14:45
поделиться

3 ответа

Пример JavaScript на самом деле не является перенаправлением. В нем нет средств 301/302 ответа. Это простой запрос, который происходит во время определенного события Javascript спустя долгое время после появления страницы. Если вы сделаете это во время загрузки страницы, то это будет иметь больше накладных расходов, чем реальный редирект, и это также не будет работать на браузерах с отключенным JS.

Перенаправления должны инициироваться со стороны сервера с помощью ответа 301/302. Все языки/фреймворки webapp по умолчанию используют 302. Обычно вы можете сделать его 301, добавив один дополнительный параметр или строку кода, которая указывает на это. Преимуществом 301 является то, что конкретный запрос не будет проиндексирован (больше) поисковыми ботами.

9
ответ дан 30 November 2019 в 01:28
поделиться

В ASP.Net существует важное различие между двумя видами перенаправления на стороне сервера. Это Response.Redirect и Server.Transfer.

Если вы вызываете Response.Redirect, это влечет за собой два обращения к серверу. При первом обращении к серверу ответ сервера направляет браузер на запрос следующей страницы. Запрос следующей страницы представляет собой второе обращение к веб-серверу.

Если вы используете Server.Transfer, то происходит только один цикл. Поэтому сетевой трафик намного меньше. Однако использование Server.Transfer имеет ограничение, которое заключается в том, что целевая страница должна находиться на том же веб-сервере. То есть вы не можете Server.Transfer из вашего веб-приложения на www.Google.com. Но вы можете Response.Redirect на него.

Есть и другие детали, связанные с использованием любого из этих подходов, которые вы должны изучить, прежде чем использовать их. Однако я считаю, что в контексте данного вопроса важно отметить, что в любом языке Response.Redirect может привести к гораздо более интенсивному сетевому трафику, чем это действительно необходимо.

5
ответ дан 30 November 2019 в 01:28
поделиться

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

Вероятно, это более эффективно со стороны клиента, поскольку вы избегаете постоянных перенаправлений на стороне сервера.

-2
ответ дан 30 November 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: