O servidor web 4D dispõe de uma cachê que permite carregar na memória as páginas estáticas, as imagens GIF, as imagens JPEG (<128 kb) e as folhas de estilos (arquivos .css), a medida em que são solicitadas.
A utilização de um cachê permite aumentar de maneira significativa o rendimento do servidor web ao enviar páginas estáticas.
O cachê é comum para todos os processos web. Pode definir o tamanho do cachê nas Preferências. Por padrão, o cachê das páginas estáticas não está ativo para as novas bases de dados. Para desativar, simplesmente selecione a opção Usar o cachê Web de 4D.
Pode modificar o tamanho do cachê na área Tamanho cachê de páginas. O valor a definir depende do número e tamanho das páginas estáticas de seu website, como também dos recursos de que dispõe a máquina local.
Nota: durante a utilização de seu banco web, pode controlar o desempenho do cachê utilizando a rotina WEB GET STATISTICS. Se, por exemplo, notar que a taxa de utilização do cachê é próxima a 100%, pode considerar aumentar o tamanho que tenha estabelecido.
As URLs /4DSTATS e /4DHTMLSTATS também permitem obter informação sobre o estado do cachê. Consulte a seção Informação sobre o Website.
Uma vez ativado o cachê, o servidor web 4D procura a página solicitada por o navegador primeiro no cachê. Se encontrar a página, a envia imediatamente. Caso contrário, 4D carrega a página do disco e a localiza no cachê.
Quando o cachê está cheio e é necessário espaço adicional, 4D “esvazia” as páginas menos utilizadas, por ordem de mais velhas para mais recentes.
Em qualquer momento, pode esvaziar a cachê das páginas e das imagens que contém (por exemplo, se modifica uma página estática e deseja carregá-la na cachê). Para fazer isso, deve clicar no botão Esvaziar cachê. A cachê se esvazia imediatamente.
Esta área permite configurar como o servidor web vai manejar sessões de usuário e seus processos associados. Note que a opção Legacy sessions só está disponível por compatibilidade com projetos /bancos de dados criados com versões de 4D anteriores a 4D v18 R6.
Quando esta opção for selecionada, o servidor web não fornece nenhuma assistência específica para sessões de usuário. Petições sucessivas de clientes web são sempre independentes e nenhum contexto é mantido no servidor.
Neste modo pode configurar configurações adicionais de servidor web:
Esta opção indica o limite estritamente superior do número de processos web de todo tipo (processos web padrão ou pertencentes ao "grupo de processos") que podem ser abertos simultaneamente no servidor. Este parâmetro permite a prevenção da saturação do servidor 4D como resultado de um número massivo de requisições.
Como padráo, este valor é 100. Pode estabelecer o número entre 10 e 32000.
Quando se alcança o número máximo de processos web concorrentes (menos um), 4D não cria mais novos processos e envia a seguinte mensagem “Servidor não disponível” (estado HTTP 503 – Serviço não disponível) a cada nova requisição.
Nota: o número máximo de processos web pode também se definir com ajuda do comando WEB SET OPTION.
Em teoria, o número máximo de processos web é o resultado da divisão Memória disponível/Tamanho da pilha de um processo web(*).. Outra solução é visualizar a informação dos processos web mostrada no Explorador de execução: se indica o número atual de processos web e o número máximo alcançado desde o início do servidor web.
(*) O tamanho da pilha alocado por 4D para um processo Web é por volta de 512 KB
Permite otimizar o funcionamento do servidor web de 4D em modo remoto reutilizando processos web criados para o processamento de requisições web anteriores. Na realidade, o servidor web de um 4D Client necessita um processo web específico para a administração de cada requisição web; quando é necessário, este processo se conecta à máquina 4D Server para acessar aos dados e ao motor do banco de dados. Logo gera um contexto temporal utilizando suas próprias variáveis, seleções, etc. Uma vez processada a requisição, o processo se aborta.
Quando a opção Reutilização dos contextos temporais está selecionada, 4D mantém os processos web específicos criados em 4D Client e os reutiliza para as requisições posteriores. Ao eliminar a etapa de criação do processo, melhora o rendimento do servidor web.
Por outro lado, deve assegurar-se neste caso de inicializar sistematicamente as variáveis utilizadas em métodos 4D para evitar obter resultados incorretos. Igualmente, é necessário apagar as seleções ou registros atuais definidos durante a requisição anterior.
Ativa os processos web preemptivos em suas aplicações compiladas (apenas aplicações 64 bits). Quando selecionar Usar processos preemptivos, a validação do código web-related (incluindo etiquetas 4D e métodos web database) para a execução preemptiva será avaliada durante a compilação. Para saber mais, veja Usar processos Web preemptivos.
Nota: esta opção não aplica aos processos de serviço web (servidor o u cliente). Os processos de serviço web são compatíveis com o modo preemptivo a nível de método: só tem que selecionar a propriedade "Pode ser executada em processos preemptivos" para os métodos do servidor SOAP publicados (ver Publicar um Serviço de Web com 4D) ou métodos cliente proxy (ver Subscrever a um Serviço Web em 4D) e tenha certeza de que o compilador confirme que são thread seguro.
Estabelece o sistema de autenticação que quiser aplicar ao seu servidor Web. A autenticação se refere ao jeito que a informação referente ao nome de usuário e senhas são coletadas e processadas. Para o usuário, o modo de autenticação é transparente.
Notas:
Tem que reiniciar o servidor web para que as mudanças feitas a estes parâmetros sejam levadas em consideração
Nenhuma autenticação é fornecida pelo servidor web, autenticação deve ser feita pelo seu código. Quando esta opção for selecionada:
Se On Web Authentication database method existir, é executado e, além de $1 e $2, só os endereços IP do navegador e servidor ($3 and $4) são fornecidos, o nome de usuário e senha ($5 and $6) estão vazios. Neste caso, pode filtrar conexões de acordo com o endereço IP do navegador ou o endereço IP requisitado do servidor.
Autenticação padrão em modo BASIC. O nome e senha digitados pelo usuário são enviadas sem criptografia na petição HTTP. Isso não assegura segurança total do sistema porque a informação poderia ser interceptada por uma terceira parte (conexões https são recomendadas).
Quando um usuário se conecta ao servidor, uma caixa de diálogo aparece no navegador para que entrem seu nome de usuário e senha. Esses dois valores são então enviados a On Web Authentication database method junto com os outrox parâmetros de conexão (endereço IP e porta, URL...) para que possa processá-los.
Este modo fornece acesso a opção Include 4D passwords (incluir senhas 4D) que permite que use o sistema de senhas de banco de dados de 4D (como definido em 4D), ao invés de usar seu sistema de senhas próprio.
Nota: Com o servidor 4D Client Web, lembre que todos os sites publicados por máquinas 4D Client vão partilhar a mesma tabela de usuários. Validação de usuários/senhas é feita através da aplicação 4D Server.
A informação de autenticação é processada com um processo one-way chamado de hashing que faz com que esses conteúdos sejam impossíveis de decifrar.
Como no modo BASIC, usuários devem entrar seus nomes e senhas quando conectam. Estes dois valores são então enviados criptografados a On Web Authentication database method com os outros parâmetros de conexão. Deve autenticar um usuário usando o comando WEB Validate digest.
Pode designar um usuário, previamente definido na tabela de senhas de 4D, como “Usuário Web Genérico.” Neste caso, cada navegador que se conecta ao banco pode utilizar as autorizações de acesso e as restrições associadas com este usuário. Desta maneira pode controlar facilmente o acesso dos navegadores às diferentes partes do banco.
Nota: não se deve confundir esta opção, que permite restringir os acessos dos navegadores às diferentes partes da aplicação (métodos, formulários, etc.), com o sistema de controle de conexões ao servidor web, administrado pelo sistema de senhas e On Web Authentication Database Method
Para definir um Usuário web genérico:
1. No modo Desenho, criar ao menos um usuário com o editor de usuários da caixa de ferramentas. Se deseja pode associar uma senha com o usuário. 2. Nos diferentes editores de 4D, autorizar ou restringir o acesso a este usuário. 3. Na caixa de diálogo de Propriedades, escolher o tema Web, página Opções (I). Na área “Senhas Web” contém a lista pop-up Usuário web genérico. Como padrão, o Usuário web genérico é o Designer e os navegadores têm acesso completo a todas as partes do banco. 4. Escolher o usuário na lista pop-up e validar a caixa de diálogo.
Todos os navegadores web autorizados a conectar-se ao banco se beneficiarão das autorizações de acesso associadas ao Usuário web genérico (exceto quando o modo BASIC e a opção “Incluir senhas 4D” estão selecionadas e o usuário que se conecta não existe na tabela de senhas 4D, ver a continuação).
A opção "Senhas com protocolo BASIC" não influi em como funciona o Usuário Web genérico. Sem importar o estado desta opção, os privilégios e as restrições de acesso associadas ao “Usuário Web genérico” se aplicarão a todos os navegadores Web que estejam autorizados a se conectar ao banco.
Entretanto, quando a opção "Incluir senhas 4D" estiver selecionada podem apresentar-se dois possíveis resultados:
o nome e a senha do usuário não existem na tabela de senhas de 4D. Neste caso, se a conexão foi aceita pelo On Web Authentication Database Method, os direitos de acesso do usuário Web genérico serão aplicados ao navegador.
Se o nome de usuário e senha existem na tabela de senhas de 4D, o parâmetro “Usuário Web genérico” se ignora. O usuário se conecta com seus próprios direitos de acesso.