Annotation of libwww/Library/src/WWWHTTP.html, revision 2.14

2.1       frystyk     1: <HTML>
                      2: <HEAD>
2.12      frystyk     3:   <TITLE>W3C Sample Code Library libwww HTTP Client/Server Module</TITLE>
2.1       frystyk     4: </HEAD>
                      5: <BODY>
2.11      frystyk     6: <H1>
2.12      frystyk     7:   Declaration of W3C Sample Code HTTP Module
2.11      frystyk     8: </H1>
2.1       frystyk     9: <PRE>
                     10: /*
                     11: **     (c) COPYRIGHT MIT 1995.
                     12: **     Please first read the full copyright statement in the file COPYRIGH.
                     13: */
                     14: </PRE>
2.11      frystyk    15: <P>
                     16: This is the include file for all HTTP access including the
                     17: <A HREF="HTTPServ.html">server side</A> and the <A HREF="HTTP.html">client
                     18: side</A>. It can be used together with the <A HREF="WWWCore.html">core of
2.12      frystyk    19: the W3C Sample Code Library</A>. It contains all HTTP specific modules which
2.11      frystyk    20: are required to compile and build the HTTP DLL.
2.1       frystyk    21: <PRE>
                     22: #ifndef WWWHTTP_H
                     23: #define WWWHTTP_H
                     24: </PRE>
                     25: <PRE>
                     26: #ifdef __cplusplus
                     27: extern "C" { 
                     28: #endif
                     29: </PRE>
2.11      frystyk    30: <H3>
                     31:   System dependencies
                     32: </H3>
                     33: <P>
2.13      frystyk    34: The <A HREF="wwwsys.html">wwwsys.h</A> file includes system-specific include
2.11      frystyk    35: files and flags for I/O to network and disk. The only reason for this file
                     36: is that the Internet world is more complicated than Posix and ANSI.
2.13      frystyk    37: <PRE>#include "<A HREF="wwwsys.html">wwwsys.h</A>"
2.11      frystyk    38: </PRE>
                     39: <H3>
                     40:   Basic HTTP definitions and utilities
                     41: </H3>
                     42: <P>
                     43: A small set of very basic HTTP stuff
                     44: <PRE>
                     45: #include "<A HREF="HTTPUtil.html">HTTPUtil.h</A>"
                     46: </PRE>
                     47: <H3>
                     48:   HTTP Client State Machine
                     49: </H3>
                     50: <P>
                     51: The client statue machine handles the client side of HTTP generating requests
                     52: and parsing responses.
                     53: <PRE>#include "<A HREF="HTTP.html">HTTP.h</A>"
                     54: </PRE>
                     55: <H3>
                     56:   HTTP Server State Machine
                     57: </H3>
                     58: <P>
                     59: The HTTP module also contains a very simple server module which can be used
                     60: for experimenting but which is not a full blown server.
                     61: <PRE>#include "<A HREF="HTTPServ.html">HTTPServ.h</A>"                 /* HTTP server state machine */
                     62: </PRE>
                     63: <H3>
                     64:   General HTTP Header Stream
                     65: </H3>
                     66: <P>
                     67: The HTTP Request stream generates a HTTP request header and writes it to
                     68: the target which is normally a HTWriter stream.
                     69: <PRE>#include "<A HREF="HTTPGen.html">HTTPGen.h</A>"
                     70: </PRE>
                     71: <H3>
                     72:   Client-side Request Generator Stream
                     73: </H3>
                     74: <P>
                     75: The HTTP Request stream generates a HTTP request header and writes it to
                     76: the target which is normally a HTWriter stream.
                     77: <PRE>#include "<A HREF="HTTPReq.html">HTTPReq.h</A>"
                     78: </PRE>
                     79: <H3>
                     80:   Server-side Response Generator Stream
                     81: </H3>
                     82: <P>
                     83: The HTTP response stream generates a HTTP response header and writes it to
                     84: the target which is normally a HTWriter stream.
                     85: <PRE>#include "<A HREF="HTTPRes.html">HTTPRes.h</A>"
                     86: </PRE>
                     87: <H3>
                     88:   Chunked Encoding and Decoding
                     89: </H3>
                     90: <P>
                     91: Chunked transfer encoding and decoding is new in HTTP/1.1. It allows applications
                     92: to use persistent connections while not knowing the content length a priori
                     93: to the response header is generated.
                     94: <PRE>#include "<A HREF="HTTChunk.html">HTTChunk.h</A>"
                     95: </PRE>
                     96: <H3>
2.14    ! frystyk    97:   HTTP Extensions
2.11      frystyk    98: </H3>
                     99: <P>
                    100: The <A HREF="HTPEP.html">PEP Manager</A> is a registry for <I>PEP Protocols</I>
                    101: that follow the generic syntax defined by the
                    102: <A HREF="../../Protocols/">HTTP</A> <I>PEP protocol</I> headers. All <I>PEP
                    103: Protocols</I> are registered at run-time in form of a <I>PEP Module</I>.
                    104: A <I>PEP Module</I> consists of the following:
                    105: <PRE>#include "<A HREF="HTPEP.html">HTPEP.h</A>"
                    106: </PRE>
                    107: <H3>
                    108:   Generic Authentication
                    109: </H3>
                    110: <P>
                    111: The <A HREF="HTAAUtil.html">Authentication Manage</A><I>r</I> is a registry
                    112: for <I>Authentication Schemes</I> that follow the generic syntax defined
                    113: by the <A HREF="../../Protocols/">HTTP</A> <CODE>WWW-authenticate</CODE>
                    114: and <CODE>Authorization</CODE> headers. Currently, the only scheme defined
                    115: is <I>Basic Authentication</I>, but <I>Digest Authentication </I>will soon
                    116: follow. All <I>Authentication Schemes</I> are registered at run-time in form
                    117: of an <I>Authentication Module</I>. An <I>Authentication Module</I> consists
                    118: of the following:
                    119: <PRE>#include "<A HREF="HTAAUtil.html">HTAAUtil.h</A>"
                    120: </PRE>
                    121: <H3>
                    122:   Client Side Authentication
                    123: </H3>
                    124: <P>
                    125: Contains code for parsing challenges and creating credentials for basic and
                    126: digest authentication schemes. See also the <A HREF="HTAAUtil.html">HTAAUtil
2.14    ! frystyk   127: module</A> for how to handle other authentication schemes.
2.11      frystyk   128: <PRE>#include "<A HREF="HTAABrow.html">HTAABrow.h</A>"
2.9       frystyk   129: </PRE>
2.14    ! frystyk   130: <H3>
        !           131:   HTTP Cookies
        !           132: </H3>
        !           133: <P>
        !           134: The <A HREF="HTCookie.html">cookie module</A> provides a simple
        !           135: <A HREF="http://www.netscape.com/newsref/std/cookie_spec.html">HTTP Cookie
        !           136: handling mechanism</A>. It really also is an excersize in showing how libwww
        !           137: can be extended with something like cookies in a modular manner. An important
        !           138: thing to note about this implementation is that it does <EM>not</EM> provide
        !           139: storage for cookies - this is left to the application as normally cookies
        !           140: have to be kept under lock.
        !           141: <PRE>
        !           142: #include "<A HREF="HTCookie.html">HTCookie.h</A>"
        !           143: </PRE>
2.11      frystyk   144: <P>
2.1       frystyk   145: End of HTTP module
                    146: <PRE>
                    147: #ifdef __cplusplus
                    148: } /* end extern C definitions */
                    149: #endif
                    150: 
                    151: #endif
                    152: </PRE>
2.11      frystyk   153: <P>
                    154:   <HR>
2.8       frystyk   155: <ADDRESS>
2.14    ! frystyk   156:   @(#) $Id: WWWHTTP.html,v 2.13 1998/05/04 19:37:51 frystyk Exp $
2.8       frystyk   157: </ADDRESS>
2.11      frystyk   158: </BODY></HTML>

Webmaster