<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Descri&#231;&#227;o das novas funcionalidades do Apache 2.0 - Servidor HTTP Apache Vers&#227;o 2.5</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" type="text/javascript">
</script>

<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">M&#243;dulos</a> | <a href="./mod/quickreference.html">Diretrizes</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Gloss&#225;rio</a> | <a href="./sitemap.html">Mapa do site</a></p>
<p class="apache">Servidor HTTP Apache Vers&#227;o 2.5</p>
<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Servidor HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documenta&#231;&#227;o</a> &gt; <a href="./">Vers&#227;o 2.5</a></div><div id="page-content"><div id="preamble"><h1>Descri&#231;&#227;o das novas funcionalidades do Apache 2.0</h1>
<div class="toplang">
<p><span>L&#237;nguas Dispon&#237;veis: </span><a href="./de/new_features_2_0.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/new_features_2_0.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/new_features_2_0.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/new_features_2_0.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/new_features_2_0.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./pt-br/new_features_2_0.html" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
<a href="./tr/new_features_2_0.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Esta tradu&#231;&#227;o pode estar desatualizada.
        Confira a vers&#227;o em Ingl&#234;s para mudan&#231;as recentes.</div>

  <p>Esse documento descreve algumas das mudan&#231;as principais
     entre as vers&#245;es 1.3 e 2.0 do Servidor HTTP Apache.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#core">Principais Melhorias</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#module">Melhorias nos M&#243;dulos</a></li>
