► |  | Web Server: PLT HTTP Server

1 | Running the Web Server
2 | Writing Servlets
3 | Extending the Web Server
4 | Troubleshooting and Tips
5 | Acknowledgements
| Index

▼ | 1 | Running the Web Server

1.1 | Instant Servlets
1.2 | Simple Single Servlet Servers
1.3 | Command-line Tools
1.4 | Functional

On this page:

serve
serve/ ports
serve/ ips+ ports
serve/ web-config@
do-not-return

Version: 4.1.4
top← prev up next →

#### 1.4`` Functional

(require web-server/web-server)

"web-server.ss" provides a number of functions for easing embedding of the Web Server in other applications, or loading a custom dispatcher.

(serve |
|  | #:dispatch dispatch |
| [ | #:tcp@ tcp@ |
|  | #:port port |
|  | #:listen-ip listen-ip |
|  | #:max-waiting max-waiting |
|  | #:initial-connection-timeout initial-connection-timeout]) |

→ (-> void)
dispatch : dispatcher/c
tcp@ : tcp-unit^ = raw:tcp@
port : integer? = 80
listen-ip : (or/c string? false/c) = #f
max-waiting : integer? = 40
initial-connection-timeout : integer? = 60

Constructs an appropriate dispatch-server-config^, invokes the dispatch-server@, and calls its serve function.

The #:tcp@ keyword is provided for building an SSL server. See How do I set up the server to use HTTPS?.

Here’s an example of a simple web server that serves files from a given path:

(define (start-file-server base)
(serve
#:dispatch
(files:make
#:url->path (make-url->path base)
#:path->mime-type
(lambda (path)
#"application/octet-stream"))
#:port 8080))

(serve/ports |
|  | #:dispatch dispatch |
| [ | #:tcp@ tcp@ |
|  | #:ports ports |
|  | #:listen-ip listen-ip |
|  | #:max-waiting max-waiting |
|  | #:initial-connection-timeout initial-connection-timeout]) |

→ (-> void)
dispatch : dispatcher/c
tcp@ : tcp-unit^ = raw:tcp@
ports : (listof integer?) = (list 80)
listen-ip : (or/c string? false/c) = #f
max-waiting : integer? = 40
initial-connection-timeout : integer? = 60

Calls serve multiple times, once for each port, and returns a function that shuts down all of the server instances.

(serve/ips+ports |
|  | #:dispatch dispatch |
| [ | #:tcp@ tcp@ |
|  | #:ips+ports ips+ports |
|  | #:max-waiting max-waiting |
|  | #:initial-connection-timeout initial-connection-timeout]) |

→ (-> void)
dispatch : dispatcher/c
tcp@ : tcp-unit^ = raw:tcp@

| ips+ports |  | : |  | (listof (cons/c (or/c string? false/c) (listof integer?)))
|  |  | = |  | (list (cons #f (list 80)))

max-waiting : integer? = 40
initial-connection-timeout : integer? = 60

Calls serve/ports multiple times, once for each ip, and returns a function that shuts down all of the server instances.

(serve/web-config@ config@ [#:tcp@ tcp@]) → (-> void)
config@ : web-config^
tcp@ : tcp-unit^ = raw:tcp@

Starts the Web Server with the settings defined by the given web-config^ unit.

It is very useful to combine this with configuration-table->web-config@ and configuration-table-sexpr->web-config@:

(serve/web-config@
(configuration-table->web-config@
default-configuration-table-path))

(do-not-return) → void

This function does not return. If you are writing a script to load the Web Server you are likely to want to call this functions at the end of your script.

top← prev up next →