Kayak

Overview

Motivation

We could never quite figure out what the hell Microsoft’s System.Web did during its massively complicated, poorly-documented request lifecycle. ASP.NET modules have historically been quite heavy and complicated to set up, especially on Linux+Apache with mod_mono and xsp and all that stuff. There are a lot of web development enviroments for various languages and platforms that suffer from similar problems.

By using Kayak, you're saying no to heavy, complicated, server-specific interfaces for tying into production front-ends such as CGI, Apache's module system, ISAPI, WSGI, and the like. Instead, your application speaks a language any front-end understands: HTTP. Additionally, Kayak puts your application in control by allowing it to define its own entry point and load up the server, not the other way around.

There are four stages to an HTTP request: request headers read in, request body (if any) read in, response headers written out, response body (if any) written out. Kayak gives you fine-grain control over what you do during each of those stages. The API documentation in this section explains in detail how this is achieved.

Usage

The HTTP server component is found in Kayak.dll. The Kayak Framework depends on the HTTP server. If you don’t need the whole framework, you aren’t forced to use it.

For details on the request handling logic, see KayakServer. For details on when headers and entity bodies are read/written, see KayakRequest and KayakResponse respectively.