</ul><h3>Veja tamb&#233;m</h3><ul class="seealso"><li><a href="upgrading.html">Atualizando da vers&#227;o 1.3 para 2.0</a></li><li><a href="#comments_section">Coment&#225;rios</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="core" id="core">Principais Melhorias</a> <a title="Permanent link" href="#core" class="permalink">&para;</a></h2>
    

    <dl>
      <dt>Threading Unix</dt>

      <dd>Em sistemas Unix com suporte a threads POSIX, o Apache pode
      funcionar em modo h&#237;brido multiprocesso e multithread. N&#227;o funciona
      em todas configura&#231;&#245;es, mas melhora a escalabilidade em muitas.</dd>

      <dt>Novo Sistema de Compila&#231;&#227;o</dt>

      <dd>O sistema de compila&#231;&#227;o foi reescrito do zero para utilizar o
      <code>autoconf</code> e o <code>libtool</code>, tornando a
      configura&#231;&#227;o do sistema Apache mais similar a de outros
      pacotes.</dd>

      <dt>Suporte Multi-protocolo</dt>

      <dd>O Apache possui agora uma infraestrutura feita para suportar
      m&#250;ltiplos protocolos. O m&#243;dulo <code class="module"><a href="./mod/mod_echo.html">mod_echo</a></code> &#233;  um
      exemplo ilustrativo de sua utiliza&#231;&#227;o.</dd>

      <dt>Suporte Aperfei&#231;oado para Plataformas N&#227;o-Unix</dt>

      <dd>O Apache 2.0 est&#225;  mais r&#225;pido e mais est&#225;vel em plataformas
      N&#227;o-Unix como BeOS, OS/2 e Windows. Com a introdu&#231;&#227;o de m&#243;dulos
      <a href="mpm.html">multi-processamento</a> (MPMs) espec&#237;ficos e a
      Apache Portable Runtime (APR), essas plataformas est&#227;o implementando
      as suas APIs nativas, evitando as camadas de emula&#231;&#227;o POSIX que se
      mostravam lentas e defeituosas.</dd>

      <dt>Nova API Apache</dt>

      <dd>A API para m&#243;dulos mudou significativamente na vers&#227;o 2.0.
      Muitos dos problemas de ordenamento/prioridade da vers&#227;o
      1.3 foram resolvidos. A vers&#227;o 2.0 faz o ordenamento autom&#225;tico
      "per-hook" para permitir mais flexibilidade. Novas chamadas foram
      adicionadas para fornecer capacidades adicionais sem a necessidade
      de se aplicar nenhum patch ao servidor Apache principal.</dd>

      <dt>Suporte IPv6</dt>

      <dd>Em sistemas onde o IPv6 &#233; suportado pela biblioteca de base
      Apache Portable Runtime, o Apache monitora por padr&#227;o
      as interfaces IPv6. Em adi&#231;&#227;o as diretrizes  <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>, <code class="directive"><a href="./mod/core.html#namevirtualhost">NameVirtualHost</a></code> e <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>, suportam correntes (strings) de
      endere&#231;os num&#233;ricos do tipo IPv6. (ex. "<code>Listen
      [2001:db8::1]:8080</code>").</dd>

      <dt>Filtrando</dt>

      <dd>Os m&#243;dulos do Apache agora s&#227;o feito filtros que
      agem na corrente do conte&#250;do na medida que este &#233; entregue, tanto
      na entrada quando na sa&#237;da de dados do servidor. &#201; poss&#237;vel ent&#227;o,
      por exemplo, que o retorno de dados de scripts CGI sejam analisados
      pelas diretrizes do "Server Side Include" usando o filtro <code>INCLUDES</code> do <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>. O m&#243;dulo <code class="module"><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code>, permite que programas externos trabalhem
      como filtros do mesmo modo que aplica&#231;&#245;es CGI funcionam como
      manipuladores.</dd>

      <dt>Respostas de Erro Multi-linguais</dt>

      <dd>Mensagens de erro para o navegador agora s&#227;o fornecidas em
      diversas l&#237;nguas, usando documentos SSI. Podem ser personalizadas
      pelo administrador que desejar definir seus pr&#243;prios
      padr&#245;es.</dd>

      <dt>Configura&#231;&#227;o Simplificada</dt>

      <dd>Muitas diretrizes confusas foram simplificadas. Entre elas,
      <code>Port</code> e <code>BindAddress</code> n&#227;o existem
      mais; apenas a diretriz <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
      &#233; usada para direcionar endere&#231;os IP; a diretriz <code class="directive"><a href="./mod/core.html#servername">ServerName</a></code> especifica o nome do servidor
      e o n&#250;mero da porta apenas para redirecionamento e reconhecimento
      de hospedeiros virtuais.</dd>

      <dt>Suporte Nativo ao Unicode do Windows NT</dt>

      <dd>O Apache 2.0 para Windows NT agora usa utf-8 para codifica&#231;&#227;o
      de todos os nomes de arquivos. A tradu&#231;&#227;o para o sistema
      base Unicode, torna poss&#237;vel o suporte multi-lingual para todas
      as instala&#231;&#245;es da fam&#237;lia NT, incluindo o Windows 2000 e Windows XP.
      <em>Esse suporte n&#227;o se estende ao Windows 95, 98 ou ME, que
      continuam usando o c&#243;digo de p&#225;ginas da m&#225;quina local para o
      acesso ao sistema de arquivos.</em></dd>

      <dt>Biblioteca de Express&#245;es Regulares Atualizada</dt>

      <dd>O Apache 2.0 inclui a <a href="http://www.pcre.org/">Biblioteca
      de Express&#245;es Regulares Compat&#237;veis Perl</a> (PCRE).  Todas as
      avalia&#231;&#245;es de express&#245;es regulares usam a mais poderosa sintaxe
      do Perl 5.</dd>

    </dl>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="module" id="module">Melhorias nos M&#243;dulos</a> <a title="Permanent link" href="#module" class="permalink">&para;</a></h2>
    

    <dl>
      <dt><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0. Esse m&#243;dulo &#233; uma interface
      para os protocolos de codifica&#231;&#227;o SSL/TLS fornecidos pela
      OpenSSL.</dd>

      <dt><code class="module"><a href="./mod/mod_dav.html">mod_dav</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0. Este m&#243;dulo implementa as
      especifica&#231;&#245;es de Autoria Distribu&#237;da e Vers&#245;es (Distributed
      Authoring and Versioning - DAV) para HTTP, para a publica&#231;&#227;o
      e a manuten&#231;&#227;o de conte&#250;do da web.</dd>

      <dt><code class="module"><a href="./mod/mod_deflate.html">mod_deflate</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0.  Esse m&#243;dulo permite o suporte
      a navegadores que solicitam que o conte&#250;do seja comprimido antes
      da entrega, economizando banda da rede.</dd>

      <dt><code class="module"><a href="./mod/mod_auth_ldap.html">mod_auth_ldap</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0.41. Este m&#243;dulo permite que 
      bancos de dados LDAP sejam usados para armazenar credenciais
      para Autentica&#231;&#227;o B&#225;sica HTTP. Um m&#243;dulo que o acompanha <code class="module"><a href="./mod/mod_ldap.html">mod_ldap</a></code>, fornece a concilia&#231;&#227;o de conex&#245;es e armazenamento
      de resultados.</dd>

      <dt><code class="module"><a href="./mod/mod_auth_digest.html">mod_auth_digest</a></code></dt>

      <dd>Inclui suporte adicional para armazenamento de sess&#245;es
      atrav&#233;s de processos que usam mem&#243;ria compartilhada.</dd>

      <dt><code class="module"><a href="./mod/mod_charset_lite.html">mod_charset_lite</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0. Este modo experimental permite a
      tradu&#231;&#227;o de tabelas de caracteres ou re-codifica&#231;&#227;o.</dd>

      <dt><code class="module"><a href="./mod/mod_file_cache.html">mod_file_cache</a></code></dt>

      <dd>Novo m&#243;dulo no Apache 2.0. Esse m&#243;dulo inclui a funcionalidade
      do <code>mod_mmap_static</code> do Apache 1.3, al&#233;m de disponibilizar
      outras possibilidades de armazenamento.</dd>

      <dt><code class="module"><a href="./mod/mod_headers.html">mod_headers</a></code></dt>

      <dd>Este m&#243;dulo est&#225; muito mais flex&#237;vel no Apache 2.0. Pode
      modificar pedidos de cabe&#231;alhos usados pelo <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code>, e incondicionalmente pode ajustar cabe&#231;alhos de respostas.</dd>

      <dt><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></dt>

      <dd>O m&#243;dulo proxy foi totalmente reescrito para levar vantagem
      da nova infraestrutura de filtro e implementar um proxy mais fiel e 
      de acordo com o padr&#227;o HTTP/1.1. Al&#233;m disso, uma nova se&#231;&#227;o
      de configura&#231;&#227;o <code class="directive"><a href="./mod/mod_proxy.html#proxy">&lt;Proxy&gt;</a></code> fornece controles mais leg&#237;veis (e internamente
      mais r&#225;pidos) para sites com proxies; configura&#231;&#245;es
      sobrecarregadas <code>&lt;Directory "proxy:..."&gt;</code>, n&#227;o
      s&#227;o suportadas. O m&#243;dulo agora &#233; dividido em suporte
      de protocolos espec&#237;ficos incluindo <code>proxy_connect</code>,
      <code>proxy_ftp</code> e <code>proxy_http</code>.</dd>

      <dt><code class="module"><a href="./mod/mod_negotiation.html">mod_negotiation</a></code></dt>

      <dd>A nova diretriz <code class="directive"><a href="./mod/mod_negotiation.html#forcelanguagepriority">ForceLanguagePriority</a></code> pode ser usada para assegurar que
      o cliente receba um &#250;nico documento em todos os casos, ao inv&#233;s de
      respostas "NOT ACCEPTABLE" ou "MULTIPLE CHOICES". Novos algoritmos
      de negocia&#231;&#227;o e vis&#245;es m&#250;ltiplas (MultiViews) foram organizados para
      obter resultados mais consistentes e uma nova forma de tipo de mapa
      (map type) que podem incluir o conte&#250;do de documentos &#233; fornecido.</dd>

      <dt><code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code></dt>

      <dd>As listagens de diret&#243;rios autom&#225;ticas podem ser
      configuradas para usar tabelas HTML para formata&#231;&#245;es mais limpas
      e permitir controles mais acurados de classifica&#231;&#227;o, incluindo
      ordena&#231;&#227;o por vers&#227;o e filtro da lista de
      diret&#243;rios atrav&#233;s de caracteres-coringa.</dd>

      <dt><code class="module"><a href="./mod/mod_include.html">mod_include</a></code></dt>

      <dd>Novas diretrizes permitem que as tags padr&#245;es <em>start</em> e
      <em>end</em> para elementos SSI, possam ser alteradas e permitir que
      as configura&#231;&#245;es de formatos de erro e hora sejam inclu&#237;dos no
      arquivo de configura&#231;&#227;o principal, ao inv&#233;s de serem adicionadas
      ao documento SSI. Resultados de an&#225;lises de express&#245;es regulares
      e agrupamento (baseadas na sintaxe de express&#245;es regulares do Perl)
      podem ser obtidas usando as vari&#225;veis do m&#243;dulo <code class="module"><a href="./mod/mod_include.html">mod_include</a></code>, de <code>$0</code> a <code>$9</code>.</dd>

      <dt><code class="module"><a href="./mod/mod_auth_dbm.html">mod_auth_dbm</a></code></dt>

      <dd>Agora suporta m&#250;ltiplos tipos de banco de dados similares ao DBM,
      usando a diretriz <a href="../2.0/mod/mod_auth_dbm.html#AuthDBMType">
	  <code>AuthDBMType</code></a>
      .</dd>

    </dl>
  </div></div>
<div class="bottomlang">
<p><span>L&#237;nguas Dispon&#237;veis: </span><a href="./de/new_features_2_0.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
<a href="./en/new_features_2_0.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/new_features_2_0.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/new_features_2_0.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/new_features_2_0.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./pt-br/new_features_2_0.html" title="Portugu&#234;s (Brasil)">&nbsp;pt-br&nbsp;</a> |
<a href="./tr/new_features_2_0.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Coment&#225;rios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/new_features_2_0.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else {
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Licenciado sob a <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">M&#243;dulos</a> | <a href="./mod/quickreference.html">Diretrizes</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="./glossary.html">Gloss&#225;rio</a> | <a href="./sitemap.html">Mapa do site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>