AE United Arab Emirates
AF Afghanistan
AG Antigua and Barbuda
AI Anguilla
AL Albania
AM Armenia
AN Netherlands Antilles
AO Angola
AQ Antarctica
AR Argentina
AS American Samoa
AT Austria
AU Australia
AW Aruba
AZ Azerbaijan
BA Bosnia and Herzegovina
BB Barbados
BD Bangladesh
BE Belgium
BF Burkina Faso
BG Bulgaria
BH Bahrain
BI Burundi
BJ Benin
BM Bermuda
BN Brunei Darussalam
BO Bolivia
BR Brazil
BS Bahamas
BT Bhutan
BV Bouvet Island
BW Botswana
BY Belarus
BZ Belize
CA Canada
CC Cocos (Keeling) Islands
CF Central African Republic
CG Congo
CH Switzerland
CI Cote D'Ivoire (Ivory Coast)
CK Cook Islands
CL Chile
CM Cameroon
CN China
CO Colombia
CR Costa Rica
CS Czechoslovakia (former)
CU Cuba
CV Cape Verde
CX Christmas Island
CY Cyprus
CZ Czech Republic
DE Germany
DJ Djibouti
DK Denmark
DM Dominica
DO Dominican Republic
DZ Algeria
EC Ecuador
EE Estonia
EG Egypt
EH Western Sahara
ER Eritrea
ES Spain
ET Ethiopia
FI Finland
FJ Fiji
FK Falkland Islands (Malvinas)
FM Micronesia
FO Faroe Islands
FR France
FX France, Metropolitan
GA Gabon
GB Great Britain (UK)
GD Grenada
GE Georgia
GF French Guiana
GH Ghana
GI Gibraltar
GL Greenland
GM Gambia
GN Guinea
GP Guadeloupe
GQ Equatorial Guinea
GR Greece
GS S. Georgia and S. Sandwich Isls.
GT Guatemala
GU Guam
GW Guinea-Bissau
GY Guyana
HK Hong Kong
HM Heard and McDonald Islands
HN Honduras
HR Croatia (Hrvatska)
HT Haiti
HU Hungary
ID Indonesia
IE Ireland
IL Israel
IN India
IO British Indian Ocean Territory
IQ Iraq
IR Iran
IS Iceland
IT Italy
JM Jamaica
JO Jordan
JP Japan
KE Kenya
KG Kyrgyzstan
KH Cambodia
KI Kiribati
KM Comoros
KN Saint Kitts and Nevis
KP Korea (North)
KR Korea (South)
KW Kuwait
KY Cayman Islands
KZ Kazakhstan
LA Laos
LB Lebanon
LC Saint Lucia
LI Liechtenstein
LK Sri Lanka
LR Liberia
LS Lesotho
LT Lithuania
LU Luxembourg
LV Latvia
LY Libya
MA Morocco
MC Monaco
MD Moldova
MG Madagascar
MH Marshall Islands
MK Macedonia
ML Mali
MM Myanmar
MN Mongolia
MO Macau
MP Northern Mariana Islands
MQ Martinique
MR Mauritania
MS Montserrat
MT Malta
MU Mauritius
MV Maldives
MW Malawi
MX Mexico
MY Malaysia
MZ Mozambique
NA Namibia
NC New Caledonia
NE Niger
NF Norfolk Island
NG Nigeria
NI Nicaragua
NL Netherlands
NO Norway
NP Nepal
NR Nauru
NT Neutral Zone
NU Niue
NZ New Zealand (Aotearoa)
OM Oman
PA Panama
PE Peru
PF French Polynesia
PG Papua New Guinea
PH Philippines
PK Pakistan
PL Poland
PM St. Pierre and Miquelon
PN Pitcairn
PR Puerto Rico
PT Portugal
PW Palau
PY Paraguay
QA Qatar
RE Reunion
RO Romania
RU Russian Federation
RW Rwanda
SA Saudi Arabia
Sb Solomon Islands
SC Seychelles
SD Sudan
SE Sweden
SG Singapore
SH St. Helena
SI Slovenia
SJ Svalbard and Jan Mayen Islands
SK Slovak Republic
SL Sierra Leone
SM San Marino
SN Senegal
SO Somalia
SR Suriname
ST Sao Tome and Principe
SU USSR (former)
SV El Salvador
SY Syria
SZ Swaziland
TC Turks and Caicos Islands
TD Chad
TF French Southern Territories
TG Togo
TH Thailand
TJ Tajikistan
TK Tokelau
TM Turkmenistan
TN Tunisia
TO Tonga
TP East Timor
TR Turkey
TT Trinidad and Tobago
TV Tuvalu
TW Taiwan
TZ Tanzania
UA Ukraine
UG Uganda
UK United Kingdom
UM US Minor Outlying Islands
US United States
UY Uruguay
UZ Uzbekistan
VA Vatican City State (Holy See)
VC Saint Vincent and the Grenadines
VE Venezuela
VG Virgin Islands (British)
VI Virgin Islands (U.S.)
VN Viet Nam
VU Vanuatu
WF Wallis and Futuna Islands
WS Samoa
YE Yemen
YT Mayotte
YU Yugoslavia
ZA South Africa
ZM Zambia
ZR Zaire
ZW Zimbabwe
COM US Commercial
EDU US Educational
GOV US Government
INT International
MIL US Military
NET Network
ORG Non-Profit Organization
ARPA Old style Arpanet
NATO Nato field
/**
* @ 설명 : 현재 요청(Request)을 나타내는 구조체.
*/
struct request_rec {
/** 풀과 관련된 요청*/
apr_pool_t *pool;
/** 연결된 클라이언트. */
conn_rec *connection;
/** 요청에 대한 가상 호스트 */
server_rec *server;
/** 다음 요청을 가리키는
포인터 더블 링크드 리스트*/
request_rec *next;
/**
이전 요청을 가리키닌 포인터 더블 링크드 리스트*/
request_rec *prev;
/** 만약 서브 요청이라면, 메인 요청를 가리킴.
* (http_request.h을 보라.) */
request_rec *main;
/* 현재 요청에 대한 정보를 제공...we begin with stuff that
only
* protocol.c should ever touch...
*/
/** 요청의 첫번째 줄. */
char *the_request;
/** HTTP/0.9, "simple" request (e.g. GET /foo\n w/no headers)
*/
int assbackwards;
/** 프록시 요청 (calculated
during post_read_request/translate_name)
* 사용되는 변수들 possible values PROXYREQ_NONE, PROXYREQ_PROXY,
* PROXYREQ_REVERSE, PROXYREQ_RESPONSE
*/
int proxyreq;
/** HEAD 요청, GET의 반대(?) */
int header_only;
/** 우리에게 주어진 프로토콜 문자열
또는 HTTP/0.9 */
char *protocol;
/** 프로토콜
버전을 나타내는 번호; 1.1 = 1001 */
int proto_num;
/** 호스트, 전체 URI 나 HOST 가 설정됨. */
const char *hostname;
/** 요청이 시작된
시간. */
apr_time_t request_time;
/** 만약에
script 가 설정되어 있으면. 상태줄*/
const char *status_line;
/** 상태줄*/
int status;
/*
2개의 요청 메소드; 또한 프로토콜과 다른것..protocol.c 를 봐라, 하지만 수정은 하지
말고
* protocol.c 를 봐라, 하지만 수정은 하지 말고
*/
/** 요청 메소드 이름
(GET, HEAD, POST, 등등) */
const char *method;
/** M_GET, M_POST, etc. */
int method_number;
/**
* allowed는 비트벡터로 허용가능한 메소드를 나타냄
* ('allowed' is a bitvector of the allowed methods.)
*
* A handler must ensure
that the request method is one that
* it
is capable of handling. Generally modules should DECLINE
*
any request methods they do not handle. Prior to aborting the
* handler like this the handler should set r->allowed
to the list
* of methods that it is
willing to handle. This bitvector is used
* to
construct the "Allow:" header required for OPTIONS requests,
*
and HTTP_METHOD_NOT_ALLOWED and HTTP_NOT_IMPLEMENTED status codes.
*
* Since the default_handler deals with OPTIONS, all modules can
* usually decline to deal with OPTIONS. TRACE is always
allowed,
* modules don't need to set it explicitly.
*
* Since the default_handler will always
handle a GET, a
* module which does *not*
implement GET should probably return
* HTTP_METHOD_NOT_ALLOWED. Unfortunately this
means that a Script GET
* handler can't be
installed by mod_actions.
*/
apr_int64_t allowed;
/** 확장된 메소드들의 배열 Array of extension methods */
apr_array_header_t *allowed_xmethods;
/** 허용된 메소드들의 리스트 */
ap_method_list_t *allowed_methods;
/** body 안의
스트림 바이트수 byte count in stream is for body */
apr_off_t sent_bodyct;
/** body 바이트 카운트를 쉽게 접근
body byte count, for easy access */
apr_off_t bytes_sent;
/** 요청 리소스가 마지막으로 수정된 시간.*/
apr_time_t
mtime;
/* HTTP/1.1 connection-level features */
/** sending chunked transfer-coding */
int chunked;
/** 범위: 헤더*/
const char *range;
/** 진짜 컨텐츠의 길이 */
apr_off_t clength;
/** 요청 body에서 읽고 남은 바이트 */
apr_off_t
remaining;
/** 요청 body 에서 읽은 바이트(?) Number of
bytes that have been read from the request body */
apr_off_t read_length;
/** 요청 body를 읽기 위한 메소드.
Method for reading the request body
* (eg. REQUEST_CHUNKED_ERROR,
REQUEST_NO_BODY,
* REQUEST_CHUNKED_DECHUNK, etc...) */
int read_body;
/** reading chunked transfer-coding */
int read_chunked;
/** 100개의 응답을 클라이언트가 기다린다? is client waiting for
a 100 response? */
unsigned expecting_100;
/* MIME header environments, in and out. Also, an array containing
* environment variables to be passed to subprocesses, so
people can
* write modules to add to that
environment.
*
* The difference between headers_out
and err_headers_out is that the
* latter are printed
even on error, and persist across internal redirects
*
(so the headers printed for ErrorDocument handlers will have them).
*
* The 'notes' apr_table_t is for notes
from one module to another, with no
* other
set purpose in mind...
*/
/**
요청안에 있는 MIME 헤더 환경변수 */
apr_table_t *headers_in;
/** 응답 안에 있는 MIME 헤더 환경변수 */
apr_table_t *headers_out;
/** MIME header environment for the response,
printed even on errors and
* persist across internal
redirects */
apr_table_t *err_headers_out;
/** 배열의 환경변수를
하위 프로세스에 사용 할 수 있는지. */
apr_table_t *subprocess_env;
/** Notes from one module to another */
apr_table_t *notes;
/* content_type, handler, content_encoding, and
all content_languages
* MUST be lowercased strings. They
may be pointers to static strings;
* they should
not be modified in place.
*/
/**
현재 요청의 cotent_type*/
const char *content_type; /* Break these
out --- we dispatch on 'em */
/** 핸들러
함수를 호출 하는데 필요한 핸들러 문자열 */
const char
*handler; /* What we *really* dispatch on */
/** 어떤 방식으로 우리의 데이터가 인코딩 되었나. */
const
char *content_encoding;
/** Array of strings representing the content
languages */
apr_array_header_t *content_languages;
/** variant
list validator (if negotiated) */
char *vlist_validator;
/** 만약에 인증을 통과했다면, 이 변수로 청크를 만든
사용자명을 설정/가져오기 가능 */
char *user;
/** 만약에 인증을 통과 했다면, 이 변수로 인증 방법을 설정/가져오기 가능
*/
char *ap_auth_type;
/** 캐쉬 되지
않는 응답. */
int no_cache;
/** 이
응답은 로컬의 복사본이 아니라는 걸 알림. */
int no_local_copy;
/* 어떤 요청에 의해서 설정 되는지 (either directly,
or via include
* or content-negotiation mapping).
*/
/** The URI without any parsing performed
*/
char *unparsed_uri;
/** URI 의
경로 부분 */
char *uri;
/** 요청에
대한 디스크 위의 파일명The filename on disk corresponding to this response
*/
char *filename;
/* XXX: What does
this mean? Please define "canonicalize" -aaron */
/** The
true filename, we canonicalize r->filename if these don't match */
char *canonical_filename;
/** 요청 안에서 추출한 PATH_INFO */
char *path_info;
/** 요청 안에서 추출한 QUERY_ARGS
*/
char *args;
/** 파일을 찾을
수 없다면, finfo.protection 를 0으로 설정 */
apr_finfo_t finfo;
/** URI 의 구성요소를 포함하는 구조체 */
apr_uri_t parsed_uri;
/**
* Flag for
the handler to accept or reject path_info on
* the current request. All modules should respect the
* AP_REQ_ACCEPT_PATH_INFO and AP_REQ_REJECT_PATH_INFO
* values, while AP_REQ_DEFAULT_PATH_INFO
indicates they
* may follow existing conventions. This is
set to the
* user's preference upon HOOK_VERY_FIRST of
the fixups.
*/
int used_path_info;
/* Various other config info which may change with .htaccess
files
* These are config vectors, with one void* pointer for each module
* (the thing pointed to being the module's
business).
*/
/** 설정 파일에서 설정하는
"Options " */
struct ap_conf_vector_t *per_dir_config;
/**
현재 요청을 기록(?) */
struct ap_conf_vector_t *request_config;
/**
* A linked list of the .htaccess
configuration directives
* accessed by this request.
* N.B. always add to the head of the list, _never_
to the end.
* that way, a sub request's
list can (temporarily) point to a parent's list
*/
const struct htaccess_result *htaccess;
/** A
list of output filters to be used for this request */
struct ap_filter_t *output_filters;
/** A list of
input filters to be used for this request */
struct ap_filter_t *input_filters;
/** A list of protocol
level output filters to be used for this
*
request */
struct ap_filter_t *proto_output_filters;
/** A
list of protocol level input filters to be used for this
* request */
struct ap_filter_t *proto_input_filters;
/** A flag to determine if the eos bucket
has been sent yet */
int eos_sent;
/*
Things placed at the end of the record to avoid breaking
binary
* compatibility. It would be nice to remember to reorder
the entire
* record to improve 64bit alignment the next time
we need to break
* binary compatibility for some other reason.
*/
};
=========================================================================
/**
* @설명
하나의 프로세스를 나타내는 구조
*/
struct
process_rec {
/** 전역 pool. 정상적으로 종료 될 때
클리어됨. */
apr_pool_t *pool;
/** 설정 pool.
재시작 될 때 마다 초기화 됨.*/
apr_pool_t *pconf;
/** 커맨드 라인으로 프로그램에 전달된 인자의 갯수 */
int argc;
/** 커맨드 라인에 입력한 인자 */
const char * const *argv;
/** 실행 프로그램으로
사용될 프로그램 이름 */
const char *short_name;
};
=========================================================================
/**
* @설명 연결되는
클라이언트를 관리할 구조체 (내일 번역 힘들어)
*/
struct conn_rec {
/** Pool associated with this connection */
apr_pool_t *pool;
/** Physical vhost this conn came in
on */
server_rec *base_server;
/** used by
http_vhost.c */
void *vhost_lookup_data;
/* Information
about the connection itself */
/** local address */
apr_sockaddr_t *local_addr;
/** remote address */
apr_sockaddr_t *remote_addr;
/** Client's IP address */
char *remote_ip;
/** Client's DNS name, if
known. NULL if DNS hasn't been checked,
* ""
if it has and no address was found. N.B. Only access
this though
* get_remote_host() */
char *remote_host;
/** Only ever set if doing rfc1413 lookups. N.B.
Only access this through
* get_remote_logname() */
char *remote_logname;
/** Are we still talking? */
unsigned aborted:1;
/** Are we going
to keep the connection alive for another request?
*
@see ap_conn_keepalive_e */
ap_conn_keepalive_e keepalive;
/**
have we done double-reverse DNS? -1 yes/failure, 0 not yet,
* 1 yes/success */
signed int double_reverse:2;
/** How many times have we used it?
*/
int keepalives;
/** server IP address
*/
char *local_ip;
/** used for ap_get_server_name
when UseCanonicalName is set to DNS
* (ignores setting
of HostnameLookups) */
char *local_host;
/**
ID of this connection; unique at any point in time */
long id;
/** Config vector containing
pointers to connections per-server
* config structures. */
struct ap_conf_vector_t *conn_config;
/** Notes on *this* connection:
send note from one module to
* another. must
remain valid for all requests on this conn */
apr_table_t *notes;
/** A list of input filters to
be used for this connection */
struct ap_filter_t *input_filters;
/** A list of output filters to be used
for this connection */
struct ap_filter_t *output_filters;
/** handle to scoreboard information for this connection */
void *sbh;
/** The bucket allocator to use for
all bucket/brigade creations */
struct apr_bucket_alloc_t *bucket_alloc;
/** The current state of this connection */
conn_state_t
*cs;
/** Is there data pending in the input
filters? */
int data_in_input_filters;
/** Are there any filters that clogg/buffer the input stream,
breaking
* the event mpm.
*/
int clogging_input_filters;
};
=========================================================================
/**
* Module structures. Just about everything is dispatched through
*
these, directly or indirectly (through the command and handler
* tables).
*/
typedef struct module_struct module;
struct module_struct {
/**
API version, *not* module version; check that module is
* compatible with this version of the server.
*/
int version;
/** API minor version.
Provides API feature milestones. Not checked
* during
module init */
int minor_version;
/** Index
to this modules structures in config vectors. */
int
module_index;
/** The name of the module's C
file */
const char *name;
/** The
handle for the DSO. Internal use only */
void
*dynamic_load_handle;
/** A pointer to the next module
in the list
* @defvar module_struct *next */
struct module_struct *next;
/** Magic Cookie to
identify a module structure; It's mainly
* important
for the DSO facility (see also mod_so). */
unsigned
long magic;
/** Function to allow MPMs to
re-write command line arguments. This
* hook is only
available to MPMs.
* @param The process that the
server is running in.
*/
void (*rewrite_args)
(process_rec *process);
/** Function to allow all modules to
create per directory configuration
* structures.
*
@param p The pool to use for all allocations.
* @param dir The directory currently being processed.
*
@return The per-directory structure created
*/
void
*(*create_dir_config) (apr_pool_t *p, char *dir);
/** Function to allow
all modules to merge the per directory configuration
*
structures for two directories.
* @param p The pool
to use for all allocations.
* @param base_conf The
directory structure created for the parent directory.
* @param
new_conf The directory structure currently being processed.
* @return
The new per-directory structure created
*/
void
*(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf);
/** Function
to allow all modules to create per server configuration
* structures.
* @param p The pool to use
for all allocations.
* @param s The server currently
being processed.
* @return The per-server structure created
*/
void *(*create_server_config) (apr_pool_t *p, server_rec *s);
/** Function to allow all modules to merge the per
server configuration
* structures for two servers.
* @param p The pool to use for all allocations.
* @param base_conf The directory structure created for the parent
directory.
* @param new_conf The directory structure currently being
processed.
* @return The new per-directory structure created
*/
void *(*merge_server_config) (apr_pool_t *p, void *base_conf,
void *new_conf);
/** A command_rec table that describes all of the directives this
module
* defines. */
const command_rec *cmds;
/** A hook to allow modules to hook
other points in the request processing.
* In this
function, modules should call the ap_hook_*() functions to
*
register an interest in a specific step in processing the current
* request.
* @param p the pool
to use for all allocations
*/
void
(*register_hooks) (apr_pool_t *p);
};
파일들은 제끼고 디렉토리만!!!!!!!!!!!!!!!
drwxr-xr-x 11 501 501 4096 Sep
24 08:29 .
drwxr-xr-x 3 root root 4096 Nov 30
13:50 ..
drwxr-xr-x 5 501 501 4096 Sep 24 08:29
build : 제껴도 될 듯?
drwxr-xr-x 9 501 501 4096
Sep 24 08:29 docs : 영어 제껴
drwxr-xr-x 2 501 501
4096 Sep 24 08:29 include : 소스 코드 내에서
사용 한 함수들의 프로토타입을 정의해 놓은 디렉토리. 아파치 내에서 사용 될
define, 구조체 정보들도 포함되어 있다.
drwxr-xr-x 20 501
501 4096 Sep 24 08:29 modules : 아파치 내에서
사용 하는 기본 modules, 음 vhost 나 ssl 또는 rewrite modules
가 여기에 있다. 데몬 대충 분석 후, 봐야 할 곳
drwxr-xr-x 9 501 501 4096 Sep 24 08:28
os : 이것은 각 OS에서 apache 를 사용 할 때,
데몬으로 실행하는 코드들이 들어 있음. unix 부분만 분석 예정.
drwxr-xr-x
3 501 501 4096 Sep 24 08:29 server : 아파치 데몬을 구성하고 있는 메인 코드라 얘기할 수 있을 거 같음.
drwxr-xr-x 5 501 501 4096 Sep 24 08:29
srclib : 이건 또 뭐지/../
drwxr-xr-x 4 501 501 4096
Sep 24 08:29 support : htpasswd 나 ab 같은 httpd
에 필요한 지원 유틸리티
drwxr-xr-x 2 501 501 4096
Sep 24 08:29 test : 넌 뭐야
위에 처럼 분석하기 짜증나서, LAYOUT 파일을 참조했다.
The httpd-2.2
Source Tree LAYOUT
--------------------------------
./ .................... Top-Level httpd-2.2 Root Directory
ABOUT_APACHE .......... Overview of the Apache HTTP Server
LAYOUT ................ This file describing the source tree
README ................
Overview of this distribution
STATUS ................ Current project activity and
commentary
build/ ................ Supporting tools for buildconf/configure
win32/ ................ Supporting tools for Win32 MSVC builds
docs/ ................. Documentation and Examples
cgi-examples/ .........
conf/ .................
docroot/ ..............
error/ ................
include/ ..............
icons/ ................
small/ ................
man/ ..................
manual/ ...............
developer/ ............
faq/ ..................
howto/ ................
images/ ...............
misc/ .................
mod/ ..................
platform/ .............
programs/ .............
search/ ...............
ssl/ ..................
style/ ................
vhosts/ ...............
include/ ................
modules/ ................ Manditory and Add-In Apache stock modules
aaa/ ....................
arch/ ...................
netware/ ................
win32/ ..................
cache/ ..................
dav/ ....................
fs/ .....................
main/ ...................
echo/ ...................
experimental/ ...........
filters/ ................
generators/ .............
http/ ................... HTTP: protocol module
loggers/ ................
mappers/ ................
metadata/ ...............
pop3/ ...................
private/ ................
proxy/ ..................
ssl/ .................... HTTPS: SSL v2/v3 and TLS v1 protocol module
README .................. Overview of mod_ssl
README.dsov.fig ......... Overview diagram of mod_ssl design
README.dsov.ps .......... Overview diagram of mod_ssl design
Makefile.in
............. Makefile template for Unix platform
config.m4 ............... Autoconf
stub for the Apache config mechanism
mod_ssl.c ............... main
source file containing API structures
mod_ssl.h ............... common header
file of mod_ssl
ssl_engine_config.c ..... module configuration handling
ssl_engine_dh.c ......... DSA/DH support
ssl_engine_init.c ....... module initialization
ssl_engine_io.c ......... I/O support
ssl_engine_kernel.c ..... SSL
engine kernel
ssl_engine_log.c ........ logfile support
ssl_engine_mutex.c
...... mutual exclusion support
ssl_engine_pphrase.c .... pass-phrase handling
ssl_engine_rand.c ....... PRNG support
ssl_engine_vars.c ....... Variable Expansion
support
ssl_expr.c .............. expression handling main source
ssl_expr.h .............. expression handling common header
ssl_expr_scan.c ......... expression
scanner automaton (pre-generated)
ssl_expr_scan.l ......... expression scanner source
ssl_expr_parse.c ........ expression parser automaton (pre-generated)
ssl_expr_parse.h ........
expression parser header (pre-generated)
ssl_expr_parse.y ........ expression
parser source
ssl_expr_eval.c ......... expression machine evaluation
ssl_scache.c ............ session cache abstraction layer
ssl_scache_dbm.c ........ session
cache via DBM file
ssl_scache_shmcb.c ...... session cache via
shared memory cyclic buffer
ssl_scache_dc.c ......... session cache offloading
via 'distcache'
ssl_util.c .............. utility functions
ssl_util_ssl.c
.......... the OpenSSL companion source
ssl_util_ssl.h .......... the OpenSSL
companion header
ssl_util_table.c ........ the hash table library source
ssl_util_table.h ........ the hash table library header
test/ ................... not distributed with released source tarballs
os/ .....................
beos/ ...................
bs2000/ .................
netware/ ................
os2/ ....................
tpf/ ....................
samples/ ................
unix/ ...................
win32/ ..................
server/ .................
mpm/ ....................
beos/ ...................
experimental/ ...........
event/ .................
mpmt_os2/ ...............
netware/ ................
prefork/ ................
winnt/ ..................
worker/ .................
srclib/ ................... Additional Libraries
apr/ ...................... SEE srclib/apr/LAYOUT
apr-util/ ................. SEE srclib/apr/LAYOUT
pcre/ .....................
doc/ ......................
testdata/ .................
support/ ................ Sources for Support Binaries
SHA1/ .................. Ancient SHA1 password conversion utilities
win32/ ................. Win32-only Support Applications
test/ ................... not distributed with released source tarballs
일단 server 디렉토리 분석 후 modules 디렉토리(SSL)로 이동.
음..그리고, http 프로토콜 부분도 봐야겠군.
많지만 일단 server 디렉토리의 main.c!
LAYOUT






