diff --git a/EWSGI-specification.md b/EWSGI-specification.md index 0aa33cd8..e4f10d1a 100644 --- a/EWSGI-specification.md +++ b/EWSGI-specification.md @@ -103,31 +103,46 @@ Or to register handlers for specific URL paths (or regexp based URL path express Result.set_status (Http_notund) end end - e ¶nd + end end ## Specification Details -Required information in the ENVIRONMENT class. +Required information in the **ENVIRONMENT** class. + +The **ENVIRONMENT** class is required to provide features for accesing CGI environment variables, as defined by the [Common Gateway Interface specification](http://ken.coar.org/cgi/draft-coar-cgi-v11-03.txt). The following variables must be present. -The ENVIRONMENT class is required to provide features for accesing CGI environment variables, as defined by the Common Gateway Interface specification. The following variables must be present. Variable Description + auth_type: STRING "Basic", "Digest" or some other token. + request_method: STRING The HTTP request method, such as "GET" or "POST". + script_name: STRING The initial portion of the request URL's "path" that corresponds to the application object, so that the application knows its virtual "location". This may be an empty string, if the application corresponds to the "root" of the server. + path_info: STRING The remainder of the request URL's "path", designating the virtual "location" of the request's target within the application. This may be an empty string, if the request URL targets the application root and does not have a trailing slash. + query_string: STRING The portion of the request URL that follows the "?", if any. + content_type: STRING The contents of any Content-Type fields in the HTTP request. May be empty. + content_length: STRING The contents of any Content-Length fields in the HTTP request. May be empty. + server_name, server_port: STRING When combined with script_name and path_info, these variables can be used to complete the URL. Note, however, that HTTP_HOST, if present, should be used in preference to server_name for reconstructing the request URL. See the URL Reconstruction section below for more detail. server_name and server_port can never be empty strings. + server_protocol: STRING The version of the protocol the client used to send the request. Typically this will be something like "HTTP/1.0" or "HTTP/1.1" and may be used by the application to determine how to treat any HTTP request headers. (This variable should probably be called request_protocol, since it denotes the protocol used in the request, and is not necessarily the protocol that will be used in the server's response. However, for compatibility with CGI we have to keep the existing name.) + http_variables: HASH_TABLE [STRING, STRING] Variables corresponding to the client-supplied HTTP request headers (i.e., variables whose names begin with "HTTP_"). The presence or absence of these variables should correspond with the presence or absence of the appropriate HTTP header in the request. Required information in the RESPONSE class. -Implementation/Application Notes ¶ +## Implementation/Application Notes For an Eiffel system to run it needs to be compiled to a executable program or shared library (.so/.dll). For supporting CGI all that is needed is an executable program, For FCGI and EWSGI we need to compile the Eiffel system to a shared library. -Questions and Answers ¶ -Proposed/Under Discussion ¶ -Acknowledgements ¶ -References ¶ \ No newline at end of file + +## Questions and Answers + +## Proposed/Under Discussion + +## Acknowledgements + +## References \ No newline at end of file