Mudanças entre as edições de "Projeto Integrador - 2010.1 - Dicas de GAR"
Linha 31: | Linha 31: | ||
=Modificação de Conteúdo Web= | =Modificação de Conteúdo Web= | ||
Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de ''proxies''. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (''payload'') após o processamento da página no servidor Web. | Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de ''proxies''. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (''payload'') após o processamento da página no servidor Web. | ||
− | + | ||
+ | No exemplo abaixo: foram utilizados os seguintes componentes: | ||
+ | * Cliente Web: sem qualquer configuração adicional. | ||
+ | * ''Firewall'': através de regras de modificação dos pacotes IP, redirecionará, de forma transparente, os pedidos para o Analisador de Conteúdo. | ||
+ | * Analisador de Conteúdo: filtra e modifica conteúdo (''payload'') da camada de Aplicação, como páginas HTML, imagens e outros. | ||
+ | * Proxy: | ||
+ | * Servidor Web: monta dinamicamente as páginas HTML usando programação interpretada e banco de dados. | ||
+ | |||
<center><graphviz> | <center><graphviz> | ||
digraph Navegacao | digraph Navegacao |
Edição das 15h35min de 14 de junho de 2010
Organização
- Usem mapas mentais ou grafos direcionados (dígrafos) para ver/compreender a relação entre camadas e serviços de rede. Exemplo:
digraph Serviços { splines = true
subgraph clusterRede { label = "Rede" DHCP }
subgraph clusterAplicacao { label = "Aplicação" DNS HTTP MySQL SMTP IMAP }
DHCP -> DNS -> HTTP MySQL -> HTTP -> MySQL DNS -> SMTP -> HTTP DNS -> IMAP -> HTTP }
</graphviz>Modificação de Conteúdo Web
Uma das formas de se alterar dinamicamente uma página Web, antes de entregá-la ao cliente que a solicitou, é através de proxies. Com eles, é possível ler a requisição antes mesmo de consumir recurso de rede, além da possibilidade de modificar o conteúdo (payload) após o processamento da página no servidor Web.
No exemplo abaixo: foram utilizados os seguintes componentes:
- Cliente Web: sem qualquer configuração adicional.
- Firewall: através de regras de modificação dos pacotes IP, redirecionará, de forma transparente, os pedidos para o Analisador de Conteúdo.
- Analisador de Conteúdo: filtra e modifica conteúdo (payload) da camada de Aplicação, como páginas HTML, imagens e outros.
- Proxy:
- Servidor Web: monta dinamicamente as páginas HTML usando programação interpretada e banco de dados.
digraph Navegacao {
Firewall [shape=plaintext] subgraph clusterCliente { label=Cliente Socket_C [label=Navegador,shape=Mrecord] } subgraph clusterAnalisador { label=Analisador Socket_A [label=Servidor,shape=Mrecord] Socket_AA [label=Cliente,shape=Mrecord] Filtragem_A [label=Filtragem,shape=Mrecord] Modificação_A [label=Modificação,shape=Mrecord] } subgraph clusterProxy { label=Proxy Socket_P [label=Servidor,shape=Mrecord] Socket_PP [label=Cliente,shape=Mrecord] Filtragem_P [label=Filtragem,shape=Mrecord] } subgraph clusterSite { label=Site Socket_S [label=Socket,shape=Mrecord] Montagem_S [label="Montagem do conteúdo dinâmico",shape=Mrecord] }
Socket_C -> Firewall -> Socket_A [label=1,color=red] Socket_A -> Filtragem_A [label=2,color=red] Filtragem_A -> Socket_AA [label=3,color=red] Socket_AA -> Socket_P [label=4,color=red] Socket_P -> Filtragem_P [label=5,color=red] Filtragem_P -> Socket_PP [label=6,color=red] Socket_PP -> Socket_S [label=7,color=red] Socket_S -> Montagem_S [label=8,color=red] Montagem_S -> Socket_S [label=9,color=blue] Socket_S -> Socket_PP [label=10,color=blue] Socket_PP -> Filtragem_P [label=11,color=blue] Filtragem_P -> Socket_P [label=12,color=blue] Socket_P -> Socket_AA [label=13,color=blue] Socket_AA -> Filtragem_A [label=14,color=blue] Filtragem_A -> Modificação_A [label=15,color=blue] Modificação_A -> Socket_A [label=16,color=blue] Socket_A -> Firewall -> Socket_C [label=17,color=blue] }
</graphviz>