Quais são os benefícios de usar o redirecionamento de meta tag / JavaScript sobre o redirecionamento de cabeçalho HTTP?

5

Ao inspecionar o link do serviço de encurtamento de URL do Twitter, percebi que, em vez de redirecionar para a URL da meta usando um cabeçalho HTTP de local e um status de HTTP 3xx código, ele redireciona usando o seguinte HTML (formatado para melhor legibilidade):

<head>
  <meta name="referrer" content="always">
  <noscript>
    <META http-equiv="refresh" content="0;URL=[URL]">
  </noscript>
  <title>[URL]</title>
</head>
<script>window.opener = null; location.replace("[URL]")</script>

onde [URL] conteria o URL da meta real. Para ser claro: este é o conteúdo HTML completo, não apenas um fragmento de HTML.

Um serviço grande / popular como o link certamente terá boas razões para escolher essa estratégia pelo redirecionamento de cabeçalho HTTP, mas não consigo pensar em nenhum .

Quais são os benefícios de escolher essa estratégia de redirecionamento sobre o redirecionamento de cabeçalho HTTP?

Acabei de perceber que pode ser a tag <meta name="referrer" content="always"> . Isso manterá um possível cabeçalho% requestReferer intacto, talvez?

    
por Decent Dabbler 06.03.2017 / 17:59
fonte

4 respostas

2

Como sua edição sugere, o redirecionamento do lado do cliente em conjunto com a metatag do referenciador garante que o cabeçalho Referrer seja enviado. Embora não seja exatamente o mesmo problema, uma pesquisa rápida nas ofertas de meta tag de referência sugere o propósito é SEO-ish na natureza.

SEOs have long used referrer data for a number of beneficial purposes. Oftentimes, people will link back or check out the site sending traffic when they see the referrer in their analytics data. (moz.com)

O Twitter não se importa tanto com o seu link. Mas eles querem garantir que recebam crédito dos proprietários de sites como uma importante ferramenta de marketing / origem de tráfego.

O redirecionamento do lado do cliente ajuda a manter o Twitter nos negócios.

Se o esclarecimento for necessário: Uma meta tag de referência na página inicial não é suficiente. Por causa do encurtamento e redirecionamento de URL, bem como a possibilidade de tweets serem copiados ou postados em outros lugares, a página intermediária é essencial para garantir que o Twitter receba cada grama de crédito que possa eventualmente desperdiçar.

    
por 07.03.2017 / 18:43
fonte
2

Benefícios reais:

Os redirecionamentos JavaScript podem ser úteis para redirecionar dispositivos móveis de uma versão para desktop de uma página para sua versão para celular ou vice-versa para desktops. O servidor só conhecerá o User-Agent, não a largura real da tela. Você poderia, por exemplo, alternar entre duas versões quando a tela for inclinada de retrato para paisagem e vice-versa.

JavaScript permitiria redirecionamentos muito temporários. Não importa se a resposta é armazenada em cache no navegador, o script ainda pode ser executado de forma diferente. O destino pode mudar com mais frequência do que a página / resposta do servidor. Você poderia, por exemplo, redirecionar para uma página escolhida aleatoriamente cada vez que a página fosse acessada, ou talvez adicionar um registro de data e hora em uma string de consulta ao redirecionar.

Preguiça do desenvolvedor:

Os redirecionamentos JavaScript e as atualizações meta podem ser implementados sem ter acesso aos cabeçalhos HTTP. Isso pode ser útil para scripts do lado do servidor mal implementados: você pode redirecionar uma página depois que os cabeçalhos já tiverem sido enviados e não precisar alterar grandes partes do código.

Totalmente sem sentido:

Os redirecionamentos JavaScript e as atualizações meta permitirão um atraso antes do redirecionamento. Se você quiser mostrar uma mensagem que o usuário mal terá tempo de ler, esta é uma boa solução.

    
por 07.03.2017 / 18:09
fonte
1

O principal benefício que posso pensar é que ele permitiria que o cache do navegador fosse usado, o que, na escala do Twitter, seria substancial. Outro pensamento é talvez Twitter logging / stats application eles usam precisa dele.

    
por 06.03.2017 / 19:36
fonte
1

Normalmente, os redirecionamentos do lado do servidor são preferidos.

Um cenário de redirecionamento do lado do cliente é localstorage / sessionstorage. Se você precisar copiar alguns dados do servidor para o redirecionamento do lado do cliente da loja local é o caminho a percorrer.

A desvantagem de usar o redirecionamento do lado do cliente é que o histórico do navegador pode conter a etapa de redirecionamento inútil. Isso pode ser mitigado usando window.location.replace (newurl) em vez de window.location = newurl ou meta tags.

    
por 07.03.2017 / 20:08
fonte