limitações do servidor de cache proxy?

limitações do servidor de cache proxy?

Tenho perguntas mais do que menos generalizadas sobre servidores de cache proxy.

Apenas para criar um cenário hipotético, tenho brincado com a ideia de instalar um servidor de cache proxy em minha casa para tentar ajudar a reduzir a quantidade de tráfego que flui pelo roteador (o ISP tem um limite para a quantidade total de dados pode ser usado). O servidor estaria localizado na parte interna do roteador para que o roteador não tenha conhecimento de alguns dados armazenados

Qual seria a eficácia de um servidor de cache proxy neste caso? (além disso, que outros meios posso implementar para reduzir o tráfego de rede no roteador)

O servidor proxy pode armazenar em cache imagens individuais de sites? Por exemplo, um fórum atualiza frequentemente o conteúdo, mas as imagens exibidas no site não são alteradas. Algumas informações sobre um site poderiam ser salvas? Ou toda a página teria que ser solicitada novamente devido à sua capacidade dinâmica?

Sou relativamente novo nos recursos dos servidores proxy e, se conseguir encontrar informações suficientes sobre eles, gostaria de trazê-los para meu trabalho em TI.

Responder1

O servidor proxy pode armazenar em cache imagens individuais de sites?

Sim.

toda a página teria que ser solicitada novamente devido à sua capacidade dinâmica?

As partes dinâmicas teriam que ser buscadas novamente, o proxy deveria cuidar disso examinando os cabeçalhos de controle de proxy em cada elemento da página buscado separadamente.


Aqui está um pequeno exemplo (editado) de uma captura Wireshark do Chrome buscando uma página da web do superusuário

Solicitação do cliente

GET /questions/419790/confused-by-cpu-model HTTP/1.1
Host: superuser.com
Connection: keep-alive
User-Agent: …Chrome…
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://superuser.com/questions
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: …

Resposta do servidor

HTTP/1.1 200 OK
Cache-Control: public, max-age=60
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: Wed, 02 May 2012 19:41:23 GMT
Last-Modified: Wed, 02 May 2012 19:40:23 GMT
Vary: *
Date: Wed, 02 May 2012 19:40:23 GMT
Content-Length: 9831

Observe que Cache-Control: public, max-age=60é Expires: Wed, 02 May 2012 19:41:23 GMTassim que o servidor tenta controlar como cada parte do conteúdo é armazenada em cache. Uma página de perguntas de superusuário pode ter dezenas ou centenas desses elementos obtidos individualmente.

Ler o quêW3C diz sobre controle de cache

O campo de cabeçalho geral Cache-Control é usado para especificar diretivas que DEVEM ser obedecidas por todos os mecanismos de cache ao longo da cadeia de solicitação/resposta. As diretivas especificam o comportamento destinado a evitar que os caches interfiram negativamente na solicitação ou resposta. Essas diretivas normalmente substituem os algoritmos de cache padrão. As diretivas de cache são unidirecionais, pois a presença de uma diretiva em uma solicitação não implica que a mesma diretiva deva ser fornecida na resposta.

mais tarde

público
Indica que a resposta PODE ser armazenada em cache por qualquer cache, mesmo que normalmente não seja armazenável em cache ou armazenável apenas em um cache não compartilhado. (Consulte também Autorização, seção 14.8, para obter detalhes adicionais.)

privado
Indica que toda ou parte da mensagem de resposta se destina a um único usuário e NÃO DEVE ser armazenada em cache por um cache compartilhado. Isso permite que um servidor de origem declare que as partes especificadas da resposta são destinadas a apenas um usuário e não são uma resposta válida para solicitações de outros usuários. Um cache privado (não compartilhado) PODE armazenar em cache a resposta. Nota: Este uso da palavra privado controla apenas onde a resposta pode ser armazenada em cache e não pode garantir a privacidade do conteúdo da mensagem.

sem cache
Se a diretiva no-cache não especificar um nome de campo, então um cache NÃO DEVE usar a resposta para satisfazer uma solicitação subsequente sem revalidação bem-sucedida com o servidor de origem. Isso permite que um servidor de origem impeça o armazenamento em cache mesmo por caches que foram configurados para retornar respostas obsoletas a solicitações de clientes.

e assim por diante - é uma área de assunto ampla.

informação relacionada