rfc3196.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,763 行 · 第 1/5 页

TXT
1,763
字号






Network Working Group                                        T. Hastings
Request for Comments: 3196                                     C. Manros
Obsoletes: 2639                                                P. Zehler
Category: Informational                                Xerox Corporation
                                                               C. Kugler
                                                 IBM Printing Systems Co
                                                                H. Holst
                                                 i-data Printing Systems
                                                           November 2001


          Internet Printing Protocol/1.1: Implementor's Guide

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2001).  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).

Table of Contents

   1  Introduction...................................................  4
   1.1   Conformance language........................................  5
   1.2   Other terminology...........................................  6
   1.3   Issues Raised from Interoperability Testing Events..........  6
   2  IPP Objects....................................................  6
   3  IPP Operations.................................................  7
   3.1   Common Semantics............................................  7
   3.1.1  Summary of Operation Attributes............................  8
   3.1.2  Suggested Operation Processing Steps for IPP Objects....... 16
   3.1.2.1   Suggested Operation Processing Steps for all Operations. 17
   3.1.2.1.1   Validate version number............................... 18
   3.1.2.1.2   Validate operation identifier......................... 20
   3.1.2.1.3   Validate the request identifier....................... 20
   3.1.2.1.4   Validate attribute group and attribute presence and
               order................................................. 20
   3.1.2.1.4.1   Validate the presence and order of attribute groups. 20
   3.1.2.1.4.2   Ignore unknown attribute groups in the expected
                 position............................................ 21



Hastings, et al.             Informational                      [Page 1]

RFC 3196             Internet Printing Protocol/1.1        November 2001


   3.1.2.1.4.3   Validate the presence of a single occurrence of
                 required Operation attributes....................... 21
   3.1.2.1.5   Validate the values of the REQUIRED Operation
               attributes............................................ 29
   3.1.2.1.6   Validate the values of the OPTIONAL Operation
               attributes............................................ 33
   3.1.2.2   Suggested Additional Processing Steps for Operations
             that Create/Validate Jobs and Add Documents............. 37
   3.1.2.2.1   Default "ipp-attribute-fidelity" if not supplied...... 37
   3.1.2.2.2   Check that the Printer object is accepting jobs....... 38
   3.1.2.2.3   Validate the values of the Job Template attributes.... 38
   3.1.2.3   Algorithm for job validation............................ 39
   3.1.2.3.1   Check for conflicting Job Template attributes values.. 45
   3.1.2.3.2   Decide whether to REJECT the request.................. 46
   3.1.2.3.3   For the Validate-Job operation, RETURN one of the
               success status codes.................................. 48
   3.1.2.3.4   Create the Job object with attributes to support...... 48
   3.1.2.3.5   Return one of the success status codes................ 50
   3.1.2.3.6   Accept appended Document Content...................... 50
   3.1.2.3.7   Scheduling and Starting to Process the Job............ 50
   3.1.2.3.8   Completing the Job.................................... 50
   3.1.2.3.9   Destroying the Job after completion................... 51
   3.1.2.3.10  Interaction with "ipp-attribute-fidelity"............. 51
   3.1.2.3.11  Character set code conversion support................. 51
   3.1.2.3.12  What charset to return when an unsupported charset is
               requested (Issue 1.19)?....... ....................... 52
   3.1.2.3.13  Natural Language Override (NLO)....................... 53
   3.1.3  Status codes returned by operation......................... 55
   3.1.3.1   Printer Operations...................................... 55
   3.1.3.1.1   Print-Job............................................. 55
   3.1.3.1.2   Print-URI............................................. 58
   3.1.3.1.3   Validate-Job.......................................... 58
   3.1.3.1.4   Create-Job............................................ 58
   3.1.3.1.5   Get-Printer-Attributes................................ 59
   3.1.3.1.6   Get-Jobs.............................................. 60
   3.1.3.1.7   Pause-Printer......................................... 61
   3.1.3.1.8   Resume-Printer........................................ 62
   3.1.3.1.8.1   What about Printers unable to change state due to
                 an error condition?................................. 63
   3.1.3.1.8.2   How is "printer-state" handled on Resume-Printer?... 63
   3.1.3.1.9   Purge-Printer......................................... 63
   3.1.3.2   Job Operations.......................................... 64
   3.1.3.2.1   Send-Document......................................... 64
   3.1.3.2.2   Send-URI.............................................. 65
   3.1.3.2.3   Cancel-Job............................................ 65
   3.1.3.2.4   Get-Job-Attributes.................................... 67
   3.1.3.2.5   Hold-Job.............................................. 68
   3.1.3.2.6   Release-Job........................................... 69



Hastings, et al.             Informational                      [Page 2]

