rfc2910.txt
来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 1,598 行 · 第 1/5 页
TXT
1,598 行
Network Working Group R. Herriot, EditorRequest for Comments: 2910 Xerox CorporationObsoletes: 2565 S. ButlerCategory: Standards Track Hewlett-Packard P. Moore Peerless Systems Networking R. Turner 2wire.com J. Wenn Xerox Corporation September 2000 Internet Printing Protocol/1.1: Encoding and TransportStatus of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved.Abstract This document is one of a set of documents, which together describe all aspects of a new Internet Printing Protocol (IPP). IPP is an application level protocol that can be used for distributed printing using Internet tools and technologies. This document defines the rules for encoding IPP operations and IPP attributes into a new Internet mime media type called "application/ipp". This document also defines the rules for transporting over Hypertext Transfer Protocol (HTTP) a message body whose Content-Type is "application/ipp". This document defines a new scheme named 'ipp' for identifying IPP printers and jobs.Herriot, et al. Standards Track [Page 1]RFC 2910 IPP/1.1: Encoding and Transport September 2000 The full set of IPP documents includes: Design Goals for an Internet Printing Protocol [RFC2567] Rationale for the Structure and Model and Protocol for the Internet Printing Protocol [RFC2568] Internet Printing Protocol/1.1: Model and Semantics [RFC2911] Internet Printing Protocol/1.1: Encoding and Transport (this document) Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] Mapping between LPD and IPP Protocols [RFC2569] The document, "Design Goals for an Internet Printing Protocol", takes a broad look at distributed printing functionality, and it enumerates real-life scenarios that help to clarify the features that need to be included in a printing protocol for the Internet. It identifies requirements for three types of users: end users, operators, and administrators. It calls out a subset of end user requirements that are satisfied in IPP/1.1. A few OPTIONAL operator operations have been added to IPP/1.1. The document, "Rationale for the Structure and Model and Protocol for the Internet Printing Protocol", describes IPP from a high level view, defines a roadmap for the various documents that form the suite of IPP specification documents, and gives background and rationale for the IETF working group's major decisions. The document, "Internet Printing Protocol/1.1: Model and Semantics", describes a simplified model with abstract objects, their attributes, and their operations that are independent of encoding and transport. It introduces a Printer and a Job object. The Job object optionally supports multiple documents per Job. It also addresses security, internationalization, and directory issues. The document "Internet Printing Protocol/1.1: Implementer's Guide", gives advice to implementers of IPP clients and IPP objects. The document "Mapping between LPD and IPP Protocols", gives some advice to implementers of gateways between IPP and LPD (Line Printer Daemon) implementations.Herriot, et al. Standards Track [Page 2]RFC 2910 IPP/1.1: Encoding and Transport September 2000Table of Contents 1. Introduction ...................................................4 2. Conformance Terminology ........................................4 3. Encoding of the Operation Layer ...............................4 3.1 Picture of the Encoding ...................................6 3.1.1 Request and Response...................................6 3.1.2 Attribute Group........................................6 3.1.3 Attribute..............................................7 3.1.4 Picture of the Encoding of an Attribute-with-one-value.7 3.1.5 Additional-value.......................................8 3.1.6 Alternative Picture of the Encoding of a Request Or a Response...............................................9 3.2 Syntax of Encoding ........................................9 3.3 Attribute-group ..........................................11 3.4 Required Parameters ......................................12 3.4.1 Version-number........................................12 3.4.2 Operation-id..........................................12 3.4.3 Status-code...........................................12 3.4.4 Request-id............................................13 3.5 Tags .....................................................13 3.5.1 Delimiter Tags........................................13 3.5.2 Value Tags............................................14 3.6 Name-Length ..............................................16 3.7 (Attribute) Name .........................................16 3.8 Value Length .............................................16 3.9 (Attribute) Value ........................................17 3.10 Data .....................................................18 4. Encoding of Transport Layer ...................................18 4.1 Printer-uri and job-uri ..................................19 5. IPP URL Scheme ................................................20 6. IANA Considerations ...........................................22 7. Internationalization Considerations ...........................23 8. Security Considerations .......................................23 8.1 Security Conformance Requirements ........................23 8.1.1 Digest Authentication.................................23 8.1.2 Transport Layer Security (TLS)........................24 8.2 Using IPP with TLS .......................................25 9. Interoperability with IPP/1.0 Implementations .................25 9.1 The "version-number" Parameter ...........................25 9.2 Security and URL Schemes .................................26 10. References ...................................................27 11. Authors' Addresses ...........................................29 12. Other Participants: ..........................................31 13. Appendix A: Protocol Examples ................................33 13.1 Print-Job Request ........................................33 13.2 Print-Job Response (successful) ..........................34 13.3 Print-Job Response (failure) .............................35Herriot, et al. Standards Track [Page 3]RFC 2910 IPP/1.1: Encoding and Transport September 2000 13.4 Print-Job Response (success with attributes ignored) .....36 13.5 Print-URI Request ........................................38 13.6 Create-Job Request .......................................39 13.7 Get-Jobs Request .........................................40 13.8 Get-Jobs Response ........................................41 14. Appendix B: Registration of MIME Media Type Information for "application/ipp".............................................42 15. Appendix C: Changes from IPP/1.0 .............................44 16. Full Copyright Statement .....................................451. Introduction This document contains the rules for encoding IPP operations and describes two layers: the transport layer and the operation layer. The transport layer consists of an HTTP/1.1 request or response. RFC 2616 [RFC2616] describes HTTP/1.1. This document specifies the HTTP headers that an IPP implementation supports. The operation layer consists of a message body in an HTTP request or response. The document "Internet Printing Protocol/1.1: Model and Semantics" [RFC2911] defines the semantics of such a message body and the supported values. This document specifies the encoding of an IPP operation. The aforementioned document [RFC2911] is henceforth referred to as the "IPP model document" or simply "model document". Note: the version number of IPP (1.1) and HTTP (1.1) are not linked. They both just happen to be 1.1.2. Conformance Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].3. Encoding of the Operation Layer The operation layer is the message body part of the HTTP request or response and it MUST contain a single IPP operation request or IPP operation response. Each request or response consists of a sequence of values and attribute groups. Attribute groups consist of a sequence of attributes each of which is a name and value. Names and values are ultimately sequences of octets. The encoding consists of octets as the most primitive type. There are several types built from octets, but three important types are integers, character strings and octet strings, on which most other data types are built. Every character string in this encoding MUST beHerriot, et al. Standards Track [Page 4]RFC 2910 IPP/1.1: Encoding and Transport September 2000 a sequence of characters where the characters are associated with some charset and some natural language. A character string MUST be in "reading order" with the first character in the value (according to reading order) being the first character in the encoding. A character string whose associated charset is US-ASCII whose associated natural language is US English is henceforth called a US-ASCII-STRING. A character string whose associated charset and natural language are specified in a request or response as described in the model document is henceforth called a LOCALIZED-STRING. An octet string MUST be in "IPP model document order" with the first octet in the value (according to the IPP model document order) being the first octet in the encoding. Every integer in this encoding MUST be encoded as a signed integer using two's-complement binary encoding with big-endian format (also known as "network order" and "most significant byte first"). The number of octets for an integer MUST be 1, 2 or 4, depending on usage in the protocol. Such one-octet integers, henceforth called SIGNED-BYTE, are used for the version-number and tag fields. Such two-byte integers, henceforth called SIGNED-SHORT are used for the operation-id, status-code and length fields. Four byte integers, henceforth called SIGNED-INTEGER, are used for value fields and the request-id. The following two sections present the encoding of the operation layer in two ways: - informally through pictures and description - formally through Augmented Backus-Naur Form (ABNF), as specified by RFC 2234 [RFC2234] An operation request or response MUST use the encoding described in these two sections.Herriot, et al. Standards Track [Page 5]RFC 2910 IPP/1.1: Encoding and Transport September 20003.1 Picture of the Encoding3.1.1 Request and Response An operation request or response is encoded as follows: ----------------------------------------------- | version-number | 2 bytes - required ----------------------------------------------- | operation-id (request) | | or | 2 bytes - required | status-code (response) | ----------------------------------------------- | request-id | 4 bytes - required ----------------------------------------------- | attribute-group | n bytes - 0 or more ----------------------------------------------- | end-of-attributes-tag | 1 byte - required ----------------------------------------------- | data | q bytes - optional ----------------------------------------------- The first three fields in the above diagram contain the value of attributes described in section 3.1.1 of the Model document. The fourth field is the "attribute-group" field, and it occurs 0 or more times. Each "attribute-group" field represents a single group of attributes, such as an Operation Attributes group or a Job Attributes group (see the Model document). The IPP model document specifies the required attribute groups and their order for each operation request and response. The "end-of-attributes-tag" field is always present, even when the "data" is not present. The Model document specifies for each
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?