segunda-feira, 19 de novembro de 2012

Cache de Conteúdo Web Explicada


O campo minado que é o cache de conteúdo da web pode ser confuso e complicado!

É uma das características que realmente fica entre a rede e da aplicação. Em muitas empresas nesta área cinzenta não tem posse real e, como tal, os erros são muitas vezes feitas.

Eu quero ter um pouco de tempo para explorar e esperamos simplificar esta área complexa.

Então, em primeiro lugar deve-se abordar a questão do que é um cache de conteúdo e por que se preocupar com isso?

Um cache de conteúdo é um pedaço de software ou um aparelho projetado para ficar na frente do servidor de aplicação. Seu trabalho é para interceptar determinadas solicitações e responder, em nome da aplicação, reduzindo assim o número de acessos enviados para o servidor corta.

Normalmente os pedidos que são interceptadas já foram vistas antes, então o cache irá armazenar respostas a estes pedidos e se ele intercepta um pedido semelhante pode responder da mesma forma.

Um exemplo simples seria um cache de imagem. O cliente (browser, por exemplo) seria uma resposta para o servidor web para uma imagem. A primeira vez que esta imagem é solicitado o cache terá de obtê-lo a partir do servidor web no entanto, para os pedidos subsequentes ele simplesmente irá servi-lo diretamente.

A idéia é que o servidor web terá muito menos trabalho para fazer o que o cache pode servir muito do conteúdo. As implicações desta verdade dependerá da exata configuração, aplicação e conteúdo porém eles geralmente se encaixam no seguinte:

1. Reduzir a carga nos servidores web / aplicação - Salvar no hardware do servidor de aplicativos e custos de licenciamento.

2. Reduzir a carga no middleware e sistemas de banco de dados Backed.

3. Servir o conteúdo mais rápido - Caches pode ser muito rápido!

4. Cache o conteúdo mais perto de seus usuários. Este é um ponto interessante. A cache nem sempre tem de estar no mesmo local que o resto do sistema. Você poderia usar um bom cache para construir o seu próprio sistema de distribuição de conteúdo simples para garantir que seus usuários obter o conteúdo de uma fonte tão próximo deles possível. Quem disse que um CDN (Content Distribution Network) tem custo para a terra!

OK, então você decidiu que você pode querer usar um cache, para o que vem depois? O maior problema com o cache de conteúdo é simplesmente decidir o que e por quanto tempo você deseja armazenar em cache de conteúdo para. Parece simples, mas não fazer isso no passado deu muitos uma rede proprietário / gerente aplicação de um medo genuíno de cache. Você não quer que um usuário obter o saldo da conta do usuário anterior!

No entanto, para realmente tirar o máximo proveito das capacidades que um cache de conteúdo moderno pode oferecer, devemos compreender o quadro completo. O comportamento do aplicativo, a configuração do cache e do comportamento do navegador.

Vamos dar uma olhada rápida em geral o que acontece quando uma imagem é solicitado a partir de um servidor web por um navegador.

1. O usuário solicita uma imagem de olhar.

2. O cache vai notar que ele não tenha visto este pedido antes e, portanto, vai solicitar que a partir do servidor web.

3. O servidor web vai ficar a imagem e enviá-lo de volta para o cache.

Importante. O servidor web vai decidir se esta imagem pode ser armazenada em cache ou não. Ele irá instruir os dispositivos a montante, tais como o cache e, finalmente, o cliente se ele deve ser armazenado em cache ou não. Ele faz isso usando cabeçalho HTTP específico. (Eu não nerd para isto, neste artigo, pois ele pode ficar excessivamente complexo).

4. Agora fica interessante porque o cache terá de decidir sobre qual caminho seguir. Será que obedecer as regras do servidor web ou ele substitui-lo com suas próprias regras? Vamos discutir isso mais tarde.

5. Assim, a imagem é agora enviado para o cliente e só para complicar as coisas, o cliente também o cache do conteúdo e também olhar para o cabeçalho de controle de cache.

Assim, podemos ver que não só temos que decidir sobre as regras de cache de aplicativos, mas também como queremos que o cache para comportar a montante. Se fizermos isso direito que pode até mesmo reduzir o número de acessos que atingem o cache e assim rede em primeiro lugar.

Portanto, agora temos uma idéia do que está acontecendo, então como é que vamos implementar um cache?

Um método geral é descrita em detalhe "light", abaixo.

1. Decida o que você quer cache e por quanto tempo -. Então, eu quero fazer cache de todas as imagens para 24 horas ou todos * ASP para dois segundo etc Estes podem ficar complicadas.

2. Esteja certo de que você está feliz com estas regras.

3. Agora verifique novamente.

4. Configurar o cache para remover todos os cabeçalhos de controle de cache da resposta do servidor web. Em outras palavras ignorar qualquer configuração de controle de cache no servidor web - Nós assumimos que sabemos como criar um conjunto de regras mais precisas.

5. Configurar o cache com estas novas regras e também de validade datas / durações.

6. Configurar o cache para adicionar alguns controles de cache novos para o cliente. Cliente de controle de cache lado é duro como navegadores respeitar estas regras, com diferentes graus de sucesso. Isto não é realmente no escopo deste artigo, mas eu posso visitá-lo.

7. Documento - Essas regras podem ser complexas e podem envolver falar com pessoas em diferentes partes do negócio para entender a aplicação, portanto, vale a pena documentar este enquanto informações é fresco.

8. E teste de novo - Quanto mais testes melhor. Lembre-se de parte dos testes é manualmente esvaziar o cache do cache de conteúdo, mas também o cliente é muito.

É isso para a gente agora.

Eu estou escrevendo um seguimento a esta conversa em um pouco mais de detalhes sobre as configurações de cache típicas e também a ajudar a responder a perguntas como, 'será um cache de ser de alguma ajuda para a minha candidatura e se assim o tipo de cache que eu deveria estar olhando ? '...

Nenhum comentário:

Postar um comentário