Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

razs

comprimir gzip em asp

Recommended Posts

boas queria comprimir o meu site entao coloquei no web.config

 

 

 

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

 

mas nao esta a funcionar, estou-me a esquecer de algo?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

use assim:

 

<%
 Dim strResult
 set javaObject = GetObject("java:ZipFunctions")
 strResult = javaObject.GZipFile(Server.mappath("/asp/zipme.txt"), Server.mappath("/asp/zipme.txt.gz"))
 response.write strResult
 set javaObject = nothing
%>

ou este code também:

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
set gzip = Server.CreateObject("Chilkat.Gzip")

'  trial
success = gzip.UnlockComponent("30 dia trial")
If (success <> 1) Then
    Response.Write gzip.LastErrorText & "<br>"

End If

'  Criar uma strings de caracteres que é um pouco grande.

s = "Um amigo me ligou outro dia e falou sobre o investimento em uma rede de lojas"
s = s & " que vende perfumes. Perfumes e essências pela Internet."
s = s + s
s = s + s

'  Esvaziar e imprimir a string compactada

cs = gzip.DeflateStringENC(s,"windows-1252","base64")
Response.Write Server.HTMLEncode( cs) & "<br>"

'  Inflar para restaurar a string:

s2 = gzip.InflateStringENC(cs,"windows-1252","base64")
Response.Write Server.HTMLEncode( s2) & "<br>"
%>
</body>
</html>

 

 

no webconfig, Este código deve ficar dentro da tag “system.webserver”.

 

<urlCompression doStaticCompression="true"
doDynamicCompression="true"
dynamicCompressionBeforeCache="true" />

Essa tag é o botão de liga/desliga da compressão. O dynamicCompressionBeforeCache diz que o cache já será feito com tudo compactado. Só não deixe true aqui se acabar tendo algum problema em seus scripts.

Em sua aplicação, essa é a única configuração que você consegue fazer. O primeiro problema que você vai enfrentar é que mimeTypes do tipo aplication/json (seus queridos webservices) não vão ser compactados por padrão. Para ter mais controle sobre o processo todo (e escolher os mimetypes a serem compactados por exemplo), você tem que configurar diretamente o nó de servidor do seu IIS.

 

<system.webServer>
  <httpCompression directory="%SystemDrive%\inetpub\
temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

e para configurando o IIS, no console do IIS você pode configurar a compactação com muito mais granularidade. Abra o IIS, clique no nó principal e vá no “configuration editor”.

 

iis_etapa1-480x297.png

 

No “configuration editor”, você tem essas opções:

 

iis_configuration_editor-480x381.png

 

algumas vezes o IIS pode ter habilitado somente compactação estática, então instale e ative o recurso de compactação dinâmica.

scheme

Clique na primeira “Collection” e defina aqui qual tipo de compressão será usada: gzip ou deflate na maioria dos casos. Além disso, você pode configurar também o nível de compressão. Eu recomendo o máximo para conteúdo estático, já que estes arquivos mudam muito pouco e uma vez compactados eles vão pro cache. Já para o conteúdo dinâmico, faça testes com seu servidor e veja o custo x benefício em incrementar esse número. Em minha experiência, números altos gastam muito processamento e não aumentam em quase nada a compactação. Os campos são “staticCompressionLevel” e “dynamicCompressionLevel”. De novo, faça seus testes.

Trava de segurança em caso de muito processamento

Compactar o retorno para o navegador com certeza vai te economizar banda, mas vai também te custar mais processamento. Aqui podemos fazer como que o servidor pare de compactar arquivos caso o processamento aumente muito.

Em “staticCompressionDisableCpuUsage” você diz quando o servidor deve parar de compactar arquivos. Por exemplo, quando atingir 80% de uso de cpu.

Em “staticCompressionEnableCpuUsage” você diz em que nível o processamento tem que baixar para que a compressão seja ligada novamente. Por exemplo, baixou para 50%, volte a comprimir o response.

dynamicTypes e staticTypes

Aqui você diz que tipo de conteúdo vai ser compactado configurando por mimetype. Lembre-se que conteúdo estático é quando o IIS serve um arquivo diretamente e dinâmico é todo resto. Não esqueça de adicionar aqui o “application/json” se fizer sentido pra você.

Outros

Há vários outros parâmetros para testar, como desabilitar compressão para proxies, máximo de disco a ser usado, etc. Analise seu contexto.

 

e aqui outras alternativas

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode solicitar a eles para configurar, e dependendo de alguns hosts irão cobrar, outros poderão sugerir um servidor dedicado. Mas entre em contato com seu host.

Compartilhar este post


Link para o post
Compartilhar em outros sites

as tag de config. estão dentro do <system.webServer> no webconfig

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum erro ?

o que o suporte disse ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como vc esta usando php, você pode habilitar a compressão gzip através do seguinte código:

 
<?php
 if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], ‘gzip’))
 ob_start("ob_gzhandler");
 else
 ob_start();
 ?>

 


Cole o código na primeira linha de cada arquivo php, ou você pode criar um include, e apenas adicionar em cada página. Caso você utilize WordPress, basta adicionar o código acima no arquivo Header.php do tema instalado.

Para testar as formas mencionadas acima, existe a ferramenta GIDZipTest.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pensei que fosse php, devido ao link que postou http://www.gidnetwor...s/gzip-test.php. seu webconfig tem que estar igual ao k passei. E como vc esta usando o gzip?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o link que passei e do teste que uso para ver se ficou activo.

 

o web.config esta assim:

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^xxxx.com$" />
</conditions>
<action type="Redirect" url="http://www.xxxxxx.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
<directoryBrowse enabled="false" />
<defaultDocument>
<files>
<clear />
<add value="index.asp" />
</files>
</defaultDocument>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
</httpProtocol>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off" />
<globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-US"
uiCulture="de-DE"
/>
</system.web>
</configuration>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olhando assim vc deixou correto a configuração, ele esta ativo para o protocolo de compressão GZIP utilizando os tipos dinâmico e estático (dynamicTypes, e staticTypes)

 

• staticTypes (Compressão de estática)
Você deve usar a compactação estática com arquivos que normalmente não mudam , como arquivos HTML ( * . Html, * . Htm ), arquivos de texto ( * . Txt ), documentos do Microsoft Office ( * . Doc, * . Xls , * . Ppt ), etc o tamanho desses arquivos pode ser reduzido através da compressão , o que reduz o tempo de download para as solicitações do cliente e reduz a largura de banda no servidor.

Nota: Os arquivos de imagem como *.png também são arquivos estáticos , mas normalmente eles não se beneficiam de compressão HTTP , porque esses arquivos de imagem já são compactados.

• dynamicTypes (Compressão Dinâmica :)
Ao contrário de compressão estática , o IIS executa compressão dinâmica cada vez que um cliente solicita o conteúdo, mas a versão comprimida não está em cache no disco. Esta alteração é feita por causa da principal diferença entre conteúdo estático e dinâmico. O conteúdo estático não muda. No entanto, o conteúdo dinâmico é tipicamente o conteúdo que é criado por um aplicativo e, portanto, muda muitas vezes , como o Active Server Pages (ASP) ou conteúdo ASP.NET . Como o conteúdo dinâmico deve alterar frequentemente , IIS não armazena em cache.

 

vc tem certeza que ele esta habilitado para seu domínio ?

ele não gera nenhum erro, apenas não comprimi ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como vc esta fazendo para comprimir. E vc pode abrir um chamado no host para eles fazerem um outro teste. Pois na verdade é só colocar corretamente no web.config e o a compressão já esta funcionando. faça uma análise com o gtmetrix.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

relate ao seu host.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.