⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2046.txt

📁 C/C++语言的CGI接口库
💻 TXT
📖 第 1 页 / 共 5 页
字号:
          Message receiving and displaying software should          disable the ability to change system and device          parameters.  If these operators cannot be completely          disabled the password associated with them should at          least be set to a hard-to-guess value.    (4)   Some PostScript implementations provide nonstandard          facilities for the direct loading and execution of          machine code.  Such facilities are quite obviously open          to substantial abuse.  Message sending software should          not make use of such features.  Besides being totally          hardware-specific, they are also likely to be          unavailable in secure implementations of PostScript.          Message receiving and displaying software should not          allow such operators to be used if they exist.    (5)   PostScript is an extensible language, and many, if not          most, implementations of it provide a number of their          own extensions.  This document does not deal with such          extensions explicitly since they constitute an unknown          factor.  Message sending software should not make use          of nonstandard extensions; they are likely to be          missing from some implementations.  Message receiving          and displaying software should make sure that any          nonstandard PostScript operators are secure and don't          present any kind of threat.    (6)   It is possible to write PostScript that consumes huge          amounts of various system resources.  It is also          possible to write PostScript programs that loop          indefinitely.  Both types of programs have the          potential to cause damage if sent to unsuspecting          recipients.  Message-sending software should avoid the          construction and dissemination of such programs, which          is antisocial.  Message receiving and displaying          software should provide appropriate mechanisms to abort          processing after a reasonable amount of time has          elapsed. In addition, PostScript interpreters should be          limited to the consumption of only a reasonable amount          of any given system resource.Freed & Borenstein          Standards Track                    [Page 16]RFC 2046                      Media Types                  November 1996    (7)   It is possible to include raw binary information inside          PostScript in various forms.  This is not recommended          for use in Internet mail, both because it is not          supported by all PostScript interpreters and because it          significantly complicates the use of a MIME Content-          Transfer-Encoding.  (Without such binary, PostScript          may typically be viewed as line-oriented data.  The          treatment of CRLF sequences becomes extremely          problematic if binary and line-oriented data are mixed          in a single Postscript data stream.)    (8)   Finally, bugs may exist in some PostScript interpreters          which could possibly be exploited to gain unauthorized          access to a recipient's system.  Apart from noting this          possibility, there is no specific action to take to          prevent this, apart from the timely correction of such          bugs if any are found.4.5.3.  Other Application Subtypes   It is expected that many other subtypes of "application" will be   defined in the future.  MIME implementations must at a minimum treat   any unrecognized subtypes as being equivalent to "application/octet-   stream".5.  Composite Media Type Values   The remaining two of the seven initial Content-Type values refer to   composite entities.  Composite entities are handled using MIME   mechanisms -- a MIME processor typically handles the body directly.5.1.  Multipart Media Type   In the case of multipart entities, in which one or more different   sets of data are combined in a single body, a "multipart" media type   field must appear in the entity's header.  The body must then contain   one or more body parts, each preceded by a boundary delimiter line,   and the last one followed by a closing boundary delimiter line.   After its boundary delimiter line, each body part then consists of a   header area, a blank line, and a body area.  Thus a body part is   similar to an RFC 822 message in syntax, but different in meaning.   A body part is an entity and hence is NOT to be interpreted as   actually being an RFC 822 message.  To begin with, NO header fields   are actually required in body parts.  A body part that starts with a   blank line, therefore, is allowed and is a body part for which all   default values are to be assumed.  In such a case, the absence of a   Content-Type header usually indicates that the corresponding body hasFreed & Borenstein          Standards Track                    [Page 17]RFC 2046                      Media Types                  November 1996   a content-type of "text/plain; charset=US-ASCII".   The only header fields that have defined meaning for body parts are   those the names of which begin with "Content-".  All other header   fields may be ignored in body parts.  Although they should generally   be retained if at all possible, they may be discarded by gateways if   necessary.  Such other fields are permitted to appear in body parts   but must not be depended on.  "X-" fields may be created for   experimental or private purposes, with the recognition that the   information they contain may be lost at some gateways.   NOTE:  The distinction between an RFC 822 message and a body part is   subtle, but important.  A gateway between Internet and X.400 mail,   for example, must be able to tell the difference between a body part   that contains an image and a body part that contains an encapsulated   message, the body of which is a JPEG image.  In order to represent   the latter, the body part must have "Content-Type: message/rfc822",   and its body (after the blank line) must be the encapsulated message,   with its own "Content-Type: image/jpeg" header field.  The use of   similar syntax facilitates the conversion of messages to body parts,   and vice versa, but the distinction between the two must be   understood by implementors.  (For the special case in which parts   actually are messages, a "digest" subtype is also defined.)   As stated previously, each body part is preceded by a boundary   delimiter line that contains the boundary delimiter.  The boundary   delimiter MUST NOT appear inside any of the encapsulated parts, on a   line by itself or as the prefix of any line.  This implies that it is   crucial that the composing agent be able to choose and specify a   unique boundary parameter value that does not contain the boundary   parameter value of an enclosing multipart as a prefix.   All present and future subtypes of the "multipart" type must use an   identical syntax.  Subtypes may differ in their semantics, and may   impose additional restrictions on syntax, but must conform to the   required syntax for the "multipart" type.  This requirement ensures   that all conformant user agents will at least be able to recognize   and separate the parts of any multipart entity, even those of an   unrecognized subtype.   As stated in the definition of the Content-Transfer-Encoding field   [RFC 2045], no encoding other than "7bit", "8bit", or "binary" is   permitted for entities of type "multipart".  The "multipart" boundary   delimiters and header fields are always represented as 7bit US-ASCII   in any case (though the header fields may encode non-US-ASCII header   text as per RFC 2047) and data within the body parts can be encoded   on a part-by-part basis, with Content-Transfer-Encoding fields for   each appropriate body part.Freed & Borenstein          Standards Track                    [Page 18]RFC 2046                      Media Types                  November 19965.1.1.  Common Syntax   This section defines a common syntax for subtypes of "multipart".   All subtypes of "multipart" must use this syntax.  A simple example   of a multipart message also appears in this section.  An example of a   more complex multipart message is given in RFC 2049.   The Content-Type field for multipart entities requires one parameter,   "boundary". The boundary delimiter line is then defined as a line   consisting entirely of two hyphen characters ("-", decimal value 45)   followed by the boundary parameter value from the Content-Type header   field, optional linear whitespace, and a terminating CRLF.   NOTE:  The hyphens are for rough compatibility with the earlier RFC   934 method of message encapsulation, and for ease of searching for   the boundaries in some implementations.  However, it should be noted   that multipart messages are NOT completely compatible with RFC 934   encapsulations; in particular, they do not obey RFC 934 quoting   conventions for embedded lines that begin with hyphens.  This   mechanism was chosen over the RFC 934 mechanism because the latter   causes lines to grow with each level of quoting.  The combination of   this growth with the fact that SMTP implementations sometimes wrap   long lines made the RFC 934 mechanism unsuitable for use in the event   that deeply-nested multipart structuring is ever desired.   WARNING TO IMPLEMENTORS:  The grammar for parameters on the Content-   type field is such that it is often necessary to enclose the boundary   parameter values in quotes on the Content-type line.  This is not   always necessary, but never hurts. Implementors should be sure to   study the grammar carefully in order to avoid producing invalid   Content-type fields.  Thus, a typical "multipart" Content-Type header   field might look like this:     Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08j34c0p   But the following is not valid:     Content-Type: multipart/mixed; boundary=gc0pJq0M:08jU534c0p   (because of the colon) and must instead be represented as     Content-Type: multipart/mixed; boundary="gc0pJq0M:08jU534c0p"   This Content-Type value indicates that the content consists of one or   more parts, each with a structure that is syntactically identical to   an RFC 822 message, except that the header area is allowed to be   completely empty, and that the parts are each preceded by the lineFreed & Borenstein          Standards Track                    [Page 19]RFC 2046                      Media Types                  November 1996     --gc0pJq0M:08jU534c0p   The boundary delimiter MUST occur at the beginning of a line, i.e.,   following a CRLF, and the initial CRLF is considered to be attached   to the boundary delimiter line rather than part of the preceding   part.  The boundary may be followed by zero or more characters of   linear whitespace. It is then terminated by either another CRLF and   the header fields for the next part, or by two CRLFs, in which case   there are no header fields for the next part.  If no Content-Type   field is present it is assumed to be "message/rfc822" in a   "multipart/digest" and "text/plain" otherwise.   NOTE:  The CRLF preceding the boundary delimiter line is conceptually   attached to the boundary so that it is possible to have a part that   does not end with a CRLF (line  break).  Body parts that must be   considered to end with line breaks, therefore, must have two CRLFs   preceding the boundary delimiter line, the first of which is part of   the preceding body part, and the second of which is part of the   encapsulation boundary.   Boundary delimiters must not appear within the encapsulated material,   and must be no longer than 70 characters, not counting the two   leading hyphens.   The boundary delimiter line following the last body part is a   distinguished delimiter that indicates that no further body parts   will follow.  Such a delimiter line is identical to the previous   delimiter lines, with the addition of two more hyphens after the   boundary parameter value.     --gc0pJq0M:08jU534c0p--   NOTE TO IMPLEMENTORS:  Boundary string comparisons must compare the   boundary value with the beginning of each candidate line.  An exact   match of the entire candidate line is not required; it is sufficient   that the boundary appear in its entirety following the CRLF.   There appears to be room for additional information prior to the   first boundary delimiter line and following the final boundary   delimiter line.  These areas should generally be left blank, and   implementations must ignore anything that appears before the first   boundary delimiter line or after the last one.   NOTE:  These "preamble" and "epilogue" areas are generally not used   because of the lack of proper typing of these parts and the lack of   clear semantics for handling these areas at gateways, particularly   X.400 gateways.  However, rather than leaving the preamble area   blank, many MIME implementations have found this to be a convenientFreed & Borenstein          Standards Track                    [Page 20]RFC 2046                      Media Types                  November 1996   place to insert an explanatory note for recipients who read the   message with pre-MIME software, since such notes will be ignored by   MIME-compliant software.   NOTE:  Because boundary delimiters must not appear in the body parts   being encapsulated, a user agent must exercise care to choose a   unique boundary parameter value.  The boundary parameter value in the   example above could have been the result of an algorithm designed to   produce boundary delimiters with a very low probability of already   existing in the data to be encapsulated without having to prescan the

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -