Return-Path:
- Version 1.3 of the Apache HTTP Server is the first version which
+ As of Version 1.3, the Apache HTTP Server
includes a port to (non-ASCII) mainframe machines which use
the EBCDIC character set as their native codeset.
- The port was started initially to
-
- This document serves as a rationale to describe some of the design
- decisions of the port to this machine.
-
+ On an EBCDIC based system, HTML files and other text files are
+ usually saved encoded in the native EBCDIC code set, while image
+ files and other binary data are stored with identical encoding as
+ on ASCII based machines. When the Apache server accesses documents,
+ it must therefore make a distinction between text files (to be
+ converted to/from ASCII, depending on the transfer direction)
+ and binary files (to be delivered unconverted).
+ Such a distinction can be made based on the assigned MIME type, or
+ based on the file extension (i.e., files sharing a common file
+ suffix).
+
+ By default, the configuration is symmetric for input and output
+ (i.e., when a PUT request is executed for a document which was
+ returned by a previous GET request, then the resulting uploaded
+ copy should be identical to the original file). However, the
+ conversion directives allow for specifying different conversions
+ for input and output.
+
+ The directives EBCDICConvert and
+ EBCDICConvertByType are used to
+ assign the conversion setting (On or Off) based on file
+ extensions or MIME types. Each configuration setting can be defined
+ for input only (e.g., PUT method), output only (e.g., GET method),
+ or both input and output. By default, the conversion setting is
+ applied for input and output.
+
+ Note that after modifying the conversion settings for a group of
+ files, it is not sufficient to restart the server. The reason for
+ this is the fact that a cached copy of a document (in a browser or
+ proxy cache) will not get revalidated by contents, but only by
+ date. Since the modification time of the document did not change,
+ browsers will assume they can reuse the cached copy.
+ Note also that server-parsed documents (CGI scripts, .shtml files,
+ and other interpreted files like PHP scripts etc.) are not subject to
+ any input conversion and must therefore be stored in EBCDIC form
+ on the server side.
+
+ In absense of any
+ EBCDICConvertByType directive,
+ and if no matching EBCDICConvert was
+ found, Apache falls back to an internal heuristic which assumes
+ that all documents with MIME types starting with
+ "text/", "message/" or
+ "multipart/" as well as the MIME type
+ "application/x-www-form-urlencoded" are text documents
+ stored in EBCDIC, whereas all other documents are binary files.
+
+ In order to provide backward compatibility with older versions of
+ apache, the EBCDICKludge directive
+ allows for a less powerful mechanism to control the conversion of
+ documents to and from EBCDIC.
+
+ Note:Overview of the Apache EBCDIC Port
(Initially, that support covered only the Fujitsu-Siemens family of
@@ -27,42 +27,148 @@
systems TPF and OS/390 were added).
-
-
+EBCDIC-related conversion functions
-
+
+
+ To recover from this situation, you must either clear all cached
+ copies (browser and proxy cache!), or update the modification time
+ of the documents (using the touch
command on the server).
+
+ The EBCDICKludge directive is deprecated, since its functionality
+ is superseded by the more powerful
+ EBCDICConvert and
+ EBCDICConvertByType
+ directives.
+
+ The directives are applied in the following order: +
- One objective of the EBCDIC port was to maintain enough backwards - compatibility with the (EBCDIC) CERN server to make the transition to - the new server attractive and easy. This required the addition of - a configurable method to define whether a HTML document was stored - in ASCII (the only format accepted by the old server) or in EBCDIC - (the native document format in the POSIX subsystem, and therefore - the only sensible format in which the other POSIX tools like grep - or sed could operate on documents). Later, special EBCDIC conversion - directives were added which allow for the flexible definition of - conversion rules based on the documents' MIME type or file extension. -
+Since all Apache input and output is based upon the BUFF data type and its methods, the easiest solution was to add the actual @@ -111,7 +217,8 @@ requests. (See RFC2616 and src/main/http_protocol.c for details.) -
EBCDICConvertByType {On|Off}[={In|Out|InOut}] mimetype [...] EBCDICConvert {On|Off}[={In|Out|InOut}] fileext [...] @@ -219,8 +327,10 @@
When exchanging binary files between the mainframe host and a @@ -242,6 +352,8 @@
SSI documents must currently be stored in EBCDIC only. No provision is made to convert them from ASCII before processing. + The same holds for other interpreted languages, like + mod_perl or mod_php.
1.188 +7 -128 httpd-docs-1.3/htdocs/manual/mod/core.html Index: core.html =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/mod/core.html,v retrieving revision 1.187 retrieving revision 1.188 diff -u -u -r1.187 -r1.188 --- core.html 2001/05/04 22:38:24 1.187 +++ core.html 2001/05/08 11:38:48 1.188 @@ -796,134 +796,6 @@- On an EBCDIC based system, HTML files and other text files are - usually saved encoded in the native EBCDIC code set, while image - files and other binary data are stored with identical encoding as - on ASCII based machines. When the Apache server accesses documents, - it must therefore make a distinction between text files (to be - converted to/from ASCII, depending on the transfer direction) - and binary files (to be delivered unconverted). - Such a distinction can be made based on the assigned MIME type, or - based on the file extension (i.e., files sharing a common file - suffix). -
- -- By default, the configuration is symmetric for input and output - (i.e., when a PUT request is executed for a document which was - returned by a previous GET request, then the resulting uploaded - copy should be identical to the original file). However, the - conversion directives allow for specifying different conversions - for input and output. -
- -- The directives EBCDICConvert and - EBCDICConvertByType are used to - assign the conversion setting (On or Off) based on file - extensions or MIME types. Each configuration setting can be defined - for input only (e.g., PUT method), output only (e.g., GET method), - or both input and output. By default, the conversion setting is - applied for input and output. -
- -
- Note that after modifying the conversion settings for a group of
- files, it is not sufficient to restart the server. The reason for
- this is the fact that a cached copy of a document (in a browser or
- proxy cache) will not get revalidated by contents, but only by
- date. Since the modification time of the document did not change,
- browsers will assume they can reuse the cached copy.
- To recover from this situation, you must either clear all cached
- copies (browser and proxy cache!), or update the modification time
- of the documents (using the touch
command on the server).
-
- In absense of any - EBCDICConvertByType directive, - and if no matching EBCDICConvert was - found, Apache falls back to an internal heuristic which assumes - that all documents with MIME types starting with - "text/", "message/" or - "multipart/" as well as the MIME type - "application/x-www-form-urlencoded" are text documents - stored in EBCDIC, whereas all other documents are binary files. -
- -- In order to provide backward compatibility with older versions of - apache, the EBCDICKludge directive - allows for a less powerful mechanism to control the conversion of - documents to and from EBCDIC. -
- -- Note:
- The EBCDICKludge directive is deprecated, since its functionality - is superseded by the more powerful - EBCDICConvert and - EBCDICConvertByType - directives.- - -
- The directives are applied in the following order: -
See also: EBCDICConvertByType + and Overview of the EBCDIC Conversion Functions
See also: EBCDICConvert + and Overview of the EBCDIC Conversion Functions
+ See also: EBCDICConvert, + EBCDICConvertByType + and Overview of the EBCDIC Conversion Functions