File:  [Public] / libwww / Library / src / WWWHTTP.html
Revision 2.14: download - view: text, annotated - select for diffs
Wed Mar 24 16:28:16 1999 UTC (25 years, 2 months ago) by frystyk
Branches: MAIN
CVS tags: repeat-requests, candidate-5-4-1, before_webdav, Release-5-4-0, Release-5-3-1, Release-5-2-8, HEAD, Amaya_2_4, Amaya-6-3, Amaya-6-1, Amaya-5-2, Amaya-4-3-2, Amaya-4-3-1, Amaya-4-3, Amaya-4-1-2, Amaya-4-1-0, Amaya-4-0-0, Amaya-3-2-1, Amaya-3-2, Amaya
Added simple HTTP cookie handler

<HTML>
<HEAD>
  <TITLE>W3C Sample Code Library libwww HTTP Client/Server Module</TITLE>
</HEAD>
<BODY>
<H1>
  Declaration of W3C Sample Code HTTP Module
</H1>
<PRE>
/*
**	(c) COPYRIGHT MIT 1995.
**	Please first read the full copyright statement in the file COPYRIGH.
*/
</PRE>
<P>
This is the include file for all HTTP access including the
<A HREF="HTTPServ.html">server side</A> and the <A HREF="HTTP.html">client
side</A>. It can be used together with the <A HREF="WWWCore.html">core of
the W3C Sample Code Library</A>. It contains all HTTP specific modules which
are required to compile and build the HTTP DLL.
<PRE>
#ifndef WWWHTTP_H
#define WWWHTTP_H
</PRE>
<PRE>
#ifdef __cplusplus
extern "C" { 
#endif
</PRE>
<H3>
  System dependencies
</H3>
<P>
The <A HREF="wwwsys.html">wwwsys.h</A> file includes system-specific include
files and flags for I/O to network and disk. The only reason for this file
is that the Internet world is more complicated than Posix and ANSI.
<PRE>#include "<A HREF="wwwsys.html">wwwsys.h</A>"
</PRE>
<H3>
  Basic HTTP definitions and utilities
</H3>
<P>
A small set of very basic HTTP stuff
<PRE>
#include "<A HREF="HTTPUtil.html">HTTPUtil.h</A>"
</PRE>
<H3>
  HTTP Client State Machine
</H3>
<P>
The client statue machine handles the client side of HTTP generating requests
and parsing responses.
<PRE>#include "<A HREF="HTTP.html">HTTP.h</A>"
</PRE>
<H3>
  HTTP Server State Machine
</H3>
<P>
The HTTP module also contains a very simple server module which can be used
for experimenting but which is not a full blown server.
<PRE>#include "<A HREF="HTTPServ.html">HTTPServ.h</A>"			/* HTTP server state machine */
</PRE>
<H3>
  General HTTP Header Stream
</H3>
<P>
The HTTP Request stream generates a HTTP request header and writes it to
the target which is normally a HTWriter stream.
<PRE>#include "<A HREF="HTTPGen.html">HTTPGen.h</A>"
</PRE>
<H3>
  Client-side Request Generator Stream
</H3>
<P>
The HTTP Request stream generates a HTTP request header and writes it to
the target which is normally a HTWriter stream.
<PRE>#include "<A HREF="HTTPReq.html">HTTPReq.h</A>"
</PRE>
<H3>
  Server-side Response Generator Stream
</H3>
<P>
The HTTP response stream generates a HTTP response header and writes it to
the target which is normally a HTWriter stream.
<PRE>#include "<A HREF="HTTPRes.html">HTTPRes.h</A>"
</PRE>
<H3>
  Chunked Encoding and Decoding
</H3>
<P>
Chunked transfer encoding and decoding is new in HTTP/1.1. It allows applications
to use persistent connections while not knowing the content length a priori
to the response header is generated.
<PRE>#include "<A HREF="HTTChunk.html">HTTChunk.h</A>"
</PRE>
<H3>
  HTTP Extensions
</H3>
<P>
The <A HREF="HTPEP.html">PEP Manager</A> is a registry for <I>PEP Protocols</I>
that follow the generic syntax defined by the
<A HREF="../../Protocols/">HTTP</A> <I>PEP protocol</I> headers. All <I>PEP
Protocols</I> are registered at run-time in form of a <I>PEP Module</I>.
A <I>PEP Module</I> consists of the following:
<PRE>#include "<A HREF="HTPEP.html">HTPEP.h</A>"
</PRE>
<H3>
  Generic Authentication
</H3>
<P>
The <A HREF="HTAAUtil.html">Authentication Manage</A><I>r</I> is a registry
for <I>Authentication Schemes</I> that follow the generic syntax defined
by the <A HREF="../../Protocols/">HTTP</A> <CODE>WWW-authenticate</CODE>
and <CODE>Authorization</CODE> headers. Currently, the only scheme defined
is <I>Basic Authentication</I>, but <I>Digest Authentication </I>will soon
follow. All <I>Authentication Schemes</I> are registered at run-time in form
of an <I>Authentication Module</I>. An <I>Authentication Module</I> consists
of the following:
<PRE>#include "<A HREF="HTAAUtil.html">HTAAUtil.h</A>"
</PRE>
<H3>
  Client Side Authentication
</H3>
<P>
Contains code for parsing challenges and creating credentials for basic and
digest authentication schemes. See also the <A HREF="HTAAUtil.html">HTAAUtil
module</A> for how to handle other authentication schemes.
<PRE>#include "<A HREF="HTAABrow.html">HTAABrow.h</A>"
</PRE>
<H3>
  HTTP Cookies
</H3>
<P>
The <A HREF="HTCookie.html">cookie module</A> provides a simple
<A HREF="http://www.netscape.com/newsref/std/cookie_spec.html">HTTP Cookie
handling mechanism</A>. It really also is an excersize in showing how libwww
can be extended with something like cookies in a modular manner. An important
thing to note about this implementation is that it does <EM>not</EM> provide
storage for cookies - this is left to the application as normally cookies
have to be kept under lock.
<PRE>
#include "<A HREF="HTCookie.html">HTCookie.h</A>"
</PRE>
<P>
End of HTTP module
<PRE>
#ifdef __cplusplus
} /* end extern C definitions */
#endif

#endif
</PRE>
<P>
  <HR>
<ADDRESS>
  @(#) $Id: WWWHTTP.html,v 2.14 1999/03/24 16:28:16 frystyk Exp $
</ADDRESS>
</BODY></HTML>

Webmaster