Com o push SPDY, existe algum ponto no futuro distante que expira cabeçalhos?

2

Pelo que entendi, no SPDY push o servidor exibe um documento em HTML, examina-o antes de enviá-lo e decide que eu preciso de recursos de imagens / css X Y e Z, então os envia também.

Como sabe não se incomodar, se eles já estão em cache pelo meu navegador? Ou, basicamente, não há sentido em tentar armazenar recursos estáticos em cache se seus clientes estiverem usando navegadores spdy / 3?

(Obviamente, nem todo cliente será, mas estou interessado neste caso)

    
por Codemonkey 14.10.2013 / 19:55

2 respostas

3

De acordo com os recursos no site do desenvolvedor do Chromium, essa é uma das desvantagens. Não é possível para o servidor saber se o cliente já possui o recurso para que possa ser uma transferência desperdiçada.

Fonte: link

    
por 14.10.2013 / 20:12
4

Se você realmente precisa otimizar o tempo de carregamento da primeira página:

  • Gere uma assinatura (substring de md5 / sha hash) de todos os seus arquivos estáticos de inicialização necessários durante o carregamento da primeira página. Isso é tipicamente apenas css + js básico para bootstrap. A partir daí, geralmente o js está carregando coisas (especialmente de aplicativos ricos em clientes, assim você não precisará do push do servidor e os clientes reutilizarão o cache apropriadamente)
  • Definir um cookie de longa duração "bootstrap-version" definido para a assinatura da versão de bootstrap.
  • Quando o cliente solicitar a página:

    • se o cookie de versão bootstrap não estiver atualizado ou não estiver presente, inicie o envio do servidor dos arquivos de inicialização.
    • Caso contrário, suponha que o cliente os tenha armazenado em cache (pode não causar uma pequena regressão, mas em 99% dos casos isso ocorrerá)

Dessa forma, você obterá uma eficiência muito alta e os carregamentos de primeira página serão efetivamente exibidos como visitas repetidas com o cache devido ao push do servidor.

As implementações do Go e do node spdy permitem que você jogue com o push do servidor. Os módulos AFAIK nginx / apache ainda não possuem esses recursos. Espero que eles o adicionem em breve com base nos cabeçalhos fornecidos pelo aplicativo ou semelhantes.

    
por 14.11.2014 / 19:30