2.11 Serving Files

► |  | Web Server: Racket HTTP Server

1 | Dispatching Server
2 | Dispatchers
3 | Launching Servers
4 | Web Servers
5 | Internal APIs
6 | Troubleshooting and Tips
| Index

▼ | 2 | Dispatchers

2.1 | General
2.2 | Mapping URLs to Paths
2.3 | Sequencing
2.4 | Timeouts
2.5 | Lifting Procedures
2.6 | Filtering Requests
2.7 | Procedure Invocation upon Request
2.8 | Logging
2.9 | Password Protection
2.10 | Virtual Hosts
2.11 | Serving Files
2.12 | Serving Servlets
2.13 | Statistics
2.14 | Limiting Requests

On this page:

make

top← prev up next →

#### 2.11`` Serving Files

( require web-server/dispatchers/dispatch-files)

The web-server/dispatchers/dispatch-files module allows files to be served. It defines a dispatcher construction procedure.

( make |  | #:url->path url->path |  |  |  |
| [ | #:path->mime-type path->mime-type |  |  |  |
|  | #:indices indices]) |  | → |  | dispatcher/c

url->path : url->path/c

| path->mime-type |  | : |  | ( path? . -> . bytes?)
|  |  | = |  | ( lambda (path) TEXT/HTML-MIME-TYPE)

indices : ( listof string?) = ( list "index.html" "index.htm")

Uses url->path to extract a path from the URL in the request object. If this path does not exist, then the dispatcher does not apply and next-dispatcher is invoked. If the path is a directory, then the indices are checked in order for an index file to serve. In that case, or in the case of a path that is a file already, path->mime-type is consulted for the MIME Type of the path. The file is then streamed out the connection object.

This dispatcher supports HTTP Range GET requests and HEAD requests.

top← prev up next →