Version: 4.1.3

Web Server: PLT HTTP Server

Jay McCarthy <jay at plt-scheme dot org>

The Web Server collection provides libraries that can be used to develop Web applications in Scheme.

    1 Running the Web Server

      1.1 Instant Servlets

        1.1.1 Customization API

      1.2 Simple Single Servlet Servers

      1.3 Command-line Tools

      1.4 Functional

    2 Writing Servlets

      2.1 Defining a Servlet

        2.1.1 Version 1 Servlets

        2.1.2 Version 2 Servlets

        2.1.3 Stateless Servlets

          2.1.3.1 Usage Considerations

      2.2 APIs

        2.2.1 Standard API

        2.2.2 Stateless API

      2.3 Common Contracts

      2.4 HTTP

        2.4.1 Requests

        2.4.2 Bindings

        2.4.3 Responses

        2.4.4 Redirect

        2.4.5 Basic Authentication

      2.5 Web Interaction

      2.6 Stateless Web Interaction

        2.6.1 Low Level

        2.6.2 High Level

        2.6.3 Stuff URL

      2.7 Web Cells

        2.7.1 Stateless Web Cells

      2.8 File Boxes

      2.9 Stateless Web Parameters

      2.10 Formlets

        2.10.1 Basic Formlet Usage

        2.10.2 Syntactic Shorthand

        2.10.3 Functional Usage

        2.10.4 Predefined Formlets

        2.10.5 Utilities

      2.11 Templates

        2.11.1 Static

        2.11.2 Dynamic

        2.11.3 Gotchas

        2.11.4 HTTP Responses

        2.11.5 API Details

      2.12 Continuation Managers

        2.12.1 General

        2.12.2 No Continuations

        2.12.3 Timeouts

        2.12.4 LRU

    3 Extending the Web Server

      3.1 Configuration

        3.1.1 Configuration Table Structure

        3.1.2 Configuration Table

        3.1.3 Servlet Namespaces

          3.1.3.1 Why this is useful

        3.1.4 Standard Responders

      3.2 Setting Up Servlets

        3.2.1 Internal Servlet Representation

      3.3 Dispatchers

        3.3.1 General

        3.3.2 Mapping URLs to Paths

        3.3.3 Sequencing

        3.3.4 Timeouts

        3.3.5 Lifting Procedures

        3.3.6 Filtering Requests

        3.3.7 Procedure Invocation upon Request

        3.3.8 Logging

        3.3.9 Password Protection

        3.3.10 Virtual Hosts

        3.3.11 Serving Files

        3.3.12 Serving Servlets

        3.3.13 Statistics

      3.4 Web Config Unit

        3.4.1 Configuration Signature

        3.4.2 Configuration Units

      3.5 Web Server Unit

        3.5.1 Signature

        3.5.2 Unit

      3.6 Internal

        3.6.1 Timers

        3.6.2 Connection Manager

        3.6.3 Dispatching Server

          3.6.3.1 Dispatching Server Signatures

          3.6.3.2 Dispatching Server Unit

        3.6.4 Serializable Closures

          3.6.4.1 Define Closure

        3.6.5 Cache Table

        3.6.6 MIME Types

        3.6.7 Serialization Utilities

        3.6.8 URL Param

        3.6.9 Miscellaneous Utilities

          3.6.9.1 Contracts

          3.6.9.2 Lists

          3.6.9.3 URLs

          3.6.9.4 Paths

          3.6.9.5 Exceptions

          3.6.9.6 Strings

          3.6.9.7 Bytes

    4 Troubleshooting

      4.1 What special considerations are there for security with the Web Server?

      4.2 How do I use Apache with the PLT Web Server?

      4.3 IE ignores my CSS or behaves strange in other ways

      4.4 Can the server create a PID file?

      4.5 How do I set up the server to use HTTPS?

    5 Acknowledgements

    Index