<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
                 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<!--
   ====================================================================
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
   ====================================================================

-->
<preface id="preface">
    <title>Preface</title>
    <para>
    HttpCore is a set of components implementing the most fundamental aspects
    of the HTTP protocol that are nonetheless sufficient to develop full-featured
    client-side and server-side HTTP services with a minimal footprint.
    </para>
    <para>
    HttpCore has the following scope and goals:
    </para>
    <section>
        <title>HttpCore Scope</title>
        <itemizedlist>
            <listitem>
                <para>
                A consistent API for building client / proxy / server side HTTP services
                </para>
            </listitem>
            <listitem>
                <para>
                A consistent API for building both synchronous and asynchronous HTTP services
                </para>
            </listitem>
            <listitem>
                <para>
                A set of low level components based on blocking (classic) and non-blocking
                (NIO) I/O models
                </para>
            </listitem>
        </itemizedlist>
    </section>
    <section>
        <title>HttpCore Goals</title>
        <itemizedlist>
            <listitem>
                <para>
                Implementation of the most fundamental HTTP transport aspects
                </para>
            </listitem>
            <listitem>
                <para>
                Balance between good performance and the clarity &amp; expressiveness of API
                </para>
            </listitem>
            <listitem>
                <para>
                Small (predictable) memory footprint
                </para>
            </listitem>
            <listitem>
                <para>
                Self-contained library (no external dependencies beyond JRE)
                </para>
            </listitem>
        </itemizedlist>
    </section>
    <section>
        <title>What HttpCore is NOT</title>
        <itemizedlist>
            <listitem>
                <para>
                A replacement for HttpClient
                </para>
            </listitem>
            <listitem>
                <para>
                A replacement for Servlet APIs
                </para>
            </listitem>
        </itemizedlist>
    </section>

</preface>
