\documentclass[11pt,a4paper]{article}

\usepackage{graphicx}
\usepackage{color}
\usepackage{fancyvrb}
\usepackage[russian]{babel}
\usepackage[utf8x]{inputenc}

% Pygments syntax highlighting codes
<< pygments['pastie.tex'] >>

\begin{document}

\chapter{Введение}

Mongrel2 --- это веб-сервер. http-запрос приходит, http-ответ уходит.
Запрос, ответ. Ничего сверхъестественного или экстраординарного в том, как
Mongrel2 работает с браузером, если не учитывать тот факт, что он поддерживает
продвинутый асинхронный протокол передачи через сокеты. Но для браузера
Mongrel2 --- это старый добрый веб-сервер с поддержкой флэш-сокетов и веб-сокетов.
Вот и всё.

<< d['test-idio.py|idio|pycon|pyg|l']['assign-variables'] >>

Что делает Mongrel2 особенным --- это то, как он обрабатывает эти запросы ---
\emph{асинхронно и прозрачно для любого языка программирования} с использованием
простого \emph{протокола обмена сообщениями}, чтобы взимодействовать с \emph{приложениями}, а
не просто выдавать файлы. Mongrel2 также легко автоматизировать как часть вашей
инфраструктуры.

<< d['test-idio.py|idio|pycon|pyg|l']['multiply'] >>

Другие серверы тоже делают что-то из перечисленного выше, но либо делают это, мягко говоря,
не самым лучшим образом, либо не всё сразу. Некоторые веб-серверы, например Jetty
и Node.js, поддерживают асинхронные операции, но ориентированы на один определённый язык
программирования\footnote{Кто захочет кодить весь день на Джаваскрипте? Ужас.}. Другие ---
позволяют писать бэкенд на любом языке, но требуют либо http-проксирование, либо FastCGI,
что не очень хорошо для асинхронности.

\end{document}
