Commit | Line | Data |
0198fd3c |
1 | <html> |
2 | <head> |
3 | <title>FastCGI Developer's Kit Index Page</title> |
4 | </head> |
5 | |
6 | <body> |
7 | <center> |
8 | <h2>FastCGI Developer's Kit Index Page</h2> |
9 | </center> |
10 | |
11 | <!--Copyright (c) 1996 Open Market, Inc. --> |
12 | <!--See the file "LICENSE.TERMS" for information on usage and redistribution--> |
13 | <!--of this file, and for a DISCLAIMER OF ALL WARRANTIES. --> |
14 | <!-- $Id: index.html,v 1.1 1997/09/16 15:36:25 stanleyg Exp $ --> |
15 | |
16 | <ul> |
17 | <li><a HREF = "doc">doc/</a> |
18 | directory. |
19 | <ul> |
20 | <li><a href = "doc/fastcgi-whitepaper/fastcgi.htm">FastCGI |
21 | Technical White Paper.</a> Start here.<br> |
22 | Motivates FastCGI, then explains the FastCGI interface, |
23 | FastCGI application roles, the FastCGI application |
24 | library, server support for FastCGI, and FastCGI performance. |
25 | <li><a href = "doc/fcgi-perf.htm">Understanding FastCGI |
26 | Application Performance</a> document.<br> |
27 | Why FastCGI applications often run faster than applications |
28 | coded directly to Web server APIs. |
29 | <li><a HREF = "doc/fcgi-devel-kit.htm">FastCGI Developer's Kit</a> |
30 | document.<br> |
31 | <ul> |
32 | <li>Describes how to configure and build the |
33 | kit for your development platform. |
34 | <li>Tells how to write applications using the |
35 | libraries in the kit. |
36 | <li>Documents <tt>cgi-fcgi</tt>, a tool in the kit |
37 | that allows you to develop and test FastCGI applications |
38 | using a Web server that lacks FastCGI support. |
39 | </ul> |
40 | <li><a href = "doc/fastcgi-prog-guide/cover.htm">Open Market |
41 | FastCGI 1.0 Programmer's Guide.</a><br> |
42 | Programmer-oriented documentation for developers of |
43 | applications that run on the Open Market's Secure |
44 | WebServer 2.0. The content overlaps considerably with Section 3 |
45 | of the Developer's Kit document. |
46 | <li><a HREF = "doc/FCGI_Accept.3">FCGI_Accept.3</a>, |
47 | <a HREF = "doc/FCGI_Finish.3">FCGI_Finish.3</a>, |
48 | <a HREF = "doc/FCGI_SetExitStatus.3">FCGI_SetExitStatus.3</a>, |
49 | <a HREF = "doc/FCGI_StartFilterData.3">FCGI_StartFilterData.3</a>, |
50 | and |
51 | <a HREF = "doc/cgi-fcgi.1">cgi-fcgi.1</a> manpages. |
52 | <li><a HREF = "doc/fcgi-perl.htm">Integrating FastCGI with Perl-5</a> |
53 | document.<br> |
54 | How to build FastCGI support into the Perl-5 interpreter |
55 | and how to write FastCGI applications in Perl. |
56 | <li> <a HREF = "doc/fcgi-tcl.htm">Integrating FastCGI with Tcl</a> |
57 | document.<br> |
58 | How to build FastCGI support into the Tcl interpreter |
59 | and how to write FastCGI applications in Tcl. |
60 | <li> <a HREF = "doc/fcgi-java.htm">Integrating FastCGI with Java</a> |
61 | document.<br> |
62 | How to build Web server applications in Java using |
63 | FastCGI. |
64 | <li><a HREF = "doc/www5-api-workshop.html">FastCGI: |
65 | A High-Performance Gateway Interface</a> document.<br> |
66 | Position paper presented at the workshop |
67 | "Programming the Web -- a search for APIs", |
68 | Fifth International World Wide Web Conference, |
69 | 6 May 1996, Paris, France. Short paper, addressed to an |
70 | audience of technical specialists. |
71 | <li><a HREF = "doc/fcgi-spec.html">FastCGI Specification</a> |
72 | document.<br> |
73 | Defines the interface between a FastCGI |
74 | application and a Web server that supports FastCGI. |
75 | This is dry stuff, not needed for writing applications! |
76 | </ul> |
77 | <li><a HREF = "include">include/</a> |
78 | directory.<br> |
79 | .h files for the FastCGI libraries. |
80 | <li><a HREF = "libfcgi">libfcgi/</a> |
81 | directory.<br> |
82 | .c files for the FastCGI libraries. |
83 | <li><a HREF = "examples">examples/</a> |
84 | directory.<br> |
85 | Several example programs. The links below invoke the |
86 | programs. Use the section that corresponds to the |
87 | Web server you have configured for FastCGI: |
88 | <ul> |
89 | <li>Open Market Secure WebServer: |
90 | <ul> |
91 | <li><a href="/apps/echo"><tt>echo</tt></a>, |
92 | an example program that returns a page containing all of its |
93 | inputs -- environment variables and <tt>stdin</tt>. (Source code: |
94 | <a href="examples/echo.c"><tt>echo.c</tt></a>.) |
95 | Notice the FastCGI process ID in the initial |
96 | environment (there are two <tt>echo</tt> processes |
97 | running). Also notice the request variables |
98 | that carry ticketing information (<tt>SI_*</tt>); |
99 | the anonymous ticket has been forced into the URL so you |
100 | can see it. Alter it if you wish -- see what happens. |
101 | <li><a href="/apps/echo-protected"><tt>echo</tt></a>, |
102 | the same program accessed via a URL that is access |
103 | controlled by a simple Authorizer. |
104 | (Source code: |
105 | <a href="examples/tiny-authorizer.c"><tt>tiny-authorizer.c</tt></a>.) |
106 | Authenticate with user ID <tt>fastcgi</tt> and |
107 | password <tt>sano</tt> to gain access. In addition |
108 | to demonstrating Authorizer-based access control, this |
109 | application demonstrates Authorizer-controlled session affinity: |
110 | Use the query string |
111 | <a href="/apps/echo-protected?0"><tt>?0</tt></a> |
112 | to route your request to <tt>echo</tt> process 0, |
113 | and the query string |
114 | <a href="/apps/echo-protected?1"><tt>?1</tt></a> |
115 | to route your request to <tt>echo</tt> process 1. |
116 | <li><a href="/SampleStore/App"><tt>sample-store</tt></a>, |
117 | a more realistic example. (Source code: |
118 | <a href="examples/sample-store.c"><tt>sample-store.c</tt></a>.) |
119 | This shopping cart implementation demonstrates how |
120 | FastCGI applications can get high performance using |
121 | in-memory caching yet preserve data across crashes. |
122 | Request routing is controlled by the anonymous ticket in |
123 | the URL; if you erase your ticket you'll get a new |
124 | shopping cart. Using <tt>ps</tt>, locate and kill the |
125 | two <tt>sample-store</tt> processes; the Web server will |
126 | restart them and the new processes will recover your |
127 | shopping cart. The program also illustrates how a |
128 | single application can play multiple roles. |
129 | </ul> |
130 | <li>NCSA and Apache servers: |
131 | <ul> |
132 | <li><a href="examples/echo.fcg"><tt>echo</tt></a>, |
133 | an example program that returns a page containing all of its |
134 | inputs -- environment variables and <tt>stdin</tt>. (Source code: |
135 | <a href="examples/echo.c"><tt>echo.c</tt></a>.) |
136 | </ul> |
137 | <li>Any Web server, using <tt>cgi-fcgi</tt>: |
138 | <ul> |
139 | <li><a href="examples/echo.cgi"><tt>echo</tt></a>, |
140 | an example program that returns a page containing all of its |
141 | inputs -- environment variables and <tt>stdin</tt>. (Source code: |
142 | <a href="examples/echo.c"><tt>echo.c</tt></a>.) |
143 | </ul> |
144 | </ul> |
145 | <li><a HREF = "perl-5">perl-5/</a> |
146 | directory.<br> |
147 | Bits for building FastCGI-integrated Perl-5 if you can't |
148 | use the already-built Perl-5 interpreters from |
149 | <a href="http://www.fastcgi.com/applibs/perl-5">www.fastcgi.com</a>. |
150 | <li><a HREF = "tcl">tcl/</a> |
151 | directory.<br> |
152 | Bits for building FastCGI-integrated Tcl if you can't |
153 | use the already-built Tcl interpreters from |
154 | <a href="http://www.fastcgi.com/applibs/tcl">www.fastcgi.com</a>. |
155 | <li><a HREF = "java/src">java/src</a> |
156 | directory.<br> |
157 | Source code for FastCGI Java classes. |
158 | <li><a HREF = "cgi-fcgi">cgi-fcgi/</a> |
159 | directory.<br> |
160 | .c file for the CGI-to-FastCGI bridge. |
161 | </ul> |
162 | |
163 | <hr> |
164 | <address> |
165 | © 1996, Open Market, Inc. |
166 | </address> |
167 | |
168 | </body> |
169 | </html> |