\contentsline {chapter}{\numberline {1}{} CERN httpd 3.0 Guide for Prereleases}{1}
\contentsline {section}{\numberline {1.1}In This Guide...}{1}
\contentsline {section}{\numberline {1.2}About documents generated from hypertext}{1}
\contentsline {chapter}{\numberline {2}{} Installing CERN Server}{2}
\contentsline {section}{\numberline {2.1}Getting the Program}{2}
\contentsline {section}{\numberline {2.2}Configuration File}{2}
\contentsline {section}{\numberline {2.3}First Trying It Out In Verbose Mode}{3}
\contentsline {section}{\numberline {2.4}The Actual Installation of httpd}{3}
\contentsline {subsection}{\numberline {2.4.1}Stand-alone Installation}{3}
\contentsline {section}{\numberline {2.5}Registering Your Server}{4}
\contentsline {section}{\numberline {2.6}If It Doesn't Work...}{4}
\contentsline {section}{\numberline {2.7} {} Installing httpd Under inetd}{4}
\contentsline {subsection}{\numberline {2.7.1}Step 1: Install httpd Binary}{4}
\contentsline {subsection}{\numberline {2.7.2}Step 2: Add http Service to /etc/services}{4}
\contentsline {subsection}{\numberline {2.7.3}Step 3: Add a Line to /etc/inetd.conf}{4}
\contentsline {subsection}{\numberline {2.7.4}Step 4: Send HUP Signal to inetd }{5}
\contentsline {subsection}{\numberline {2.7.5}Test It!}{5}
\contentsline {subsection}{\numberline {2.7.6}{} Using NIS (Yellow Pages)}{5}
\contentsline {subsection}{\numberline {2.7.7}{} Adding a Service on the NeXT}{5}
\contentsline {section}{\numberline {2.8}{} Priviliged ports}{6}
\contentsline {subsection}{\numberline {2.8.1}Under Unix}{6}
\contentsline {subsection}{\numberline {2.8.2}Under VMS }{6}
\contentsline {section}{\numberline {2.9}{} Debugging httpd}{6}
\contentsline {subsection}{\numberline {2.9.1}Connection Refused}{6}
\contentsline {subsection}{\numberline {2.9.2}Cannot Connect To Information Server}{7}
\contentsline {subsection}{\numberline {2.9.3}Unable To Access Document}{7}
\contentsline {subsection}{\numberline {2.9.4}An Empty Document Is Displayed}{7}
\contentsline {subsection}{\numberline {2.9.5}Document Address Invalid Or Access Not Authorized...}{7}
\contentsline {subsection}{\numberline {2.9.6}Bad Output}{8}
\contentsline {subsection}{\numberline {2.9.7}{} Running Under Shell}{8}
\contentsline {subsubsection}{Debugging using Trace}{8}
\contentsline {subsubsection}{Even simpler}{9}
\contentsline {subsection}{\numberline {2.9.8}{} Telnetting to httpd}{9}
\contentsline {chapter}{\numberline {3}{} Command Line of CERN httpd}{10}
\contentsline {section}{\numberline {3.1}Options}{10}
\contentsline {subsection}{\numberline {3.1.1}Directory Browsing}{10}
\contentsline {subsection}{\numberline {3.1.2}README Feature}{10}
\contentsline {section}{\numberline {3.2}Examples}{11}
\contentsline {chapter}{\numberline {4}{} Configuration File of CERN httpd}{12}
\contentsline {section}{\numberline {4.1}Default Configuration File}{12}
\contentsline {section}{\numberline {4.2}Comments in Configuration File}{12}
\contentsline {section}{\numberline {4.3}Restarting the Server}{12}
\contentsline {section}{\numberline {4.4}Exhaustive List of Configuration Directives}{12}
\contentsline {section}{\numberline {4.5}{} General CERN httpd Configuration Directives}{15}
\contentsline {subsection}{\numberline {4.5.1}ServerRoot}{16}
\contentsline {subsubsection}{{} On Proxy Server}{16}
\contentsline {subsection}{\numberline {4.5.2}HostName}{17}
\contentsline {subsection}{\numberline {4.5.3}Default Port Setting}{17}
\contentsline {subsection}{\numberline {4.5.4}PidFile}{17}
\contentsline {subsubsection}{Example}{17}
\contentsline {subsection}{\numberline {4.5.5}Default User Id}{17}
\contentsline {subsection}{\numberline {4.5.6}Default Group Id}{17}
\contentsline {subsection}{\numberline {4.5.7}Enabling and Disabling HTTP Methods}{18}
\contentsline {subsubsection}{Examples}{18}
\contentsline {subsection}{\numberline {4.5.8}IdentityCheck}{18}
\contentsline {subsubsection}{{} WARNING {}}{18}
\contentsline {subsection}{\numberline {4.5.9}Welcome}{18}
\contentsline {subsection}{\numberline {4.5.10}AlwaysWelcome}{19}
\contentsline {subsection}{\numberline {4.5.11}User-Supported Directories}{19}
\contentsline {subsection}{\numberline {4.5.12}Meta-Information}{19}
\contentsline {subsection}{\numberline {4.5.13}MaxContentLengthBuffer}{19}
\contentsline {section}{\numberline {4.6}{} Rules In The Configuration File}{20}
\contentsline {subsection}{\numberline {4.6.1}Mapping, Passing and Failing}{20}
\contentsline {subsection}{\numberline {4.6.2}Redirecting Requests Elsewhere}{20}
\contentsline {subsubsection}{Example}{21}
\contentsline {subsection}{\numberline {4.6.3}Setting Up User Authentication and Document Protection}{21}
\contentsline {subsection}{\numberline {4.6.4}Executable Server Scripts}{21}
\contentsline {subsubsection}{Example}{21}
\contentsline {subsubsection}{Historical Note (HTBin Rule)}{22}
\contentsline {section}{\numberline {4.7}{} Suffix Definitions for CERN httpd}{22}
\contentsline {subsection}{\numberline {4.7.1}Binding Suffixes to MIME Content-Types}{22}
\contentsline {subsubsection}{Examples}{23}
\contentsline {subsubsection}{Historical Note (Suffix Directive)}{23}
\contentsline {subsection}{\numberline {4.7.2}Binding Suffixes to MIME Content-Endocings}{23}
\contentsline {subsubsection}{Example}{23}
\contentsline {subsection}{\numberline {4.7.3}Multilanguage Support}{23}
\contentsline {subsubsection}{Examples}{23}
\contentsline {subsection}{\numberline {4.7.4}Suffix Case Sensitivity}{23}
\contentsline {section}{\numberline {4.8}{} Accessory Scripts}{23}
\contentsline {subsection}{\numberline {4.8.1}Keyword Search Facility}{24}
\contentsline {subsection}{\numberline {4.8.2}General POST Method Handler Script}{24}
\contentsline {subsection}{\numberline {4.8.3}General PUT Method Handler Script}{24}
\contentsline {subsection}{\numberline {4.8.4}General DELETE Method Handler Script}{25}
\contentsline {section}{\numberline {4.9}{} Directory Browsing}{25}
\contentsline {subsection}{\numberline {4.9.1}Controlling Directory Browsing}{26}
\contentsline {subsection}{\numberline {4.9.2}README Feature}{26}
\contentsline {subsection}{\numberline {4.9.3}Controlling The Look of Directory Listings}{26}
\contentsline {subsection}{\numberline {4.9.4}Filename Length}{26}
\contentsline {subsubsection}{Example}{27}
\contentsline {section}{\numberline {4.10} {} Icons In The Directory Listings}{27}
\contentsline {subsection}{\numberline {4.10.1}AddIcon Directive}{27}
\contentsline {subsubsection}{{} CERN httpd as a Normal HTTP Server}{27}
\contentsline {subsubsection}{{} CERN httpd as a Proxy}{28}
\contentsline {subsection}{\numberline {4.10.2}Icons in Gopher Listings}{28}
\contentsline {subsection}{\numberline {4.10.3}Special Icons}{28}
\contentsline {subsubsection}{Example For a Regular HTTP Server}{29}
\contentsline {subsubsection}{Example For a Proxy Server}{29}
\contentsline {section}{\numberline {4.11}{} Logging Control In CERN httpd}{29}
\contentsline {subsection}{\numberline {4.11.1}Access Log File}{29}
\contentsline {subsection}{\numberline {4.11.2}Error Log File}{30}
\contentsline {subsection}{\numberline {4.11.3}Log File Format}{30}
\contentsline {subsection}{\numberline {4.11.4}Log Time Format}{30}
\contentsline {subsection}{\numberline {4.11.5}Suppressing Log Entries For Certain Hosts/Domains}{30}
\contentsline {subsubsection}{Examples}{30}
\contentsline {section}{\numberline {4.12}{} Timeout Settings}{30}
\contentsline {subsection}{\numberline {4.12.1}InputTimeOut}{31}
\contentsline {subsection}{\numberline {4.12.2}OutputTimeOut}{31}
\contentsline {subsection}{\numberline {4.12.3}ScriptTimeOut}{31}
\contentsline {section}{\numberline {4.13}{} Proxy Caching}{31}
\contentsline {subsection}{\numberline {4.13.1}Turning Caching On and Off}{32}
\contentsline {subsection}{\numberline {4.13.2}Setting Cache Directory}{32}
\contentsline {subsection}{\numberline {4.13.3}Cache Size}{32}
\contentsline {subsubsection}{Example}{32}
\contentsline {subsection}{\numberline {4.13.4}NoCaching}{32}
\contentsline {subsection}{\numberline {4.13.5}CacheOnly}{32}
\contentsline {subsection}{\numberline {4.13.6}Maximum Time to Keep Cache Files}{33}
\contentsline {subsubsection}{Examples}{33}
\contentsline {subsection}{\numberline {4.13.7}Maximum Time to Keep Unused Files}{33}
\contentsline {subsubsection}{Examples}{33}
\contentsline {subsection}{\numberline {4.13.8}Default Expiry Time}{33}
\contentsline {subsubsection}{Example}{33}
\contentsline {subsection}{\numberline {4.13.9}CacheLastModifiedFactor}{33}
\contentsline {subsubsection}{Examples}{34}
\contentsline {subsection}{\numberline {4.13.10}CacheTimeMargin}{34}
\contentsline {subsection}{\numberline {4.13.11}CacheNoConnect}{34}
\contentsline {subsection}{\numberline {4.13.12}CacheExpiryCheck}{34}
\contentsline {subsection}{\numberline {4.13.13}Garbage Collection}{34}
\contentsline {subsection}{\numberline {4.13.14}When to Do Garbage Collection}{34}
\contentsline {subsubsection}{Example}{35}
\contentsline {subsection}{\numberline {4.13.15}Memory Usage of Garbage Collector}{35}
\contentsline {subsubsection}{Example}{35}
\contentsline {subsection}{\numberline {4.13.16}Cache File Sizes}{35}
\contentsline {subsubsection}{Examples}{35}
\contentsline {subsection}{\numberline {4.13.17}Cache Lock Timeout}{35}
\contentsline {subsubsection}{Example}{35}
\contentsline {subsection}{\numberline {4.13.18}CacheAccessLog}{36}
\contentsline {section}{\numberline {4.14}{} Configuring Proxy To Connect To Another Proxy}{36}
\contentsline {subsection}{\numberline {4.14.1}no\unhbox \voidb@x \kern .06em \vbox {\hrule width.3em}proxy}{36}
\contentsline {chapter}{\numberline {5}{} Configuration File Examples}{37}
\contentsline {section}{\numberline {5.1}Normal HTTP Server Configuration}{37}
\contentsline {section}{\numberline {5.2}Normal HTTP Server With Access Control}{38}
\contentsline {section}{\numberline {5.3}Proxy Configuration With Caching}{40}
\contentsline {chapter}{\numberline {6}{} CERN Server CGI/1.1 Script Support}{43}
\contentsline {section}{\numberline {6.1}In This Section...}{43}
\contentsline {section}{\numberline {6.2}{} Important Note!}{43}
\contentsline {section}{\numberline {6.3}Setting Up httpd To Call Scripts}{43}
\contentsline {subsection}{\numberline {6.3.1}Example}{43}
\contentsline {subsection}{\numberline {6.3.2}Historical Note}{44}
\contentsline {section}{\numberline {6.4}Information Passed to CGI Scripts}{44}
\contentsline {section}{\numberline {6.5}Results From Scripts}{44}
\contentsline {subsection}{\numberline {6.5.1}Outputting a Document}{44}
\contentsline {subsection}{\numberline {6.5.2}Giving Document Location}{45}
\contentsline {subsection}{\numberline {6.5.3}NPH-Scripts (No-Parse-Headers)}{45}
\contentsline {subsubsection}{Example Of NPH-Script Output}{45}
\contentsline {section}{\numberline {6.6}Setting Up A Search Script}{45}
\contentsline {chapter}{\numberline {7}{} cgiparse Manual}{47}
\contentsline {section}{\numberline {7.1}Command Line Options}{47}
\contentsline {subsection}{\numberline {7.1.1}Main Options}{47}
\contentsline {subsection}{\numberline {7.1.2}Modifier Options}{47}
\contentsline {section}{\numberline {7.2}Exit Statuses}{48}
\contentsline {section}{\numberline {7.3}Examples}{48}
\contentsline {subsection}{\numberline {7.3.1}Keyword Search}{48}
\contentsline {subsection}{\numberline {7.3.2}Parsing All Form Fields}{48}
\contentsline {subsection}{\numberline {7.3.3}Extracting Only One Field Value}{48}
\contentsline {chapter}{\numberline {8}{} cgiutils Manual}{49}
\contentsline {section}{\numberline {8.1}Command Line Options}{49}
\contentsline {section}{\numberline {8.2}Examples}{49}
\contentsline {chapter}{\numberline {9} {} CERN Server Clickable Image Support}{51}
\contentsline {section}{\numberline {9.1}In This Section...}{51}
\contentsline {section}{\numberline {9.2}Installing htimage Binary}{51}
\contentsline {section}{\numberline {9.3}Writing a Document With Clickable Images}{51}
\contentsline {section}{\numberline {9.4}Image Configuration File}{52}
\contentsline {section}{\numberline {9.5}Output Produced by htimage}{52}
\contentsline {chapter}{\numberline {10}{} Protected CERN Server Setup}{53}
\contentsline {section}{\numberline {10.1}In This Section...}{53}
\contentsline {section}{\numberline {10.2}Password File}{53}
\contentsline {section}{\numberline {10.3}Group File}{53}
\contentsline {section}{\numberline {10.4}Server Configuration File}{54}
\contentsline {section}{\numberline {10.5}Protection Setup File}{54}
\contentsline {subsection}{\numberline {10.5.1}Protecting Entire Tree As One Entity}{54}
\contentsline {subsection}{\numberline {10.5.2}Protecting Individual Files Differently}{55}
\contentsline {subsection}{\numberline {10.5.3}Restricting Access Even Further}{55}
\contentsline {section}{\numberline {10.6}Protection Setup Embedded in the Configuration File}{55}
\contentsline {section}{\numberline {10.7}Access Control List File}{56}
\contentsline {section}{\numberline {10.8}{} Manual Page For htadm}{56}
\contentsline {subsection}{\numberline {10.8.1}Command Line Options and Parameters}{56}
\contentsline {chapter}{\numberline {11}{} Proxies}{57}
\contentsline {section}{\numberline {11.1}In This Section...}{57}
\contentsline {section}{\numberline {11.2}Setting Up cern\unhbox \voidb@x \kern .06em \vbox {\hrule width.3em}httpd To Run as a Proxy}{57}
\contentsline {section}{\numberline {11.3}Proxy Protection}{57}
\contentsline {subsection}{\numberline {11.3.1}Enabling and Disabling HTTP Methods}{57}
\contentsline {subsection}{\numberline {11.3.2}Defining Allowed Hosts}{58}
\contentsline {subsection}{\numberline {11.3.3}Actual Protection}{58}
\contentsline {section}{\numberline {11.4}Caching}{58}
\contentsline {chapter}{\numberline {12}{} CERN Server FAQ}{59}
\contentsline {section}{\numberline {12.1}My Scripts Get Served As Text Files...}{59}
\contentsline {section}{\numberline {12.2}How do I...}{59}
\contentsline {section}{\numberline {12.3}Zombies}{59}
\contentsline {section}{\numberline {12.4}Inet daemon complains about looping...}{59}
\contentsline {section}{\numberline {12.5}Server looks at funny directories and finds nothing}{60}
\contentsline {section}{\numberline {12.6}But the document says rule file is no longer needed}{60}
\contentsline {chapter}{\numberline {13} {} CERN httpd 2.15 Release Notes}{61}
\contentsline {section}{\numberline {13.1}General Notes}{61}
\contentsline {section}{\numberline {13.2}CGI/1.0, Common Gateway Interface}{61}
\contentsline {section}{\numberline {13.3}Firewall Gateway Modifications}{61}
\contentsline {section}{\numberline {13.4}Other New Features}{62}
\contentsline {section}{\numberline {13.5}Enhancements, Fixes}{63}
\contentsline {chapter}{\numberline {14} {} CERN httpd 2.16beta Release Notes}{64}
\contentsline {section}{\numberline {14.1}Firewall Gateway (Proxy) Additions, Fixes}{64}
\contentsline {section}{\numberline {14.2}Firewall Gateway (Proxy) Caching}{64}
\contentsline {section}{\numberline {14.3}Other New Features}{65}
\contentsline {section}{\numberline {14.4}Enhancements, Fixes}{66}
\contentsline {chapter}{\numberline {15} {} CERN httpd 2.17beta Release Notes}{67}
\contentsline {section}{\numberline {15.1}General New Features}{67}
\contentsline {section}{\numberline {15.2}Access Authorization Enhancements / Proxy Protections}{68}
\contentsline {section}{\numberline {15.3}Enhancements, Fixes}{68}
\contentsline {section}{\numberline {15.4}Proxy Additions, Fixes}{69}
\contentsline {section}{\numberline {15.5}Proxy Caching}{69}
\contentsline {section}{\numberline {15.6}cgiutils}{70}
\contentsline {chapter}{\numberline {16} {} CERN httpd 2.18beta Release Notes}{71}
\contentsline {section}{\numberline {16.1}New Features}{71}
\contentsline {section}{\numberline {16.2}Fixes}{71}
\contentsline {chapter}{\numberline {17}{} CERN httpd 3.0 PreRelease Notes}{72}
\contentsline {section}{\numberline {17.1}3.0 Prerelease 3}{72}
\contentsline {section}{\numberline {17.2}3.0 Prerelease 2}{72}
\contentsline {section}{\numberline {17.3}3.0 Prerelease 1}{72}
