W X W E B
*********

Features...

- SSL enabled.

- Free, portable (WIN32 and Unix XView/Motif).

- Includes FRAMES, TABLES, FORMS and everything I can find time to add.

- Supports GIF, PNG & JPEG (MSW only), also WAV and AVI files under MSW.

- Proxies, (persistent) caching, persistent connections (from HTTP/1.1)

- FTP via proxy servers.

- Basic authentication scheme for userid & passwords.

- Site-wide link verification.

- Grab mode for downloading whole or partial sites.

- Site generator tool for adding generic content, style, headers, footers,
  navigation bars, multi-style views etc.

- SMPTP and POP3 client code.

- Available as a class library for inclusion in your own applications
  or as a stand-alone web browser.


The wxHtml class
----------------

This class provides, in it's most basic form, a rich-text viewer and
hypertext engine with HTML as it's markup language. However the
required functionality has been added to perform URL lookup & caching.
This class is derived from wxPanel (except under XView where it derives
from wxCanvas) and implements scrolling (which wxPanel does not).

This has now been split into wxHtml (which does basic parsing & hypertext)
and wxWWW which adds URL fetching and caching (i.e. all the HTTP stuff).


The wxWeb client program
------------------------

This is a simple framework for interactively controlling a wxHtml
object from a menu. As such it constitutes a simple Web browser. A
much more interesting alternative is to embed a wxHtml object in your
own application and thus make it Web aware.


The wxHttpd server program
--------------------------

As an aid to development I needed a simple Web server so that I could
see what was going on. It handles multiple simultanenous connections,
supports HTTP/1.0 and extensions such as keep-alives (which most freeware
and many commercial servers don't, and greatly increases efficiency).
It DOES NOT support standard CGI and will never do so... get a real
web server!


To build
--------

1. On a command-line (DOS or Unix) enter...

	unzip wxwebXXX.zip		# DOS
or
	unzip -La wxwebXXX.zip		# Unix


Note: don't use PKZIP, use the better (and free) ZIP package.

2. Change to the 'client' sub-directory. Use the supplied makefile and
build...

	nmake FINAL=1 -f makefile.nt	# WIN95 or NT with MSVC++
or
	nmake FINAL=1 -f makefile.b32	# WIN95 or NT with BC++
or
	make -f makefile.unx motif	# Unix with Motif
or
	make -f makefile.unx xview	# Unix with Xview

then run the wxweb executable. For example, if using the
wxhttpd server then simply enter...

      wxweb [URL]

...and point and click. You may need to go into Options|Configure
in order to setup proxies if behind a firewall or your ISP uses
them.

3. Change to the 'server' sub-directory. Use the supplied makefile
and build as in (2) above. Then run the wxhttpd executable (will need
to be SU under Unix if using the default port number of 80).
THIS IS OPTIONAL.

Note
----

You will of course need a copy of wxWindows (1.63 or later, or 1.65 at
least for Windows 95 or NT) in order to compile the source. See...

      http://www.aiai.ed.ac.uk/~jacs/wxwin.html

for details.


Writing WX-CGI programs
-----------------------

WX-CGI was an attempt at a FAST-CGI style protocol (before I ever heard
of FAST-CGI of course), but I don't think it is currently in working
order.

In the server/cgi directory is a sample program called 'SURVEY' that
responds to a simple query form (see server/document/survey.html).
This program is meant to illustrate and document the technique of
writing a WX-CGI program and serves as a template for writing others.
It doesn't do anything with the data it is sent, but it would be nice
to oneday  use the wxODBC classes perhaps to build a simple database
and return some statistics.

When a WX-CGI program is executed the port number will passed as the
first command-line argument, and the keepalive-timeout value as the
second. Request data will be passed in via a socket and the response
data will be returned via the same socket in standard HTTP/1.0 format.


8) Disclaimer
-------------

Not everything works. Notably transparent GIFs for X-Windows, JPEGs
(never sorted out the compilation issues), and of course real CGI.





Andrew Davison
http://www.ozemail.com.au/~adavison/wxweb.html
mailto:adavison@s054.aone.net.au