RFC 3196             Internet Printing Protocol/1.1        November 2001


   3.1.3.2.7   Restart-Job........................................... 69
   3.1.3.2.7.1   Can documents be added to a restarted job?.......... 69
   3.1.4  Returning unsupported attributes in Get-Xxxx responses
          (Issue 1.18)............................................... 70
   3.1.5  Sending empty attribute groups............................. 70
   3.2   Printer Operations.......................................... 71
   3.2.1  Print-Job operation........................................ 71
   3.2.1.1   Flow controlling the data portion of a Print-Job
             request (Issue 1.22).................................... 71
   3.2.1.2   Returning job-state in Print-Job response (Issue 1.30).. 71
   3.2.2  Get-Printer-Attributes operation........................... 72
   3.2.3  Get-Jobs operation......................................... 72
   3.2.3.1   Get-Jobs, my-jobs='true', and 'requesting-user-name'
             (Issue 1.39)?..........................................  72
   3.2.3.2   Why is there a "limit" attribute in the Get-Jobs
             operation?.............................................. 73
   3.2.4  Create-Job operation....................................... 73
   3.3   Job Operations.............................................. 74
   3.3.1  Validate-Job............................................... 74
   3.3.2  Restart-Job................................................ 74
   4  Object Attributes.............................................. 74
   4.1   Attribute Syntax's.......................................... 74
   4.1.1  The 'none' value for empty sets (Issue 1.37)............... 74
   4.1.2  Multi-valued attributes (Issue 1.31)....................... 75
   4.1.3  Case Sensitivity in URIs (issue 1.6)....................... 75
   4.1.4  Maximum length for xxxWithLanguage and xxxWithoutLanguage.. 76
   4.2   Job Template Attributes..................................... 76
   4.2.1  multiple-document-handling(type2 keyword).................. 76
   4.2.1.1   Support of multiple document jobs....................... 76
   4.3   Job Description Attributes.................................. 76
   4.3.1  Getting the date and time of day........................... 76
   4.4   Printer Description Attributes.............................. 77
   4.4.1  queued-job-count (integer(0:MAX)).......................... 77
   4.4.1.1   Why is "queued-job-count" RECOMMENDED (Issue 1.14)?..... 77
   4.4.1.2   Is "queued-job-count" a good measure of how busy a
             printer is (Issue 1.15)?................................ 77
   4.4.2  printer-current-time (dateTime)............................ 78
   4.4.3  Printer-uri................................................ 78
   4.5   Empty Jobs.................................................. 79
   5  Directory Considerations....................................... 79
   5.1   General Directory Schema Considerations..................... 79
   5.2   IPP Printer with a DNS name................................. 79
   6  Security Considerations........................................ 80
   6.1   Querying jobs with IPP that were submitted using other job
         submission protocols (Issue 1.32)........................... 80
   7  Encoding and Transport......................................... 81
   7.1   General Headers............................................. 83
   7.2   Request  Headers............................................ 84



Hastings, et al.             Informational                      [Page 3]

RFC 3196             Internet Printing Protocol/1.1        November 2001


   7.3   Response Headers............................................ 86
   7.4   Entity  Headers............................................. 87
   7.5   Optional support for HTTP/1.0............................... 88
   7.6   HTTP/1.1 Chunking........................................... 88
   7.6.1  Disabling IPP Server Response Chunking..................... 88
   7.6.2  Warning About the Support of Chunked Requests.............. 88
   8  References..................................................... 89
   9  Authors' Addresses............................................. 91
   10 Description of the Base IPP Documents.......................... 94
   11 Full Copyright Statement....................................... 96

Tables

   Table 1 - Summary of Printer operation attributes that sender MUST
             supply .................................................  8
   Table 2 - Summary of Printer operation attributes that sender MAY
             supply ................................................. 10
   Table 3 - Summary of Job operation attributes that sender MUST
             supply.................................................. 12
   Table 4 - Summary of Job operation attributes that sender MAY
             supply.................................................. 14
   Table 5 - Printer operation response attributes................... 16
   Table 6 - Examples of validating IPP version...................... 19
   Table 7 - Rules for validating single values X against Z.......... 40

1. Introduction

   IPP is an application level protocol that can be used for distributed
   printing using Internet tools and technologies.  This document
   contains information that supplements the IPP Model and Semantics
   [RFC2911] and the IPP Transport and Encoding [RFC2910] documents.  It
   is intended to help implementers understand IPP/1.1, as well as
   IPP/1.0 [RFC2565, RFC2566], and some of the considerations that may
   assist them in the design of their client and/or IPP object
   implementation.  For example, a typical order of processing requests
   is given, including error checking.  Motivation for some of the
   specification decisions is also included.

   This document obsoletes RFC 2639 which was the Implementor's Guide
   for IPP/1.0.  The IPP Implementor's Guide (IIG) (this document)
   contains information that supplements the IPP Model and Semantics
   [RFC2911] and the IPP Transport and Encoding [RFC2910] documents.
   This document is just one of a suite of documents that fully define
   IPP.  The base 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]



