GoServe news - changes by version
This page summarizes the changes made in each new release of GoServe,
starting from release 2.00 (the first HTTP/1.0 version).
For full details on each change, please see the
online reference or GOSERVE.DOC.
2.50 [6 February 1996]
- New SELECTOR option for the QUERY command returns the current
selector.
- New NOTIME option on the HEADER command inhibits automatic
generation of Expires: or Last-Modifed: header lines.
-
Improved handling of erased files -- if a data file is erased, any cache
errors from this will cause the file cache entry to be cleared and the
filter to be called as usual.
-
A dormant connection which is cleared due to LIMITTIMEINACTIVE being
exceeded does not cause the limits count to be incremented (though it
will still be audited).
-
The workaround for the persisent connections TCP/IP problem, as in the
2.48 test version of GoServe, is now included.
2.47 [31 January 1996]
- New CACHED() function lets a filter determine whether a cached
command has been executed before the filter was invoked, and its
returncode if so.
- Audit file handles are not inherited by child processes.
- A work around for a Trap D in TCP/IP, associated with persistent
connections, has been added.
2.45 [8 November 1995]
- Multiple requests per connection are supported, as in 2.42, but
using either the IETF draft proposal or the 'keep-alive' keyword
proposed for HTTP/1.1 and implemented by Netscape and other browsers.
- A new Lazy audit option allows auditing (except of errors)
to be delayed for up to 5 seconds, for better server throughput.
- File command caching is now dependent on the incoming IP address as
well as the selector (URI).
2.42 [21 August 1995]
- Multiple requests per connection are supported, using the proposed
HTTP connection-maintain protocol. A summary of the protocol is
included in the GoServe documentation.
Please note that this protocol is experimental, and may change in
the future.
- Two new Query/Extract items, REQUEST and REQUESTS, return the unique
request number and the number of requests since last reset, respectively.
Note that the TRANSACTION number remains the unique connection number
and continues to be used in the audit file and passed to the filter.
- A new Set/Query/Extract item called LIMITTIMEWAIT has been added.
This limits the length of time that GoServe will hold a connection open,
if asked. The default is 0. That is, only one request per connection
will be accepted.
- The options notebook (and remote-control menus) have been enhanced
to include the new information and limit.
- SET NETBUFFER has been restricted to a single use per connection, to
work around a problem with some TCP/IP configurations.
2.40 [27 June 1995]
- Dynamic document creation allows data to be sent to client
incrementally. Dynamic documents are started by the SEND command, and
ended by SEND COMPLETE. All completion commands (FILE, VAR, STRING,
etc.) may be used within a dynamic document without closing
the connection. SET NETBUFFER OFF may be used to request immediate
transmission of data to the client.
- A simple 'server push' example of a dynamic document has been added
to GOFILTER.80 and the 'Test and control' sample page.
- New WAIT command lets a filter sleep conditionally for a time.
- Query/Extract TRANSACTIONS returns the number of transactions since
reset.
- Query/Extract ELAPSED returns the elapsed time for the current
transaction.
- Operational improvements:
- More 'business as usual' network errors are audited as 'N' lines
rather than as Errors.
- Audit 'C' lines now have a consistent format (sent bytes and times
are always included).
- After being changed, the primary filter will be reloaded after the
server has been idle for ten seconds (was variable).
- HALT or timeout in second-level filter will not cause GoServe to
report failure.
- File command caching now works for GOPHER protocol as well as HTTP.
2.32 [25 May 1995]
- New GoRemote pages provide full Options Notebook function, driven
remotely or locally from any forms-capable Web client.
- New GOREMOTE.80 filter (used for GoRemote) provides samples of
efficient forms processing and 'server-side includes' into the GoRemote
pages.
- New VAR command allows a document or other data to be sent directly
to the client from a Rexx variable (avoiding the need for a temporary
file). 2.32 extends this to arbitrary length data (>32K TCP/IP limit).
- 'Limits exceeded' count is now separated from error counts (that is,
if a timeout or other limit is exceeded, it does not show as an Error).
QUERY/EXTRACT LIMITCOUNT provides access to this count. Limits exceeded
are audited as 'L' lines (rather than 'E').
- New SET, QUERY, and EXTRACT commands, and EXTRACT() function. These
allow access to some dozens of internal GoServe state settings.
- Optional FILE command caching. This allows repeated simple FILE
requests to avoid the call to the filter. This reduces response time to
15ms or less for the sample home page (on a 486/33MHz).
- Network wait times are excluded from Response time measurements.
This makes Response time a more useful indicator of server load and
performance.
- Multiple IP support. GoServe can now support multiple LAN adapters;
the IP address and SERVERNAME reflect which address the client has
connected to.
- Enhanced DATADIR checking (settings that are not a valid directory
will not be accepted).
- Internal changes to improve control and performance; improvements to
documentation, etc.
2.10 [23 Mar 1995]
- The first argument string passed to the filter now includes the port
of the remote client, following the address.
- New CLIENTNAME() function retrieves the name of the remote client.
- Performance improvements and better handling of overload conditions.
2.00 [14 Feb 1995] - initial HTTP/1.0 release.
Mike Cowlishaw
mfc@vnet.ibm.com