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

📄 rfc2565.txt

📁 中、英文RFC文档大全打包下载完全版 .
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Herriot, et al.               Experimental                      [Page 6]RFC 2565            IPP/1.0: Encoding and Transport           April 1999   An additional value consists of:  -----------------------------------------------------------  |                   value-tag                 |   1 byte  |  -----------------------------------------------           |  |            name-length  (value is 0x0000)   |   2 bytes |  -----------------------------------------------           |-0 or more  |              value-length (value is w)      |   2 bytes |  -----------------------------------------------           |  |                     value                   |   w bytes |  -----------------------------------------------------------   Note: an additional value is like an attribute whose name-length is 0.   From the standpoint of a parsing loop, the encoding consists of:  -----------------------------------------------  |                  version-number             |   2 bytes  - required  -----------------------------------------------  |               operation-id (request)        |  |                      or                     |   2 bytes  - required  |               status-code (response)        |  -----------------------------------------------  |                   request-id                |   4 bytes  - required  -----------------------------------------------------------  |        tag (delimiter-tag or value-tag)     |   1 byte  |  -----------------------------------------------           |-0 or more  |           empty or rest of attribute        |   x bytes |  -----------------------------------------------------------  |              end-of-attributes-tag          |   2 bytes  - required  -----------------------------------------------  |                     data                    |   y bytes  - optional  -----------------------------------------------   The value of the tag determines whether the bytes following the   tag are:      - attributes      - data      - the remainder of a single attribute where the tag specifies the        type of the value.3.2 Syntax of Encoding   The syntax below is ABNF [RFC2234] except 'strings of literals' MUST   be case sensitive. For example 'a' means lower case  'a' and not   upper case 'A'.   In addition, SIGNED-BYTE and SIGNED-SHORT fields   are represented as '%x' values which show their range of values.Herriot, et al.               Experimental                      [Page 7]RFC 2565            IPP/1.0: Encoding and Transport           April 1999  ipp-message = ipp-request / ipp-response  ipp-request = version-number operation-id request-id           *(xxx-attributes-tag  xxx-attribute-sequence)           end-of-attributes-tag data  ipp-response = version-number status-code request-id           *(xxx-attributes-tag xxx-attribute-sequence)           end-of-attributes-tag data  xxx-attribute-sequence = *compound-attribute  xxx-attributes-tag = operation-attributes-tag / job-attributes-tag /        printer-attributes-tag / unsupported-attributes-tag  version-number = major-version-number minor-version-number  major-version-number = SIGNED-BYTE  ; initially %d1  minor-version-number = SIGNED-BYTE  ; initially %d0  operation-id = SIGNED-SHORT    ; mapping from model defined below  status-code = SIGNED-SHORT  ; mapping from model defined below  request-id = SIGNED-INTEGER ; whose value is > 0  compound-attribute = attribute *additional-values  attribute = value-tag name-length name value-length value  additional-values = value-tag zero-name-length value-length value  name-length = SIGNED-SHORT    ; number of octets of 'name'  name = LALPHA *( LALPHA / DIGIT / "-" / "_" / "." )  value-length = SIGNED-SHORT  ; number of octets of 'value'  value = OCTET-STRING  data = OCTET-STRING  zero-name-length = %x00.00           ; name-length of 0  operation-attributes-tag =  %x01             ; tag of 1  job-attributes-tag   =  %x02                 ; tag of 2  printer-attributes-tag =  %x04               ; tag of 4  unsupported-attributes-tag =  %x05          ; tag of 5  end-of-attributes-tag = %x03                 ; tag of 3  value-tag = %x10-FF  SIGNED-BYTE = BYTE  SIGNED-SHORT = 2BYTE  SIGNED-INTEGER = 4BYTE  DIGIT = %x30-39    ;  "0" to "9"  LALPHA = %x61-7A   ;  "a" to "z"  BYTE = %x00-FF  OCTET-STRING = *BYTEHerriot, et al.               Experimental                      [Page 8]RFC 2565            IPP/1.0: Encoding and Transport           April 1999   The syntax allows an xxx-attributes-tag to be present when the xxx-   attribute-sequence that follows is empty. The syntax is defined this   way to allow for the response of Get-Jobs where no attributes are   returned for some job-objects.  Although it is RECOMMENDED that the   sender not send an xxx-attributes-tag if there are no attributes   (except in the Get-Jobs response just mentioned), the receiver MUST   be able to decode such syntax.3.3 Version-number   The version-number MUST consist of a major and minor version-number,   each of which MUST be represented by a SIGNED-BYTE. The protocol   described in this document MUST have a major version-number of 1   (0x01) and a minor version-number of  0 (0x00).  The ABNF for these   two bytes MUST be %x01.00.3.4 Operation-id   Operation-ids are defined as enums in the model document. An   operation-ids enum value MUST be encoded as a SIGNED-SHORT.   Note: the values 0x4000 to 0xFFFF are reserved for private   extensions.3.5 Status-code   Status-codes are defined as enums in the model document. A status-   code enum value MUST be encoded as a SIGNED-SHORT.   The status-code is an operation attribute in the model document. In   the protocol, the status-code is in a special position, outside of   the operation attributes.   If an IPP status-code is returned, then the HTTP Status-Code MUST be   200 (successful-ok).  With any other HTTP Status-Code value, the HTTP   response MUST NOT contain an IPP message-body, and thus no IPP   status-code is returned.3.6 Request-id   The request-id allows a client to match a response with a request.   This mechanism is unnecessary in HTTP, but may be useful when   application/ipp entity bodies are used in another context.   The request-id in a response MUST be the value of the request-id   received in the corresponding request.  A client can set the   request-id in each request to a unique value or a constant value,   such as 1, depending on what the client does with the request-idHerriot, et al.               Experimental                      [Page 9]RFC 2565            IPP/1.0: Encoding and Transport           April 1999   returned in the response. The value of the request-id MUST be greater   than zero.3.7 Tags   There are two kinds of tags:      - delimiter tags: delimit major sections of the protocol, namely        attributes and data      - value tags: specify the type of each attribute value3.7.1 Delimiter Tags   The following table specifies the values for the delimiter tags:      Tag Value (Hex)   Delimiter      0x00              reserved      0x01              operation-attributes-tag      0x02              job-attributes-tag      0x03              end-of-attributes-tag      0x04              printer-attributes-tag      0x05              unsupported-attributes-tag      0x06-0x0e         reserved for future delimiters      0x0F              reserved for future chunking-end-of-attributes-                         tag   When an xxx-attributes-tag occurs in the protocol, it MUST mean that   zero or more following attributes up to the next delimiter tag are   attributes belonging to group xxx as defined in the model document,   where xxx is operation, job, printer, unsupported.   Doing substitution for xxx in the above paragraph, this means the   following. When an operation-attributes-tag occurs in the protocol,   it MUST mean that the zero or more following attributes up to the   next delimiter tag are operation attributes as defined in the model   document.  When an job-attributes-tag occurs in the protocol, it MUST   mean that the zero or more following attributes up to the next   delimiter tag are job attributes or job template attributes as   defined in the model document.  When a printer-attributes-tag occurs   in the protocol, it MUST mean that the zero or more following   attributes up to the next delimiter tag are printer attributes as   defined in the model document. When an unsupported-attributes-tag   occurs in the protocol, it MUST mean that the zero or more following   attributes up to the next delimiter tag are unsupported attributes as   defined in the model document.Herriot, et al.               Experimental                     [Page 10]RFC 2565            IPP/1.0: Encoding and Transport           April 1999   The operation-attributes-tag and end-of-attributes-tag MUST each   occur exactly once in an operation. The operation-attributes-tag MUST   be the first tag delimiter, and the end-of-attributes-tag MUST be the   last tag delimiter. If the operation has a document-content group,   the document data in that group MUST follow the end-of-attributes-   tag.   Each of the  other three  xxx-attributes-tags defined above is   OPTIONAL in an operation and each MUST occur at most once in an   operation, except for job-attributes-tag in a Get-Jobs response which   may occur zero or more times.   The order and presence of delimiter tags for each operation request   and each operation response MUST be that defined in the model   document. For further details, see section 3.9 "(Attribute) Name" and   section 9 "Appendix A: Protocol Examples".   A Printer MUST treat the reserved delimiter tags differently from   reserved value tags so that the Printer knows that there is an entire   attribute group that it doesn't understand as opposed to a single   value that it doesn't understand.3.7.2 Value Tags   The remaining tables show values for the value-tag, which is the   first octet of  an attribute. The value-tag specifies the type of the   value of the attribute. The following table specifies the "out-of-   band" values for the value-tag.      Tag Value (Hex) Meaning      0x10            unsupported      0x11            reserved for future 'default'      0x12            unknown      0x13            no-value      Tag Value (Hex) Meaning      0x14-0x1F       reserved for future "out-of-band" values.   The "unsupported" value MUST be used in the attribute-sequence of an   error response for those attributes which the printer does not   support.  The "default" value is reserved for future use of setting   value back to their default value. The "unknown" value is used for   the value of a supported attribute when its value is temporarily   unknown.  The "no-value" value is used for a supported attribute to   whichHerriot, et al.               Experimental                     [Page 11]RFC 2565            IPP/1.0: Encoding and Transport           April 1999   no value has been assigned, e.g. "job-k-octets-supported" has no   value if an implementation supports this attribute, but an   administrator has not configured the printer to have a limit.   The following table specifies the integer values for the value-tag:      Tag Value (Hex)  Meaning      0x20             reserved      0x21             integer      0x22             boolean      0x23             enum      0x24-0x2F        reserved for future integer types   NOTE: 0x20 is reserved for "generic integer" if it should ever be   needed.   The following table specifies the octetString values for the value-   tag:      Tag Value (Hex)  Meaning      0x30             octetString with an  unspecified format      0x31             dateTime      0x32             resolution      0x33             rangeOfInteger      0x34             reserved for collection (in the future)      0x35             textWithLanguage      0x36             nameWithLanguage      0x37-0x3F        reserved for future octetString types   The following table specifies the character-string values for the   value-tag:      Tag Value (Hex)  Meaning

⌨️ 快捷键说明

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