Making the server do things your way

Customization

These notes provide information on how the server can handle the request/response cycle in ways that go beyond the mimimum requirements of HTTP.

Blue-processor

Processing requests for blue-phrase documents

This note describes how the server handles requests for documents with content type text/blue.
blue-phrase, text/blue, push-priority,router, HTTP/2, nopush, dynamic-cache, linkmap, pragma, include, enclosure, use, processor options, push processing, pushAllowed, rw-blue-unsupported-method, rw-blue-cache-add, rw-blue-cache-stale, rw-blue-cache-dependency,rw-blue-cache-hit,rw-blue-invalid-option

Cross Origin

Relaxing the same-origin policy

This note describes how to configure the server to relax the strict same-origin policy imposed by browsers regarding the use of resources from other domains, also known as the CORS protocol.
CORS, origin, cross-origin, same-origin, access-control-allow-origin, access-control-allow-credentials, access-control-allow-headers, access-control-allow-methods, access-control-expose-headers, access-control-max-age

Resource Masks

Rewriting masked resources using replacement patterns

This note describes a way to rewrite resource request paths. Strings containing capture groups are used as request patterns that match incoming paths to rewrite rules. Replacement strings are used to specify how to reassemble the capture group values into masked replacement paths.
rewrite resource, request patterns, replacement strings, named capture group, resource pattern, masked replacement path, variable substitution, location, 302

Push Priority

Assign relative weights to speculative push requests

This note describes how to configure HTTP/2 speculative push protocol with weighted priorities for external resources associated with blue-phrase source documents.
push-priority, HTTP/2 speculative push, linkmap, blue-processor, weights, push, nopush, path-pattern

Preload Push

Requesting early arrival of special resources

This note describes how to use the HTTP 'link' request header to retrieve resources earlier using HTTP/2 push.
HTTP/2 PUSH, link, preload

Raw Path

Splitting the resource request into more usable pieces

This note describes the steps taken by the server to split the raw request path into a resource path, a query string, and key-value parameters.
raw path, resource path, query string, parameters, canonicalization, restrictions, _resourcePath, _queryString, _parameterMap, rw-resource-path-illegal, rw-resource-path-length

Developing Plugins

Handling requests with application-specific code

This note describes how the server can be customized to handle application-specific needs using plugin modules written in JavaScript.
router, plugins, dynamic handler, custom handler, workOrder, requestHeaders, incomingPayload, remoteAddress, _queryString, _parameterMap, _cookieMap, outgoingPayload, outgoingFilename, doNotFulfill, responseHeaders

Work Orders

Accessing request/response data from a plugin

This note provides guidance on how to make use of the data structures provided to plugins during the request/response cycle.
workOrder, requestHeaders, incomingPayload, remoteAddress, _queryString, _parameterMap, _cookieMap, outgoingPayload, outgoingFilename, doNotFulfill, responseHeaders

Router

Shunting the request/response cycle through custom handlers

This note describes how the server is configured to route dynamic resource requests.
router, dynamic routing, static routing, custom handler, path-pattern, rw-router-missing-module, rw-router-syntax-error, rw-router-unknown-error, rw-router-not-forwarded

Making the server do things your way