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
11 Time and Daytime
11.1 Daytime
11.2 Time
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