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