<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.pt-br.xsl"?>
<!-- English Revision: 420990:1561569 (outdated) -->

<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<manualpage metafile="new_features_2_0.xml.meta">

<title>Descri&#231;&#227;o das novas funcionalidades do Apache 2.0</title>

<summary>
  <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>
</summary>

<seealso><a href="upgrading.html">Atualizando da vers&#227;o 1.3 para 2.0</a></seealso>

  <section id="core">
    <title>Principais Melhorias</title>

    <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 <module>mod_echo</module> &#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  <directive
      module="mpm_common">Listen</directive>, <directive module="core"
      >NameVirtualHost</directive> e <directive module="core"
      >VirtualHost</directive>, 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 <module>mod_include</module>. O m&#243;dulo <module
      >mod_ext_filter</module>, 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 <directive module="mpm_common">Listen</directive>
      &#233; usada para direcionar endere&#231;os IP; a diretriz <directive
      module="core">ServerName</directive> 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>
  </section>

  <section id="module">
    <title>Melhorias nos M&#243;dulos</title>

    <dl>
      <dt><module>mod_ssl</module></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><module>mod_dav</module></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><module>mod_deflate</module></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><module>mod_auth_ldap</module></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 <module
      >mod_ldap</module>, fornece a concilia&#231;&#227;o de conex&#245;es e armazenamento
      de resultados.</dd>

      <dt><module>mod_auth_digest</module></dt>

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

      <dt><module>mod_charset_lite</module></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><module>mod_file_cache</module></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><module>mod_headers</module></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 <module>mod_proxy</module
      >, e incondicionalmente pode ajustar cabe&#231;alhos de respostas.</dd>

      <dt><module>mod_proxy</module></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 <directive module="mod_proxy" type="section"
      >Proxy</directive> 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><module>mod_negotiation</module></dt>

      <dd>A nova diretriz <directive module="mod_negotiation"
      >ForceLanguagePriority</directive> 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><module>mod_autoindex</module></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><module>mod_include</module></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 <module
      >mod_include</module>, de <code>$0</code> a <code>$9</code>.</dd>

      <dt><module>mod_auth_dbm</module></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>
  </section>
</manualpage>
