a. $B%W%m%0%i%`L>(B    KL1HTTPD
b. $B=hM}$N35MW(B      HTTP (WWW $B$N%W%m%H%3%k(B) $B$N%j%/%(%9%H$r2r@O$7!"(B
                   $B1~Ez$9$k!#(Bapache, CERN $B$J$I$NBeI=E*$J(B HTTP $B%5!<%P$N(B
                   $BBeMQ$H$7$F;H$($k$h$&@_7W$7$F$"$k!#(B
c. $B=hM}$KMW$9$k<B9T;~4V(B
                   HTTP $B$N%j%/%(%9%H$N<oN`$K$h$k$,!"$*$*$`$MC;$$(B($B?tIC(B)

$B!|35MW(B

  KL1 $B$G=q$+$l$?(B HTTP $B%5!<%P(B $B$G$9!#(B
  $B%$%s%i%$%s#C%3!<%I$O0l@Z;H$o$J$$J}?K$r$H$C$?$N$G!"IT40A4$J$H$3$m$b(B
  $B$$$m$$$m$H$"$j$^$9$,!"(B apache $B$d(B CERN $B$N%5!<%P$N%P%C%/%"%C%W$0$i$$$K$O(B
  $B;H$($k$H;W$$$^$9!#(B

$B!|%3%s%Q%$%kJ}K!(B

config.kl1 $B$r4D6-$K9g$o$;$FE,Ev$KJT=8$7$?8e!"(B

      make

$B$r<B9T$9$l$P(B kl1httpd $B$H$$$&L>$N%*%V%8%'%/%H%3!<%I$,@8@.$5$l$k$O$:$G$9!#(B
config.kl1 $B$NJT=8J}K!$N>\:Y$J$I$O(B compile.doc $B$r;2>H$7$F2<$5$$!#(B

$B!|%$%s%9%H!<%kJ}K!(B

$B$^$:%5!<%P!<$N%k!<%H%G%#%l%/%H%j$rE,Ev$K7h$a$F!"%3%s%U%#%.%e%l!<%7%g%s(B
$B%U%!%$%k$K=q$-9~$`$+!"M=$a(B config.kl1 $B$NCf$G;XDj$7$F$*$/$+$7$^$9!#$3$l$r(B
$B0J2<(B $B%5!<%P!<%k!<%H(B $B$H8F$S$^$9!#(B
kl1httpd $B$O(B apache $B$J$I$NB>$N%5!<%P$HF1MM$J%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$r(B
$B5/F0;~$KFI$_9~$_$^$9!#$3$N%U%!%$%k$O!"5/F0;~$N(B -f $B%*%W%7%g%s$G;XDj$7$J$1$l$P!"(B
$B%5!<%P!<%k!<%H(B/conf/httpd.conf $B$K$"$k$H8+$J$5$l$^$9!#$I$A$i$K$b$J$$>l9g$O(B
config.kl1 $B$G@_Dj$7$?(B DefaultServerRoot $B$N2<$N(B conf/httpd.conf $B$K$"$k$H(B
$B8+$J$5$l$^$9!#$$$:$l$K$;$h$3$N%U%!%$%k$OI,?\$G$9!#%G%U%)%k%H@_Dj$N(B
$B%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$,$3$N(B README $B$H0l=o$K%P%s%I%k$5$l$F$$$k(B
$B$O$:$G$9$N$G!"$=$l$rE,Ev$KJT=8$7$F(B($B8e=R$N%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k(B
$B$N9`$r;2>H(B) $BE,Ev$J=j(B ($B%5!<%P!<%k!<%H(B/conf/httpd.conf $B$+!"(B-f $B$G;XDj$7$d$9$$(B
$B$H$3$m(B) $B$KCV$$$F$*$-$^$9!#(B
$B<!$K!"%5!<%P!<%k!<%H(B/conf/ $B$N2<$K(B mime.types $B$r%3%T!<$7$^$9!#$3$l$b$3$N(B
README $B$H0l=o$K%P%s%I%k$5$l$F$$$k$O$:$G$9!#$3$3$K$J$$%?%$%W$N(B
$B%j%=!<%9$r8x3+$7$?$1$l$P!"$3$N%U%!%$%kCf$K(B

content-type     $B$=$N%?%$%W$N%U%!%$%k$N;}$D3HD%;R(B

$B$H$$$&=q<0$G@_Dj$7$^$9!#(B
$B$"$H$O!"(Bkl1httpd $B<+?H$rE,Ev$J>l=j$KF~$l$F$*$-$^$9!#(B

$B!|<B9TJ}K!(B

$B5/F0;~$N%*%W%7%g%s$O(B

   kl1httpd [KLIC runtime options] [-- [-d ServerRoot] [-f ConfigFile]]

$B$H$J$C$F$$$^$9!#IaDL$N%5!<%P!<$H0c$$!"C<Kv$N@Z$jN%$7$J$I$O$7$J$$$N$G(B
$B$=$NE@Cm0U$7$F2<$5$$!#7Y9p$J$I$OI8=`=PNO$K=P$^$9$,!"$"$^$jLr$KN)$D(B
$B>pJs$O=P$7$^$;$s!#(B

$B!|Cm0UE@!&LdBjE@(B

$B$3$N%5!<%P$O(B KL1 $B8@8l$N$_$G=q$+$l$F$$$k$N$G!"$$$/$D$+$N@)8B!&$$$/$D$+(B
$BCm0U$7$J$1$l$P$J$i$J$$E@$,$"$j$^$9!#8=:_$o$+$C$F$$$kHO0O$G$O(B

  $B!{Bg$-$J%U%!%$%k$rAw?.Cf$K@\B3$,@Z$l$k$H!"%5!<%P$,Mn$A$k!#(B

    $BM}M3(B : $BAPJ}8~$X$NDL?.$r$7$F$$$k%=%1%C%H$,!"M-8z$+H]$+$NH=Dj$,(B
           $B8=:_$N(B KLIC $B$G$OH=CG$7$K$/$$$?$a!#$&$^$$2r7hJ}K!$O(B
           $B$^$@;W$$$D$$$F$$$J$$!#(B(select() $B$G$bKd$a9~$`$7$+$J$$$N$+!D(B)

  $B!{F1;~$K@\B3$G$-$k%/%i%$%"%s%H$N?t$O(B 15 $B$K@)8B$5$l$F$$$k!#(B

    $BM}M3(B : $B%U%!%$%k%G%#%9%/%j%W%?$,B-$j$J$/$J$k$?$a!#(Bfork() $B$7$FJ#?t$N(B
           $B%W%m%;%9$r:n$C$F$7$N$0$N$,>oF;$@$,!"(BKLIC $B$@$H(B accept() $B$N(B
           $BF14|$,Fq$7$$!#(B($B$d$l$P$G$-$J$$$3$H$O$J$$$@$m$&$,!#(B)

  $B!{(BIf-Modified-Since $B%X%C%@$,$"$C$F$bL5;k$7$F$7$^$&!#(B

    $BM}M3(B : $B8=:_$N(B KLIC $B$G$O%U%!%$%k$N=$@5;~9o$rD>@\F@$kJ}K!$,$J$$$?$a!#(B

  $B!{(BCGI $B$KBP1~$7$F$$$J$$!#(B

    $BM}M3(B : $B;R%W%m%;%9$N=PNO$r<h$j9~$a$J$$$?$a(B

  $B!{(B ~user $B$N2r@O$,$$$$2C8:(B

    $BM}M3(B : getpwent $B$J$I$NN`$N=R8l$,$J$$$?$a!#(B
           (NIS $B$N%i%$%V%i%j$rD>@\=q$/$N$O$5$9$,$K!D!#(B)

$B!|$=$NB>L$<BAu$JItJ,(B

  $B!{%"%/%;%9%m%0%U%!%$%k$J$I$O@8@.$7$J$$!#(B

$B!|%;%-%e%j%F%#$NLdBj$K$D$$$F(B

$B$b$A$m$sCm0U$7$F$O$$$^$9!#8=>u$G$O(B CGI $B$bL5$$$N$GBg>fIW$@$m$&$H$O(B
$B;W$$$^$9$,!"40A4$@$H$NJ]>Z$O$G$-$^$;$s!#(B(apache $B$d(B CERN $B$@$C$F!D!#(B)
$B$h$C$F!"$3$N%W%m%0%i%`$r;H$C$F@8$8$?$$$+$J$k>c32$K$D$$$F$b!"(B
$B:n<T$O@UG$$OIi$$$^$;$s!#(B

---------------------- $B%W%m%0%i%`$K$D$$$F(B --------------------------
$B!|FbIt9=B$(B

$B%b%8%e!<%kL>(B      $BLr3d(B
main		$B%*%W%7%g%s$d%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$N2r@O$J$I(B
dispatch	$B%5!<%P!<$N%a%$%s%k!<%W!#?7$7$$@\B3$r<u$1$k$H(B server $B$r(B
		$B8F$S=P$9!#(B
server		$B%j%/%(%9%H$r2r@O$7!"JVEz$9$k(B
stdutil		$B3F<o%f!<%F%#%j%F%#E*$J%b%8%e!<%k!#(Bsprintf,sscanf $B$J$I!"(B
                ($BF1L>$N#C$N4X?t$KN`;w$N$b$N(B) $BJXMx$J=R8l$r4^$`!#(B
env		$BL>A0!"CM$NAH$rJ];}$9$k$?$a$N%G!<%?7?$r;J$k!#(B
sockio		$B%=%1%C%H$r;H$C$?F~=PNOMQ$N=R8l72!#$"$^$jM-MQ$G$O$J$$!#(B
ioutil		$BF~=PNO0lHLMQ$N=R8l72!#(B
date		Date $B%X%C%@$r:n$C$?$j!"2r@O$7$?$j$9$k$?$a$N=R8l72!#(B
		$B$"$^$j;H$o$l$F$$$J$$!#(B
config		$B%3%s%U%#%.%e%l!<%7%g%s>pJs!##C%W%m%0%i%`$K$h$/$"$k(B 
                config.h $B$KAjEv!#(B



-------------- $B%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$K$D$$$F(B --------------

apache $BEy$N%5!<%P!<$N%U%!%$%k$KHs>o$K$h$/;w$F$$$^$9$,!";XDj$G$-$k(B
$B>pJs$N<oN`$,$:$C$H>/$J$/!"$^$?$$$D$+FC<l$J%U%#!<%k%I$b$"$k$N$G!"(B
$B0lDL$j%U%#!<%k%IL>$H$=$N0UL#$r%j%9%H%"%C%W$7$F$*$-$^$9!#(B
$B$J$*!"%U%#!<%k%IL>$K$OBgJ8;z>.J8;z$N6hJL$O$"$j$^$;$s!#(B

Port		$B%]!<%HHV9f(B
ServerRoot	$B%5!<%P$N%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$J$I$rCV$$$F$*$/=j(B
DocumentRoot
UserHome
UserDir
	$B8x3+$5$l$k%U%!%$%k$O!"(B
             DocumentRoot $B$N2<$N%U%!%$%k72(B
                (http://host/xxx/yyy/zzz -> DocumentRoot/xxx/yyy/zzz)
	     UserHome/<USERNAME>/UserDir $B$N2<$N%U%!%$%k72(B
		(http://host/~xxx/yyy -> UserHome/xxx/UserDir/yyy)
        $B$N$$$:$l$+$G$"$k!#(BKLIC $B$G$O(B ~usernamr $B$rD>@\E83+$9$k$3$H$,(B
	$B$G$-$J$$$N$G!"$3$N4qL/$J@_DjJ}K!$r$H$k$3$H$K$J$C$?!#(B

MaxClients	$BF1;~$K@\B3$G$-$k%/%i%$%"%s%H$N:GBg?t(B ($B:#$N=j(B 1$B!A(B15 $B$N$_;XDj2D(B)
ServerHost	$B%5!<%P$NF0:n$7$F$$$k%[%9%H$NL>A0!#%3%s%U%#%.%e%l!<%7%g%s(B
		$B%U%!%$%k$+!"(Bconfig.kl1 $B$N$I$A$i$+$G;XDj$5$l$F$$$kI,MW$,(B
		$B$"$k!#(B($B%3%s%U%#%.%e%l!<%7%g%s%U%!%$%k$NJ}$,M%@h!#(B)
		$BI,$:@$3&Cf$+$i$o$+$kL>A0$K$7$F$*$/$3$H!#(B
		(http://<ServerName>/... $B$H$7$F;H$o$l$k$3$H$,$"$k!#(B)
DefaultContentType
		mime.types $B%U%!%$%k$+$i$O%U%!%$%k$N%?%$%W$,$o$+$i$J$+$C$?;~(B
		$B$I$N%U%!%$%k%?%$%W$H$7$FAw$k$+$N;XDj!#(B
		text/html $B$,IaDL$@$,!"(Btext/html ; charset=iso-2022-jp
		$B$J$I$H$7$F$b$h$$!#(B
ServerName	$BJVEzCf$K8=$l$k$3$N%5!<%P$N<oL>!#(B
		$B%;%-%e%j%F%#$r=EMW;k$9$k8+CO$+$i8+$l$P(B
		$B%3%a%s%H%"%&%H$7$F$*$$$?J}$,$$$$$@$m$&!#(B

-------------------------  $B$=$NB>(B  ------------------------------

$B!|:n@.$NF05!$J$I(B
  $BB??t$N%/%i%$%"%s%H$rF1;~$K;+$/$N$O(B KL1 $B$J$iF@0U$=$&$@$H;W$$:n$j$^$7$?!#(B
  $B3N$+$K=q$-$d$9$/$O$"$C$?$N$G$9$,!"$d$O$j%=%1%C%H$r;H$C$?%W%m%0%i%`$O(B
  $B#C$NJ}$,4h>f$K$G$-$k$h$&$G$9!#$G$-$k$@$1(B RFC1945 $B$K$"$k(B HTTP/1.0 $B$N(B
  $B>pJs$K1h$&$h$&$K$7$h$&$H;W$C$?$N$G$9$,!"Nc$($P(B

					       ....  Both clients and
   servers should be aware that either party may close the connection
   prematurely, due to user action, automated time-out, or program
   failure, and should handle such closing in a predictable fashion. In
   any case, the closing of the connection by either or both parties
   always terminates the current request, regardless of its status.

  $B$H$$$&$h$&$J=j$r$7$C$+$j$H$*$5$($k$3$H$O$G$-$^$;$s$G$7$?!#(B

  $B%$%s%i%$%s#C$r0l@Z;H$o$J$+$C$?$N$O!"(BKLIC $B$N%^%K%e%"%k$K!V0lHL%f!<%6$O(B
  $B;HMQ$7$J$$J}$,$$$$!W!V>-Mh$bF1$8%=!<%9$,F0$/$H$O8B$i$J$$!W$H=q$+$l$F$$$?(B
  $B$N$H!"(BKL1 $B$@$1$G$I$3$^$G$G$-$k$+3N$+$a$?$+$C$?$+$i$G$9!#$b$&>/$7(B
  KLIC $B$N%i%$%V%i%j$,$7$C$+$j$7$F$$$?$i!"$H$$$&5$J,$,$d$d;D$j$^$7$?$,!#(B
