### Apache HTTP Server Version 2.0

# Apache 2.0의 새로운 기능 개요

나아진 점: 핵심 | 모듈

## 핵심에서 나아진 점:

유닉스 쓰레드
  POSIX 쓰레드를 지원하는 유닉스 시스템에서 아파치를 여러 프로세스와 여러 쓰레드로 혼합해서 실행할 수 있다. 전부는 아니지만 많은 경우 범위성(scalability)을 향상시킨다.
새로운 컴파일 시스템
  컴파일 시스템이 autoconf와 libtool을 사용하도록 재작성되었다. 그래서 아파치 구성 시스템이 다른 패키지들과 좀더 비슷해졌다.
여러 프로토콜 지원
  이제 아파치는 여러 프로토콜을 서비스할 수 있는 구조를 갖췄다. mod_echo가 그 예로 작성되었다.
비유닉스 플래폼의 더 나은 지원
  Apache 2.0는 BeOS, OS/2, 윈도우즈와 같은 비유닉스 플래폼에서 더 빠르고 안정화되었다. 이제 아파치는 이들 플래폼에서 버그가 많고 성능이 느렸던 POSIX 호환층 대신 자체 API로 구현된 플래폼 특유의 multi-processing module (MPM)과 Apache Portable Runtime (APR)으로 구현된다.
새로운 아파치 API
  모듈 API가 2.0에서 상당히 변했다. 1.3의 많은 모듈 순서와 우선순위 문제가 사라졌다. 2.0은 이를 대부분 자동으로 하며, 모듈 순서는 이제 더 유연한 훅(hook) 단위로 정한다. 또, 아파치 서버 핵심을 수정하지 않고 새로운 모듈 기능을 제공하기위한 함수가 추가되었다.
IPv6 지원
  하위 Apache Portable Runtine 라이브러리가 IPv6를 지원하는 시스템에서 아파치는 기본적으로 IPv6 소켓을 기다린다. 또, Listen, NameVirtualHost, <VirtualHost> 지시어가 IPv6 숫자 주소 문자열을 지원한다. (예, "Listen [fe80::1]:8080").
필터링
  이제 아파치 모듈을 서버로 오고가는 내용 흐름에 대한 필터로 사용할 수 있다. 예를 들어 mod_include의 INCLUDES 필터를 사용하여 CGI 스크립트의 출력에서 Server Side Include 지시어를 파싱할 수 있다.
다국어 오류 응답
  브라우저로 보내는 오류 응답 메세지가 이제 SSI 문서를 사용하여 다국어로 제공된다. 관리자가 일관된 외양을 위해 이 문서를 수정할 수 있다.
간단해진 설정
  혼란을 주던 많은 지시어들이 간단해졌다. 자주 혼란을 주던 Port와 BindAddress 지시어는 없어지고 IP 주소 바인딩에 Listen 지시어만이 사용된다. ServerName 지시어는 리다이렉션과 가상호스트 인식을 위해서만 서버명과 포트를 지정한다.
Windows NT 유니코드 자체 지원
  Windows NT에서 Apache 2.0은 이제 모든 파일명 인코딩에 utf-8을 사용한다. 이는 하위 유니코드 파일시스템에 직접 전달되어, Windows 2000과 Windows XP를 포함한 모든 Windows NT기반 시스템에 다국어 지원을 제공한다. 이 기능은 Windows 95, 98, ME에는 지원되지않고, 파일시스템 접근에 전과 같이 시스템의 지역 코드페이지를 사용한다.

## 모듈에서 나아진 점:

mod_ssl
  Apache 2.0에서 새로 추가되었다. 이 모듈은 OpenSSL이 제공하는 SSL/TLS 암호화 프로토콜의 인테페이스다.
mod_dav
  Apache 2.0에서 새로 추가되었다. 이 모듈은 웹 내용을 올리고 유지하기위한 HTTP Distributed Authoring and Versioning (DAV) 명세를 구현한다.
mod_auth_digest
  공유메모리를 사용하여 프로세스간 세션 캐싱을 지원한다.
mod_charset_lite
  Apache 2.0에서 새로 추가되었다. 이 실험적인 모듈은 문자셋 변환과 재작성 기능을 제공한다.
mod_file_cache
  Apache 2.0에서 새로 추가되었다. 이 모듈은 Apache 1.3의 mod_mmap_static 기능에 더 나은 캐쉬 기능을 추가했다.
mod_headers
  이 모듈은 Apache 2.0에서 더 유연해졌다. 이제 mod_proxy가 사용하는 요청 헤더를 수정할 수 있고, 경우에 따라서 응답 헤더를 설정할 수도 있다.
mod_proxy
  이 프록시 모듈은 새로운 필터 구조를 이용하고 더 믿을만한 HTTP/1.1 프록시를 구현하기위해 완전히 재작성되었다. 추가로 새로운 <Proxy> 설정 섹션은 프록시 설정을 더 쉽게 (그리고 내부적으로 더 빠르게) 만든다. 과거 <Directory "proxy:..."> 설정은 이제 지원하지 않는다. 모듈은 proxy_connect, proxy_ftp, proxy_http와 같이 지원하는 프로토콜 별로 나눠졌다.
mod_negotiation
  새로운 ForceLanguagePriority 지시어는 클라이언트가 NOT ACCEPTABLE이나 MULTIPLE CHOICES 응답 대신 모든 경우 한 문서를 받는 것을 보장한다. 추가로 협상 알고리즘과 MultiViews 알고리즘이 더 일관된 결과를 내도록 수정되었고, 문서 내용을 포함할 수 있는 새로운 형식의 type map이 추가되었다.
mod_autoindex
  자동으로 생성된 디렉토리 목록이 이제 더 깔끔한 형식을 위해 HTML 표를 사용할 수 있게 되었고, 버전 정렬을 포함하여 정렬을 자세히 조절할 수 있고, 디렉토리 목록을 와일드카드로 걸러낼 수 있다.
mod_include
  새로운 지시어로 SSI 요소의 기본 시작 태그와 마침 태그를 수정할 수 있고, 오류와 시간형식 설정이 SSI 문서가 아닌 주 설정파일에서 가능하게 되었다. mod_include에서 (이제 Perl 정규표현식 문법에 기반한) 정규표현식 파싱과 그룹 결과를 $0 ... $9 변수로 얻을 수 있다.
mod_auth_dbm
  이제 AuthDBMType 지시어를 사용하여 여러 DBM류 데이터베이스를 지원한다.
mod_auth_db
  AuthDBMType 지시어가 있는 mod_auth_dbm이 기능을 대신하기때문에 없어졌다.

### Apache HTTP Server Version 2.0