Boa tarde, pessoal.
cunha.jcesar escreveu:Fazer cache de conteúdo dinâmico não seria um contra-senso ?
Em tese sim, pois no entendimento primário da expressão "conteúdo dinâmico" entende-se que o conteúdo seria diferente a cada chamada de url. Porém, como estratégia de programação, há muitos anos, usa-se o modo dinâmico (com o uso do caracter ?, por exemplo, passado pela url) para fazer referência a um conteúdo fixo. Então, quando se fala em fazer cache de conteúdo dinâmico, não se pode incluir sites onde o conteúdo de fato é dinâmico, ficando o cache apenas proveitoso nos casos onde o conteúdo é chamado por uma URL com cara de dinâmico, porém fixo.
Vou dar um exemplo aqui mesmo do fórum:
http://www.brazilfw.com.br/forum/viewtopic.php?f=2&t=54486O link acima é chamado dinamicamente. Vejam que o php no servidor deve processar todo o conteúdo após o caractere ? como dados a serem processados, e depois de processar tudo, retorna uma página para nós.
O link acima é a nossa velha e boa página de Regras do fórum. E podemos notar que ela mostra a mesma página há muito tempo (acho que desde sempre
), apesar de que é chamada e processada como conteúdo dinâmico.
Já o link abaixo no nosso fórum vai apresentar conteúdo variado de tempos em tempos, pois se trata da página de novas postagens. Veja:
http://www.brazilfw.com.br/forum/search.php?search_id=newpostsMas não estamos falando em fazer cache de mensagens de texto no fórum, por isso vamos falar do youtube, por exemplo. O link abaixo é um vídeo sobre a instalação de um addon pelo Gerenciador de Addons que achei no youtube:
http://www.youtube.com/watch?v=jqgB1JzOEhAEle é apresentado de forma dinâmica, mas sempre que você chamar esse link, vai aparecer o mesmo vídeo. Ou seja, alguns sites usam a chamada dinâmica mais para facilitar a programação e organização do que propriamente dinamizar o conteúdo apresentado.
É por isso que vale a pena fazer cache desses sites.
cunha.jcesar escreveu:A menos que meu inglês seja falho, entendo que ele diz que se na url for encontrado cgi-bin ou ? (caracterizando página dinâmica) o objeto deve ser tratado diretamente. Ou seja não é feito cache.
cunha.jcesar escreveu:O manual do squid diz:
A list of words which, if found in a URL, cause the object to
be handled directly by this cache. In other words, use this
to not query neighbor caches for certain objects. You may
list this option multiple times.
Vou traduzir a informação do manual:
Uma lista de palavras que, se encontradas na URL, fazem o objeto ser tratado diretamente pelo squid. Em outras palavras, use este recurso para não usar caches vizinhos para certos objetos. Você pode listar essa opção várias vezes.
Ou seja, toda URL que passa pelo squid e que possui as palavras configuradas no hierarchy_stoplist, serão cacheadas pelo próprio squid, e não serão repassadas para outros sistemas de cache trabalhando em paralelo ao squid. No nosso caso, todas as URLs que contiverem "cgi-bin" ou "?" serão cacheadas pelo squid.
Sendo assim, o bfwcache fica impossibilitado de cachear todos os sites nele configurados, pelo simples fato de que o squid não repassa todas as solicitações ao bfwcache. Dessa forma, o bfwcache vai funcionar normalmente, mas só vai fazer cache com os objetos que o squid repassar para ele.
goodposting escreveu:se deixar a linha o squid fará sim o cache dinâmico, mas se vai entregar já é outra coisa.
É verdade. Guardar um objeto é uma coisa, e identificar que o mesmo objeto está sendo requisitado e entregá-lo do cache é outro processo. Por isso, o squid faz cache de muito mais coisas do que nós conseguimos aproveitar. Isso é um caso antigo do squid, e não do BFW. E também isso se agrava pelo que falamos mais acima, que é o fato de haver conteúdo puramente dinâmico, isto é, conteúdo que verdadeiramente muda a cada chamada e que não faz sentido cachear, como bem falou o cunha.jcesar.
goodposting escreveu:só que o pessoal descobriu essa linha e resolveu remover ou comentar
Esse recurso foi sugerido e suas ventagens e desvantagens explicadas. Mas não deve ser tratado como algo puramente ruim. É importante deixar cada um fazer se quiser, pois as vantagens e desvantagens já foram explicadas algumas vezes, e muitos usuários que no início defendiam esse recurso, hoje têm outra opinião sobre ele. E também alguns usuários que no início não gostaram do recurso, mas que hoje o têm aplicado em seus servidores e para eles está tudo a mil maravilhas. É importante deixar cada um fazer como quiser. Nenhum caso é igual ao outro, por isso há espaço para um e para outro, mas nenhum dos dois está necessariamente certo ou errado. Vai depender da aplicação somente.
Há muto mais a ser dito sobre o assunto, mas eu prefiro comentar algumas coisas só depois que tenho alguma solução ou pelo menos uma pista de como resolver, e aí todos podemos trabalhar em favor da solução final. Por enquanto, os problemas são esses que já falamos. Precisamos de idéias para resolvê-los.
Se me equivoquei em algo, por favor, me corrijam.
Um abraço.