HEX
Server: Apache
System: Linux wp-jo-wordpress-79f99b7d9d-ngh2p 6.12.67-0-virt #1-Alpine SMP PREEMPT_DYNAMIC 2026-01-27 02:08:12 x86_64
User: (1001)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: /opt/bitnami/apache/manual/new_features_2_2.html.pt-br.utf8
<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="pt-br"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Vis&atilde;o geral das novas funcionalidades no Servidor HTTP Apache 2.2 - Servidor HTTP Apache Vers&atilde;o 2.4</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="./style/css/prettify.css">
<script src="./style/scripts/prettify.min.js">
</script>

<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">M&oacute;dulos</a> | <a href="./mod/quickreference.html">Diretivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Perguntas Frequentes</a> | <a href="./glossary.html">Gloss&aacute;rio</a> | <a href="./sitemap.html">Mapa do Site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Relate um problema</a></p>
<p class="apache">Servidor HTTP Apache Vers&atilde;o 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="https://httpd.apache.org/docs/">Documenta&ccedil;&atilde;o</a> &gt; <a href="./">Vers&atilde;o 2.4</a></div><div id="page-content"><div id="preamble"><h1>Vis&atilde;o geral das novas funcionalidades no Servidor HTTP Apache 2.2</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>L&iacute;nguas Dispon&iacute;veis: </span><a href="./en/new_features_2_2.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./pt-br/new_features_2_2.html" title="Portugu&ecirc;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
<a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>

  <p>Este documento descreve algumas das principais mudan&ccedil;as entre as
     vers&otilde;es 2.0 e 2.2 do servidor HTTP Apache. Para obter informa&ccedil;&otilde;es sobre os novos
     recursos desde a vers&atilde;o 1.3, consulte o documento <a href="new_features_2_0.html">Novos
     recursos da vers&atilde;o 2.0</a>.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#core">Melhorias do N&uacute;cleo</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#module">Melhorias nos M&oacute;dulos</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#programs">Melhorias na Aplica&ccedil;&atilde;o</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#developer">Altera&ccedil;&otilde;es para Desenvolvedor de M&oacute;dulos</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="core">Melhorias do N&uacute;cleo <a title="Link permanente" href="#core" class="permalink">&para;</a></h2>
    
    <dl>

      <dt>Authn/Authz</dt>
      <dd>Os m&oacute;dulos de autentica&ccedil;&atilde;o e autoriza&ccedil;&atilde;o inclu&iacute;dos foram
          refatorados. O novo m&oacute;dulo mod_authn_alias (j&aacute; removido das vers&otilde;es 2.3/2.4)
          pode simplificar bastante certas configura&ccedil;&otilde;es de autentica&ccedil;&atilde;o.
          Consulte <a href="#module">altera&ccedil;&otilde;es nos nomes dos m&oacute;dulos</a> e
          as <a href="#developer">altera&ccedil;&otilde;es para desenvolvedores</a> para obter mais
          informa&ccedil;&otilde;es sobre como essas altera&ccedil;&otilde;es afetam usu&aacute;rios e
          desenvolvedores de m&oacute;dulos.</dd>

      <dt>Cache</dt>
      <dd><code class="module"><a href="./mod/mod_cache.html">mod_cache</a></code>, <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code> e
          mod_mem_cache (j&aacute; removido das vers&otilde;es 2.3/2.4) tiveram muitas mudan&ccedil;as e
          agora s&atilde;o considerados de qualidade de produ&ccedil;&atilde;o. <code class="program"><a href="./programs/htcacheclean.html">htcacheclean</a></code>
          foi introduzido para limpar as configura&ccedil;&otilde;es de
          <code class="module"><a href="./mod/mod_cache_disk.html">mod_cache_disk</a></code>.</dd>

      <dt>Configura&ccedil;&atilde;o</dt>
      <dd>O layout de configura&ccedil;&atilde;o padr&atilde;o foi simplificado e
          modularizado. Trechos de configura&ccedil;&atilde;o que podem ser usados ​​para
          habilitar recursos comumente utilizados agora est&atilde;o inclu&iacute;dos no Apache e
          podem ser facilmente adicionados &agrave; configura&ccedil;&atilde;o principal do servidor.</dd>

      <dt>Parada graciosa</dt>
      <dd>Os MPMs <code class="module"><a href="./mod/prefork.html">prefork</a></code>, <code class="module"><a href="./mod/worker.html">worker</a></code> e
          <code class="module"><a href="./mod/event.html">event</a></code> agora permitem que o <code class="program"><a href="./programs/httpd.html">httpd</a></code>
          seja desligado graciosamente atrav&eacute;s do sinal
          <a href="stopping.html#gracefulstop"><code>graceful-stop</code></a>.
          A diretiva <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code>
          foi adicionada para especificar um tempo limite &oacute;timo, ap&oacute;s o qual
          <code class="program"><a href="./programs/httpd.html">httpd</a></code> terminar&aacute; independentemente do status
          de quaisquer requisi&ccedil;&otilde;es sendo servidas.</dd>

      <dt>Proxy</dt>
      <dd>O novo m&oacute;dulo <code class="module"><a href="./mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> fornece
          servi&ccedil;os de balanceamento de carga para <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>.
          O novo m&oacute;dulo <code class="module"><a href="./mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> adiciona suporte para o
          <code>Protocolo Apache JServ vers&atilde;o 1.3</code> usado pelo
          <a href="http://tomcat.apache.org/">Apache Tomcat</a>.</dd>

      <dt>Biblioteca de Express&otilde;es Regulares Atualizada</dt>
      <dd>A vers&atilde;o 5.0 da
          <a href="http://www.pcre.org/">Biblioteca de Express&otilde;es Regulares Compat&iacute;veis
          com Perl</a> (PCRE) agora est&aacute; inclu&iacute;da. O <code class="program"><a href="./programs/httpd.html">httpd</a></code> pode ser
          configurado para usar uma instala&ccedil;&atilde;o do PCRE no sistema, passando a op&ccedil;&atilde;o
          <code>--with-pcre</code> para o comando de configura&ccedil;&atilde;o.</dd>

      <dt>Filtragem Inteligente</dt>
      <dd><code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code> introduz configura&ccedil;&atilde;o din&acirc;mica
          &agrave; cadeia de filtros de sa&iacute;da. Ele permite que filtros sejam inseridos condicionalmente,
          com base em qualquer cabe&ccedil;alho "Request" ou "Response" ou vari&aacute;vel de ambiente,
          e dispensa as depend&ecirc;ncias mais problem&aacute;ticas e
          os problemas de ordena&ccedil;&atilde;o na arquitetura 2.0.</dd>

      <dt>Suporte a Arquivos Grandes</dt>
      <dd><code class="program"><a href="./programs/httpd.html">httpd</a></code> agora &eacute; constru&iacute;do com suporte a arquivos maiores
          que 2GB em sistemas Unix modernos de 32 bits. Tamb&eacute;m foi adicionado suporte
          para lidar com corpos de requisi&ccedil;&atilde;o com mais de 2GB.</dd>

      <dt>MPM de Eventos</dt>
      <dd>O m&oacute;dulo MPM <code class="module"><a href="./mod/event.html">event</a></code> usa um thread separado para lidar com
          solicita&ccedil;&otilde;es "Keep Alive" e aceitar conex&otilde;es. As solicita&ccedil;&otilde;es "Keep Alive"
          tradicionalmente exigiam que o httpd dedicasse um trabalhador para process&aacute;-las.
          Esse trabalhador dedicado n&atilde;o podia ser usado novamente at&eacute; que o tempo limite do "Keep Alive"
          fosse atingido.</dd>

      <dt>Suporte a Banco de Dados SQL</dt>
      <dd><code class="module"><a href="./mod/mod_dbd.html">mod_dbd</a></code>, em conjunto com o framework <code>apr_dbd</code>,
          traz suporte direto a SQL para os m&oacute;dulos que precisam.
          Suporte grupos de conex&otilde;es em MPMs com threads.</dd>

    </dl>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="module">Melhorias nos M&oacute;dulos <a title="Link permanente" href="#module" class="permalink">&para;</a></h2>
    
    <dl>
      <dt>Authn/Authz</dt>
      <dd>M&oacute;dulos no diret&oacute;rio "aaa" foram renomeados e oferecem
          um suporte melhor para autentica&ccedil;&atilde;o "digest". Por exemplo,
          <code>mod_auth</code> agora est&aacute; dividido em
          <code class="module"><a href="./mod/mod_auth_basic.html">mod_auth_basic</a></code> e
          <code class="module"><a href="./mod/mod_authn_file.html">mod_authn_file</a></code>; <code>mod_auth_dbm</code> agora &eacute;
          chamado de <code class="module"><a href="./mod/mod_authn_dbm.html">mod_authn_dbm</a></code>; <code>mod_access</code> foi
          renomeado para <code class="module"><a href="./mod/mod_authz_host.html">mod_authz_host</a></code>. Tamb&eacute;m existe um novo
          m&oacute;dulo mod_authn_alias (j&aacute; removido da vers&atilde;o 2.3/2.4) para simplificar
          certas configura&ccedil;&otilde;es de autentica&ccedil;&atilde;o.
      </dd>

      <dt><code class="module"><a href="./mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></dt>
      <dd>Este m&oacute;dulo &eacute; uma adapta&ccedil;&atilde;o do m&oacute;dulo
          <code>mod_auth_ldap</code> da vers&atilde;o para o framework <code>Authn/Authz</code>
          da vers&atilde;o 2.2. Os novos recursos incluem o uso de valores de atributos LDAP e
          filtros de pesquisa complexos na
          diretiva <code class="directive"><a href="./mod/mod_authz_core.html#require">Require</a></code>.</dd>

      <dt><code class="module"><a href="./mod/mod_authz_owner.html">mod_authz_owner</a></code></dt>
      <dd>Um novo m&oacute;dulo que autoriza o acesso a arquivos com base
          no propriet&aacute;rio do arquivo no sistema de arquivos.</dd>

      <dt><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></dt>
      <dd>Um novo m&oacute;dulo que permite habilitar blocos de configura&ccedil;&atilde;o com base no
          n&uacute;mero da vers&atilde;o do servidor em execu&ccedil;&atilde;o.</dd>

      <dt><code class="module"><a href="./mod/mod_info.html">mod_info</a></code></dt>
      <dd>Adicionado um novo argumento <code>?config</code> que mostrar&aacute;
          as diretivas de configura&ccedil;&atilde;o analisadas pelo Apache, incluindo
          o nome do arquivo e o n&uacute;mero da linha. O m&oacute;dulo tamb&eacute;m
          mostra a ordem de todos os ganchos de requisi&ccedil;&atilde;o e informa&ccedil;&otilde;es adicionais
          de constru&ccedil;&atilde;o, similar a <code>httpd -V</code>.</dd>

      <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>
      
      <dd>Adicionado suporte &agrave;
         <a href="https://www.rfc-editor.org/rfc/rfc2817">RFC 2817</a>, que
         permite que conex&otilde;es sejam atualizadas de texto puro para criptografia TLS.</dd>

      <dt><code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code></dt>
      <dd><code>mod_imap</code> foi renomeado para
          <code class="module"><a href="./mod/mod_imagemap.html">mod_imagemap</a></code> para evitar confus&atilde;o pelo usu&aacute;rio.</dd>
    </dl>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="programs">Melhorias na Aplica&ccedil;&atilde;o <a title="Link permanente" href="#programs" class="permalink">&para;</a></h2>
    
    <dl>
      <dt><code class="program"><a href="./programs/httpd.html">httpd</a></code></dt>
      <dd>Uma nova op&ccedil;&atilde;o de linha de comando <code>-M</code> foi adicionada. Ela
          lista todos os m&oacute;dulos carregados com base na configura&ccedil;&atilde;o atual.
          Diferentemente da op&ccedil;&atilde;o <code>-l</code>, esta lista
          inclui DSOs carregados via <code class="module"><a href="./mod/mod_so.html">mod_so</a></code>.</dd>

      <dt><code class="program"><a href="./programs/httxt2dbm.html">httxt2dbm</a></code></dt>
      <dd>Um novo programa usado para gerar arquivos dbm a partir de entrada de texto,
          para uso em <code class="directive"><a href="./mod/mod_rewrite.html#rewritemap">RewriteMap</a></code>
          com o tipo de mapa <code>dbm</code>.</dd>
    </dl>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="developer">Altera&ccedil;&otilde;es para Desenvolvedor de M&oacute;dulos <a title="Link permanente" href="#developer" class="permalink">&para;</a></h2>
    
    <dl>
      <dt>API <a class="glossarylink" href="./glossary.html#apr" title="ver gloss&aacute;rio">APR</a> 1.0</dt>

      <dd>Apache 2.2 usa a API APR 1.0.  Todas as fun&ccedil;&otilde;es e s&iacute;mbolos
          descontinuados foram removidas do <code>APR</code> e do
          <code>APR-Util</code>. Para detalhes, consulte o
          <a href="http://apr.apache.org/">Website do APR</a>.</dd>

      <dt>Authn/Authz</dt>
      <dd>Os m&oacute;dulos de autentica&ccedil;&atilde;o e autoriza&ccedil;&atilde;o foram
          renomeados da seguinte forma:
          <ul>
          <li><code>mod_auth_*</code> -&gt; M&oacute;dulos que implementam um mecanismo
          de autentica&ccedil;&atilde;o HTTP</li>
          <li><code>mod_authn_*</code> -&gt; M&oacute;dulos que fornecem um provedor
          de autentica&ccedil;&atilde;o de backend</li>
          <li><code>mod_authz_*</code> -&gt; M&oacute;dulos que implementam
          autoriza&ccedil;&atilde;o (ou acesso)</li>
          <li><code>mod_authnz_*</code> -&gt; M&oacute;dulos que implementam tanto
          autentica&ccedil;&atilde;o quanto autoriza&ccedil;&atilde;o</li>
          </ul>
          Existe um novo esquema de provedor de backend de
          autentica&ccedil;&atilde;o que facilita bastante a constru&ccedil;&atilde;o de
          novos backends de autentica&ccedil;&atilde;o.</dd>

      <dt>Registro de Erros de Conex&atilde;o</dt>

      <dd>Uma nova fun&ccedil;&atilde;o, <code>ap_log_cerror</code>, foi adicionada para registrar
          erros que ocorrem com a conex&atilde;o do cliente. Quando registrada,
          a mensagem inclui o endere&ccedil;o IP do cliente.</dd>

      <dt>Gancho de Configura&ccedil;&atilde;o de Teste Adicionado</dt>

      <dd>Um novo gancho, <code>test_config</code>, foi adicionado para auxiliar
          m&oacute;dulos que desejam executar c&oacute;digo especial somente quando o usu&aacute;rio passar
          <code>-t</code> para <code class="program"><a href="./programs/httpd.html">httpd</a></code>.</dd>

      <dt>Definindo o Tamanho da Pilha de MPMs com Threads</dt>

      <dd>Uma nova diretiva, <code class="directive"><a href="./mod/mpm_common.html#threadstacksize">ThreadStackSize</a></code> foi adicionada para
          definir o tamanho da pilha em todos os MPMs com threads. Isso &eacute; necess&aacute;rio
          para alguns m&oacute;dulos de terceiros em plataformas com tamanho de pilha de
          threads padr&atilde;o pequeno.</dd>

      <dt>MAnipula&ccedil;&atilde;o de protocolo para filtros de sa&iacute;da</dt>

      <dd>No passado, cada filtro era respons&aacute;vel por garantir
          a gera&ccedil;&atilde;o de cabe&ccedil;alhos de resposta corretos que os afetasse.
          Os filtros agora podem delegar o gerenciamento de protocolos comuns para
          <code class="module"><a href="./mod/mod_filter.html">mod_filter</a></code>, usando as chamadas
          <code>ap_register_output_filter_protocol</code> ou
          <code>ap_filter_protocol</code>.</dd>

      <dt>Gancho de monitoramento adicionado</dt>
      <dd>O gancho de monitoramento permite que os m&oacute;dulos executem tarefas regulares/agendadas
          no processo pai (raiz).</dd>

      <dt>Altera&ccedil;&otilde;es na API de express&otilde;es regulares</dt>

      <dd>O cabe&ccedil;alho <code>pcreposix.h</code> n&atilde;o est&aacute; mais dispon&iacute;vel;
          ele foi substitu&iacute;do pelo novo cabe&ccedil;alho <code>ap_regex.h</code>.
          A implementa&ccedil;&atilde;o POSIX.2 <code>regex.h</code> exposta pelo antigo
          cabe&ccedil;alho agora est&aacute; dispon&iacute;vel no namespace <code>ap_</code>
          a partir de <code>ap_regex.h</code>. Chamadas para <code>regcomp</code>,
          <code>regexec</code> e assim por diante podem ser substitu&iacute;das por chamadas para
          <code>ap_regcomp</code>, <code>ap_regexec</code>.</dd>

      <dt>Framework DBD (API de banco de dados SQL)</dt>

      <dd><p>Com o Apache 1.x e 2.0, os m&oacute;dulos que exigiam um backend SQL
          tinham que assumir a responsabilidade de gerenci&aacute;-lo por conta pr&oacute;pria. Al&eacute;m de
          reinventar a roda, isso pode ser muito ineficiente, por
          exemplo, quando v&aacute;rios m&oacute;dulos mant&ecirc;m suas pr&oacute;prias conex&otilde;es.</p>

          <p>O Apache 2.1 e vers&otilde;es posteriores fornecem a API <code>ap_dbd</code> para
          gerenciar conex&otilde;es de banco de dados (incluindo estrat&eacute;gias otimizadas
          para MPMs com e sem threads), enquanto o APR 1.2 e vers&otilde;es posteriores fornecem
          a API <code>apr_dbd</code> para interagir com o banco de dados.</p>

          <p>Novos m&oacute;dulos DEVEM agora usar essas APIs para todas as opera&ccedil;&otilde;es de banco de dados SQL.
          Os aplicativos existentes DEVEM ser atualizados para us&aacute;-las
          sempre que poss&iacute;vel, seja de forma transparente ou como uma op&ccedil;&atilde;o recomendada
          aos seus usu&aacute;rios.</p></dd>
    </dl>
  </div></div>
<div class="bottomlang">
<p><span>L&iacute;nguas Dispon&iacute;veis: </span><a href="./en/new_features_2_2.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/new_features_2_2.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ko/new_features_2_2.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./pt-br/new_features_2_2.html" title="Portugu&ecirc;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
<a href="./tr/new_features_2_2.html" hreflang="tr" rel="alternate" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br>Licenciado sob a <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">M&oacute;dulos</a> | <a href="./mod/quickreference.html">Diretivas</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">Perguntas Frequentes</a> | <a href="./glossary.html">Gloss&aacute;rio</a> | <a href="./sitemap.html">Mapa do Site</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Relate um problema</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>