GoAhead® WebServer 2.1 Release NotesRelease Date: 5/23/00 These notes provides release-specific information for the May, 2000 release of GoAhead WebServer 2.1. Please see the License Agreement as well as the online documentation included with this WebServer release. Table of Contents
1. What's New in This Release?WebServer 2.1 differs as follows from release 2.0:
Secure Socket LayerWebServer 2.1 supports Secure Socket Layering (SSL), a protocol created by Netscape Communications Corporation for authentication and encryption over TCP/IP networks. SSL is, for the most part, invisible to the end user. The web browser may notify the user that they are about to enter a secure web page, and perhaps use a visual cue to indicate the duration that SSL is active. The HTTPS prefix on the URL (https://www.goahead.com) indicates that the SSL protocol will be used. SSL uses two layers: the SSL Message Layer and the SSL Record Layer. The Message Layer constructs and sends user data, handshake messages, alert messages, and change cipher specification messages. Its primary task is to set up the mutual understanding required by both client and server for the SSL Record Layer, which is responsible for sending SSL data records. Digest Access AuthenticationWebServer 2.1 supports digest access authentication (DAA), which is an authentication scheme for HTTP that is more secure than the basic access authentication scheme. The primary advantage of DAA is that , unlike basic access authentication, passwords are never transmitted across the Internet in an unencrypted form. The web browser presentation for DAA is essentially the same as for basic access authentication. The user typically is prompted for a user ID and password before being allowed access to a URL. In basic access, passwords are sent as clear text. In digest access, the user ID and password are encrypted using the RSA Data Security, Inc. MD5 Message-Digest Algorithm before being sent. User ManagementIn password protected sites, multiple user IDs with multiple levels of security may be necessary. In WebServer 2.1, these include:
A User ID contains these data elements:
User Groups contain these data elements:
URL Access Limits are used when certain directories or URL pages on the web site have exceptionally secure access limits. If a directory has an access limit associated with it, its contents default to the directories access limit. URL Access Limits have the following data elements:
By default, there are no user functions that require administrator privilege; however, the following functions could be configured to require administrator privileges if that level of security is necessary in your application:
User Management Page AccessWhenever a browser requests a page, WebServer checks to see if there is an AccessLimit assigned to the requested page. Access Limits are stored in the umconfig.txt file located in the operating system directory where WebServer 2.1 was installed. If no user group is assigned to the access limit, then the default privilege takes effect with WebServer taking the following actions:
If a user group is assigned to the access limit, then WebServer:
New User Management APIsThese APIs are new to WebServer 2.1:
Standard CGI ImplementationNote: CGI is not supported in Windows CE. The Common Gateway Interface (CGI) is a standard for interfacing external applications with information servers, such as HTTP or Web servers. A plain HTML document retrieved by a Web daemon is a static text file that doesn't change. A CGI program, on the other hand, is executed in real-time and able to output dynamic content. CGI scripts are written in any language that can read STDIN, write to STDOUT, and read environment variables. This means that virtually any programming language can be used, including C, Perl, or even shell scripting. Note: this WebServer documentation does not provide instructions on how to write CGI scripts for processing Web forms; however, numerous books and Websites are readily available that do an excellent job in covering this basic information. In WebServer 2.0, GoForms CGI processing was accomplished by instructing the webs module to treat all URLs beginning with "/goform" as GoForms. Using a similar mechanism, WebServer 2.1 has a new "handler" that is called when URL requests are received for URLs beginning with "/cgi-bin". CGI executable processes must be located in the WebServer's cgi-bin subdirectory. Separate processes will be created for each CGI request. Environment VariablesInput to Standard CGIs is accomplished mainly through these environment variables:
SERVER_SOFTWARE SERVER_NAME
GATEWAY_INTERFACE SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST REMOTE_ADDR AUTH_TYPE REMOTE_USER REMOTE_IDENT CONTENT_TYPE CONTENT_LENGTH HTTP_ACCEPT HTTP_USER_AGENT Standard CGI Implementation Data StructuresThe data structures provided for GoForms function for standard CGI implementation. 2. Operating System Support
3. Feature Support
4. Compiling and Running GoAhead WebServer 2.1This release supports compiling and running the GoAhead WebServer under WindRiver VxWorks, Windows 95, 98, 2000, NT, and CE, LynxOS, LINUX, and eCos. Before trying to build the GoAhead WebServer, ensure that you have the latest version from GoAhead by checking http://www.goahead.com/webserver. Each supported platform has an operating system subdirectory, which includes a Makefile for building, and a main program for invoking and initializing the GoAhead WebServer. To build and run WebServer, change to the relevant operating system directory and use "make" or the instructions below to initiate the build. Some of the make or batch files may need to be modified for the configuration of your system or the target system. See Configuring the GoAhead WebServer below. Installation NotesUser Management Standard CGI Implementation Operating SystemsFor VxWorks: cd VXWORKS setpath make The above commands build for an x86 platform. If you are building for a Power PC 604 platform, use "ppcpath" and "make -f Makefile.ppc" instead. For other platforms, modify setpath.bat to set the PATH environment variable for your development environment and target device. Modify the compiler flags and options in Makefile to build for your specific target device. Load webs.o onto the target system and use standard VxWorks procedures to load the program into memory and execute it (load module and task spawn). To terminate WebServer so that it can be restarted without being reloaded, send a SIGTERM or SIGKILL signal to the WebServer task by using the "kill" API with signal numbers 15 or 9 respectively. Never use the taskDelete or td APIs when you plan on restarting WebServer. For Windows NT: cd WIN nmake /f webs.mak webs To stop WebServer, right click on the taskbar icon for the GoAhead WebServer and select "Close". For Windows 95, 98, 2000: cd WIN setpath (NOTE: Users of Visual Studio 6.0 may not need to use this command to set their environment path.) nmake /f webs.mak webs Modify setpath.bat to set PATH environment variable for your development environment. To stop WebServer, right click on the taskbar icon for the GoAhead WebServer and select "Close". If using Microsoft Visual Studio:
Note for users of Microsoft Visual C++: If you see the following Setup Environment Variables message after installing Visual C++, use the Visual C++ instructions provided below BEFORE building and running GoAhead WebServer. Setup Environment Variables message: "For your convenience, the environment variables required to run build tools from a command prompt are saved in the VCVARS32.BAT file in your BIN directory." Visual C++ Instructions: 1. Copy the VCVARS32.BAT file to your root directory (usually C:\). For Windows CE: Either of two different methods may be used to build the Windows CE WebServer: Using build.bat:
Using Microsoft's C++ Visual Studio:
Note: By default, user management and digest access are not added when WebServer compiles. If these features are desired, set the proper flags in the build.bat file. For LINUX: cd LINUX make su;# As super user ./webs For LYNX: cd LYNX make su;# As super user ./webs For eCos: cd ECOS make su;# As super user webs For QNX: CD QNX4 make su ;# As super user webs 5. Accessing the WebServer Home Page (Windows)1. Launch your browser on the same system as WebServer. 2. Launch GoAhead WebServer using web.exe (located in the folder for your OS,
e.g., WIN).
3. In the browser's Address field enter "http://[YOURHOSTNAME]" or
"http://[YOURIPADDRESS]
To determine your system's host name or IP address, at the command prompt type either "hostname" <enter> or "ipconfig" <enter> (for Win95, instead use "winipcfg" to see the IP address). 4. The server's default home page is home.asp. Configuring the GoAhead WebServerYou can customize the configuration of the GoAhead WebServer by changing the compiler defines in the per-operating system Makefile. The following defines are relevant:
In all cases, the symbolic constants UEMF and WEBS must be defined in the command line arguments to the compiler. The symbolic constant UNICODE needs to be defined for Windows CE compilations or any other builds that need to use unicoded character strings. Please see the WebServer online documentation for more detailed configuration instructions. You should also customize the per-operating system main.c startup program. For example, the Windows main program is under WIN/main.c. This main program defines the HTTP port, password, web page directory, default error handling, and default trace message handling, among other things. It is expected that you will use this program as the basis for integrating the source into your real-time operating environment. For VXWORKS, you may need to change the CC, LD definitions in VXWORKS/Makefile if you are using a different BSP. Also you will need to change the variable ROOT_DIR in main.c to reflect the name of the root directory for your file system. When editing source files, set your tab stop setting to 4. 6. GoAhead WebCompilerThe WebCompiler creates ROMable C source code for a set of Web pages. The WebCompiler takes as input a list of files and a prefix to strip off the web page filenames. It writes to its standard output a C source file representing the web pages. For example: webcomp /mydir file.list >webrom.c The first parameter is the prefix to remove from all the files in the file.list. The standard Makefiles are already setup to compile webrom.c. Please see Configuring GoAhead WebServer above for instructions on enabling ROM access. 7. GoAhead WebServer ExtensionsIf you create some great extensions and applications based upon the GoAhead WebServer and want to make them freely available to the WebServer community, you can add them to an archive of user contributions that is maintained on the GoAhead web site. Please submit postings to webservercode@goahead.com for posting to the archive. 8. Known Issues in WebServer 2.1Refer to GoAhead's on-line support for WebServer at http://goahead.custhelp.com/cgi-bin/goahead for current WebServer issues.
9. Resolved Issues in WebServer 2.1
10. Resolved Issues from WebServer 2.0
11. Copyright InformationTrademarksGoAhead and GoAhead WebServer are registered trademarks of GoAhead Software. All other brand or product names are the trademarks or registered trademarks of their respective holders. CopyrightCopyright © 1999, 2000 GoAhead Software, Inc. All rights reserved. Product and technical information in this document is subject to change without notice and does not represent a commitment on the part of GoAhead Software, Inc. Copy RestrictionsThe software described in this document may be used and copied only in accordance with the terms of the accompanying license agreement. GoAhead Software, Inc.
|