Annotation of libwww/Library/src/HTTP.html, revision 2.40

2.40    ! kahan       1: <HTML> 
2.6       timbl       2: <HEAD>
2.33      frystyk     3:   <!-- Changed by: Henrik Frystyk Nielsen, 17-May-1996 -->
2.36      frystyk     4:   <TITLE>W3C Sample Code Library libwww HTTP Client</TITLE>
2.13      frystyk     5: </HEAD>
2.6       timbl       6: <BODY>
2.33      frystyk     7: <H1>
                      8:   Multi Threaded HyperText Tranfer Protocol Client Module
                      9: </H1>
2.13      frystyk    10: <PRE>
                     11: /*
2.18      frystyk    12: **     (c) COPYRIGHT MIT 1995.
2.13      frystyk    13: **     Please first read the full copyright statement in the file COPYRIGH.
                     14: */
                     15: </PRE>
2.33      frystyk    16: <P>
2.35      frystyk    17: This is the HTTP client module. This is actually a very small definition
                     18: file as almost everything is set up elsewhere.
2.33      frystyk    19: <P>
                     20: This module is implemented by <A HREF="HTTP.c">HTTP.c</A>, and it is a part
2.38      frystyk    21: of the <A HREF="http://www.w3.org/Library/">W3C Sample Code Library</A>.
2.9       frystyk    22: <PRE>
                     23: #ifndef HTTP_H
2.1       timbl      24: #define HTTP_H
2.15      frystyk    25: 
2.34      frystyk    26: #include "HTProt.h"
2.26      frystyk    27: #include "HTStream.h"
2.35      frystyk    28: </PRE>
                     29: <H3>
                     30:   HTTP Client Connection Mode
                     31: </H3>
                     32: <P>
                     33: The HTTP client module supports various modes for communicating with HTTP
                     34: servers. The mode are defined by the enumeration below.
                     35: <PRE>
                     36: typedef enum _HTTPConnectionMode { 
2.37      frystyk    37:     HTTP_11_PIPELINING     = 0x1,
                     38:     HTTP_11_NO_PIPELINING  = 0x2, 
                     39:     HTTP_11_MUX            = 0x4,
                     40:     HTTP_FORCE_10          = 0x8
2.35      frystyk    41: } HTTPConnectionMode; 
2.9       frystyk    42: 
2.35      frystyk    43: extern void HTTP_setConnectionMode (HTTPConnectionMode mode);
                     44: extern HTTPConnectionMode HTTP_connectionMode (void);
                     45: </PRE>
                     46: <H3>
2.39      frystyk    47:   HTTP Write Delay of Content Bodies
                     48: </H3>
                     49: <P>
                     50: Because of the differences between HTTP/1.0 and HTTP/1.1, HTTP <TT>PUT</TT>
                     51: and <TT>POST</TT> requests can not be dealt with in non-preemptive mode -
                     52: they have to use timers and hence must be in preemptive mode.
                     53: <P>
                     54: The default write mechanism used is first to write the headers and then wait
                     55: for a period of time before writing the body. This often allows the server
                     56: to respond before we start sending data accross the wire. If the write for
                     57: some reason fails in a bad way then we try again, waiting a little bit longer
                     58: this time as this may give the server enough time to think.
                     59: <P>
                     60: The default wait periods are 2000ms for the first wait and 3000ms if that
                     61: fails. These are rather conservative values but can be changed by using these
                     62: functions. The second try value must be larger (or equal) to the first try
                     63: value and the first try value must be larger than 20 ms.
                     64: <PRE>extern BOOL HTTP_setBodyWriteDelay (ms_t first_try, ms_t second_try);
                     65: extern void HTTP_bodyWriteDelay (ms_t * first_try, ms_t * second_try);
                     66: </PRE>
                     67: <H3>
2.35      frystyk    68:   HTTP Event Handler
                     69: </H3>
                     70: <P>
                     71: The event handler is the actual HTTP client state machine taking care of
                     72: the communication.
                     73: <PRE>
2.34      frystyk    74: extern HTProtCallback HTLoadHTTP;
2.26      frystyk    75: extern HTConverter HTTPStatus_new;
2.10      frystyk    76: 
2.6       timbl      77: #endif /* HTTP_H */
2.9       frystyk    78: </PRE>
2.33      frystyk    79: <P>
                     80:   <HR>
2.29      frystyk    81: <ADDRESS>
2.40    ! kahan      82:   @(#) $Id: HTTP.html,v 2.39 1998/11/19 17:03:24 frystyk Exp $
2.29      frystyk    83: </ADDRESS>
2.33      frystyk    84: </BODY></HTML>

Webmaster