Hastings, et al.             Informational                      [Page 4]

RFC 3196             Internet Printing Protocol/1.1        November 2001


      Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
      Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
      Internet Printing Protocol/1.1: Implementor's Guide (this
      document)
      Mapping between LPD and IPP Protocols [RFC2569]

   See section 10 for a description of these base IPP documents.  Anyone
   reading these documents for the first time is strongly encouraged to
   read the IPP documents in the above order.

   As such the information in this document is not part of the formal
   specification of IPP/1.1.  Instead information is presented to help
   implementers understand IPP/1.1, as well as IPP/1.0 [RFC2565,
   RFC2566], including some of the motivation for decisions taken by the
   committee in developing the specification.  Some of the
   implementation considerations are intended to help implementers
   design their client and/or IPP object implementations.  If there are
   any contradictions between this document and [RFC2911] or [RFC2910],
   those documents take precedence over this document.

   Platform-specific implementation considerations will be included in
   this guide as they become known.

   Note:  In order to help the reader of the IIG and the IPP Model and
   Semantics document, the sections in this document parallel the
   corresponding sections in the Model document and are numbered the
   same for ease of cross reference.  The sections that correspond to
   the IPP Transport and Encoding are correspondingly offset.

1.1  Conformance language

   Usually, this document does not contain the terminology MUST, MUST
   NOT, MAY, NEED NOT, SHOULD, SHOULD NOT, REQUIRED, and OPTIONAL.
   However, when those terms do appear in this document, their intent is
   to repeat what the [RFC2911] and [RFC2910] documents require and
   allow, rather than specifying additional conformance requirements.
   These terms are defined in section 12 on conformance terminology in
   [RFC2911], most of which is taken from RFC 2119 [RFC2119].

   Implementers should read section 12 (APPENDIX A) in [RFC2911] in
   order to understand these capitalized words.  The words MUST, MUST
   NOT, and REQUIRED indicate what implementations are required to
   support in a client or IPP object in order to be conformant to
   [RFC2911] and [RFC2910].  MAY, NEED NOT, and OPTIONAL indicate was is
   merely allowed as an implementer option.  The verbs SHOULD and SHOULD
   NOT indicate suggested behavior, but which is not required or
   disallowed, respectively, in order to conform to the specification.




Hastings, et al.             Informational                      [Page 5]

RFC 3196             Internet Printing Protocol/1.1        November 2001


1.2  Other terminology

   This document uses other terms, such as "attributes", "operation",
   and "Printer" as defined in [RFC2911] section 12.  In addition, the
   term "sender" refers to the client that sends a request or an IPP
   object that returns a response.  The term "receiver" refers to the
   IPP object that receives a request and to a client that receives a
   response.

1.3  Issues Raised from Interoperability Testing Events

   The IPP WG has conducted three open Interoperability Testing Events.
   The first one was held in September 1998, the second one was held in
   March 1999, and the third one was held in October 2000.  See the
   summary reports in:

      ftp://ftp.pwg.org/pub/pwg/ipp/new_TES/

   The issues raised from the first Interoperability Testing Event are
   numbered 1.n in this document and have been incorporated into
   "IPP/1.0 Model and Semantics" [RFC2566] and the "IPP/1.0 Encoding and
   Transport" [RFC2565] documents.  However, some of the discussion is
   left here in the Implementor's Guide to help understanding.

   The issues raised from the second Interoperability Testing Event are
   numbered 2.n in this document have been incorporated into "IPP/1.1
   Model and Semantics" [RFC2911] and the "IPP/1.1 Encoding and
   Transport" [RFC2910] documents.  However, some of the discussion is
   left here in the Implementor's Guide to help understanding.

   The issues raised from the third Interoperability Testing Event are
   numbered 3.n in this document and are described in:

      ftp://ftp.pwg.org/pub/pwg/ipp/Issues/Issues-raised-at-Bake-
      Off3.pdf

      ftp://ftp.pwg.org/pub/pwg/ipp/Issues/Issues-raised-at-Bake-
      Off3.doc

      ftp://ftp.pwg.org/pub/pwg/ipp/Issues/Issues-raised-at-Bake-
      Off3.txt










Hastings, et al.             Informational                      [Page 6]

RFC 3196             Internet Printing Protocol/1.1        November 2001


2.  IPP Objects

   The term "client" in IPP is intended to mean any client that issues
   IPP operation requests and accepts IPP operation responses, whether
   it be a desktop or a server.  In other words, the term "client" does
   not just mean end-user clients, such as those associated with
   desktops.

   The term "IPP Printer" in IPP is intended to mean an object that
   accepts IPP operation requests and returns IPP operation responses,
   whether implemented in a server or a device.  An IPP Printer object

⌨️ 快捷键说明

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