Contents

    1  Overview
        1.1  Obtaining the system
        1.2  How to install SUnet
        1.3  How to use the packages

    2  HTTP server
        2.1  Starting and configuring the server
        2.2  Requests
        2.3  Responses
        2.4  Response Bodies
        2.5  Request Handlers
            2.5.1  Basic Request Handlers
            2.5.2  Static Content Request Handlers
        2.6  CGI Server
        2.7  Scheme-Evaluating Request Handlers
            2.7.1  The loser structure
            2.7.2  The toothless structure
            2.7.3  The toothless-eval structure
        2.8  Writing Request Handlers
            2.8.1  Parsing HTML Forms
        2.9  SSL encryption with Apache

    3  Parsing and Processing URIs
        3.1  Notes on URI Syntax
        3.2  Procedures

    4  Parsing and Processing URLs
        4.1  Server Records
        4.2  HTTP URLs

    5  Writing CGI Scripts in Scheme

    6  SUrflet server
        6.1  Howto
            6.1.1  Introduction
            6.1.2  How to run the SUnet webserver that handles SUrflets
                    Obtaining necessary packages
                    Starting the SUrflet server
            6.1.3  How to send web pages
                6.1.3.1  My first SUrflet
                6.1.3.2  Dynamic content
                6.1.3.3  Several web pages in a row
                6.1.3.4  Begin and end of sessions
                6.1.3.5  Abbreviations in SXML
            6.1.4  How to write web forms
                6.1.4.1  Simple web forms
                6.1.4.2  Return types other than strings
                6.1.4.3  Annotated input fields
                6.1.4.4  Sending error messages
                6.1.4.5  Your own input fields
            6.1.5  Program flow control
                6.1.5.1  Dispatching to more than one successor web page
                6.1.5.2  Annotated dispatching
                6.1.5.3  Callbacks
            6.1.6  Data management
            6.1.7  My own SXML
                6.1.7.1  Terms and theoretical background
                6.1.7.2  Outlook
        6.2  API description
            6.2.1  The SUrflet server
            6.2.2  SUrflets
            6.2.3  SUrflet management
            6.2.4  Surflet Request
            6.2.5  Surflet Response
            6.2.6  Sessions
                6.2.6.1  Session management
                6.2.6.2  Session data
            6.2.7  Basic I/O
            6.2.8  Web I/O
                6.2.8.1  SXML
                6.2.8.2  Special SXML tags
                6.2.8.3  Do it yourself: your own SXML
            6.2.9  Continuation-URL
            6.2.10  Input fields
                    Getting the bindings
                    Retrieving the Scheme values
                    Creating and using input fields
                6.2.10.1  Do it yourself: your own input fields
            6.2.11  Web addresses
                6.2.11.1  Evaluatable web addresses
            6.2.12  Callbacks
            6.2.13  Outdater
            6.2.14  Simple SUrflets

    7  FTP Server

    8  FTP Client

    9  Parsing Netrc Files

    10  RFC 822 Library

    11  Time and Daytime
        11.1  Daytime
        11.2  Time

    12  SMTP Client

    13  POP3 Client

    14  DNS Client Library
        14.1  Overview
        14.2  Conditions
        14.3  High-level Interface
        14.4  Low-level Interface
        14.5  Parsing /etc/resolv.conf
        14.6  IP Addresses as Dotted Strings