3510
PROPOSED STANDARD

Internet Printing Protocol/1.1: IPP URL Scheme

Authors: R. Herriot, I. McDonald
Date: April 2003
Area: app
Working Group: ipp
Stream: IETF
Updates: RFC 2910

Abstract

This memo defines the "ipp" URL (Uniform Resource Locator) scheme. This memo updates IPP/1.1: Encoding and Transport (RFC 2910), by expanding and clarifying Section 5, "IPP URL Scheme", of RFC 2910. An "ipp" URL is used to specify the network location of a print service that supports the IPP Protocol (RFC 2910), or of a network resource (for example, a print job) managed by such a print service. [STANDARDS-TRACK]

RFC 3510: Internet Printing Protocol/1.1: IPP URL Scheme [RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

PROPOSED STANDARD
Network Working Group                                         R. Herriot
Request for Comments: 3510                                   I. McDonald
Updates: <a href="./rfc2910">2910</a>                                            High North Inc.
Category: Standards Track                                     April 2003


                    <span class="h1">Internet Printing Protocol/1.1:</span>
                             <span class="h1">IPP URL Scheme</span>

Status 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 (2003).  All Rights Reserved.

Abstract

   This memo defines the "ipp" URL (Uniform Resource Locator) scheme.
   This memo updates IPP/1.1: Encoding and Transport (<a href="./rfc2910">RFC 2910</a>), by
   expanding and clarifying <a href="#section-5">Section 5</a>, "IPP URL Scheme", of <a href="./rfc2910">RFC 2910</a>.
   An "ipp" URL is used to specify the network location of a print
   service that supports the IPP Protocol (<a href="./rfc2910">RFC 2910</a>), or of a network
   resource (for example, a print job) managed by such a print service.

Table of Contents

   <a href="#section-1">1</a>.  Introduction ...............................................  <a href="#page-2">2</a>
   <a href="#section-2">2</a>.  Terminology ................................................  <a href="#page-3">3</a>
       <a href="#section-2.1">2.1</a>.  Conformance Terminology ..............................  <a href="#page-3">3</a>
       <a href="#section-2.2">2.2</a>.  Model Terminology ....................................  <a href="#page-3">3</a>
   <a href="#section-3">3</a>.  IPP Model for Printers and Jobs ............................  <a href="#page-3">3</a>
   <a href="#section-4">4</a>.  IPP URL Scheme .............................................  <a href="#page-4">4</a>
       <a href="#section-4.1">4.1</a>.  IPP URL Scheme Applicability .........................  <a href="#page-4">4</a>
       <a href="#section-4.2">4.2</a>.  IPP URL Scheme Associated Port .......................  <a href="#page-4">4</a>
       <a href="#section-4.3">4.3</a>.  IPP URL Scheme Associated MIME Type ..................  <a href="#page-5">5</a>
       <a href="#section-4.4">4.4</a>.  IPP URL Scheme Character Encoding ....................  <a href="#page-5">5</a>
       <a href="#section-4.5">4.5</a>.  IPP URL Scheme Syntax ................................  <a href="#page-5">5</a>
       <a href="#section-4.6">4.6</a>.  IPP URL Examples .....................................  <a href="#page-6">6</a>
             <a href="#section-4.6.1">4.6.1</a>.  IPP Printer URL Examples .....................  <a href="#page-6">6</a>
             <a href="#section-4.6.2">4.6.2</a>.  IPP Job URL Examples .........................  <a href="#page-6">6</a>
       <a href="#section-4.7">4.7</a>.  IPP URL Comparisons ..................................  <a href="#page-7">7</a>




<span class="grey">Herriot & McDonald          Standards Track                     [Page 1]</span>

<span id="page-2" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   <a href="#section-5">5</a>.  Conformance Requirements ...................................  <a href="#page-8">8</a>
       <a href="#section-5.1">5.1</a>.  IPP Client Conformance Requirements ..................  <a href="#page-8">8</a>
       <a href="#section-5.2">5.2</a>.  IPP Printer Conformance Requirements .................  <a href="#page-8">8</a>
   <a href="#section-6">6</a>.  IANA Considerations ........................................  <a href="#page-9">9</a>
   <a href="#section-7">7</a>.  Internationalization Considerations ........................  <a href="#page-9">9</a>
   <a href="#section-8">8</a>.  Security Considerations ....................................  <a href="#page-9">9</a>
   <a href="#section-9">9</a>.  Intellectual Property Rights ............................... <a href="#page-10">10</a>
   <a href="#section-10">10</a>. Normative References ....................................... <a href="#page-11">11</a>
   <a href="#section-11">11</a>. Informative References ..................................... <a href="#page-11">11</a>
   <a href="#section-12">12</a>. Acknowledgments ............................................ <a href="#page-12">12</a>
   <a href="#appendix-A">Appendix A</a> - Registration of "ipp" URL Scheme .................. <a href="#page-13">13</a>
   Authors' Addresses ............................................. <a href="#page-15">15</a>
   Full Copyright Statement ....................................... <a href="#page-16">16</a>

<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>.  Introduction</span>

   This memo conforms to all of the requirements in Registration
   Procedures for URL Scheme Names [<a href="./rfc2717" title=""Registration Procedures for URL Scheme Names"">RFC2717</a>].  This memo also follows
   all of the recommendations in Guidelines for new URL Schemes
   [<a href="./rfc2718" title=""Guidelines for new URL Schemes"">RFC2718</a>].

   See <a href="#section-1">section 1</a>, "Introduction", of [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] and <a href="#section-1">section 1</a>,
   "Introduction", of [<a href="./rfc3196" title=""Internet Printing Protocol/1.1: Implementor's Guide"">RFC3196</a>] for overview information about IPP.  See
   <a href="#section-10">section 10</a>, "Description of the Base IPP Documents", of [<a href="./rfc3196" title=""Internet Printing Protocol/1.1: Implementor's Guide"">RFC3196</a>] for
   a full description of the IPP document set.

   This memo updates IPP/1.1: Encoding and Transport (<a href="./rfc2910">RFC 2910</a>), by
   expanding and clarifying <a href="#section-5">Section 5</a>, "IPP URL Scheme", of <a href="./rfc2910">RFC 2910</a>,
   but does not define any new parameters or other new extensions to the
   syntax of IPP URLs.

   The IPP URL scheme defined in this document is based on the ABNF for
   the HTTP URL scheme defined in HTTP [<a href="./rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>], which in turn is
   derived from the URI Generic Syntax [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>] and further updated for
   IPv6 by [<a href="./rfc2732" title=""Format for Literal IPv6 Addresses in URL's"">RFC2732</a>].  An IPP URL is transformed into an HTTP URL
   according to the rules specified in <a href="#section-5">section 5</a> of IPP Protocol
   [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

   This document defines IPP URL scheme applicability, associated port
   (631), associated MIME type ("application/ipp"), character encoding,
   and syntax.

   This document is laid out as follows:

   -  <a href="#section-2">Section 2</a> defines the terminology used throughout the document.

   -  <a href="#section-3">Section 3</a> supplies references to the IPP Printer and IPP Job
      object model defined in IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].



<span class="grey">Herriot & McDonald          Standards Track                     [Page 2]</span>

<span id="page-3" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   -  <a href="#section-4">Section 4</a> specifies the IPP URL scheme.

   -  <a href="#section-5">Section 5</a> specifies the conformance requirements for IPP Clients
      and IPP Printers that claim conformance to this document.

   -  Sections <a href="#section-6">6</a>, <a href="#section-7">7</a>, and <a href="#section-8">8</a> specify IANA, internationalization, and
      security considerations.

   -  Sections <a href="#section-9">9</a>, <a href="#section-10">10</a>, <a href="#section-11">11</a>, <a href="#section-12">12</a>, and <a href="#section-13">13</a> specify normative references,
      informative references, acknowledgements, authors' addresses, and
      full IETF copyright statement.

   -  <a href="#section-14">Section 14</a> (Appendix A) is a completed registration template for
      the IPP URL Scheme (see <a href="./rfc2717#section-6.0">section 6.0 of [RFC2717]</a>).

<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>.  Terminology</span>

      This specification document uses the terminology defined in this
      section.

<span class="h3"><a class="selflink" id="section-2.1" href="#section-2.1">2.1</a>.  Conformance Terminology</span>

      The uppercase terms "MUST", "MUST NOT", "REQUIRED", "SHALL",
      "SHALL NOT" "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      [<a href="./rfc2119">RFC2119</a>].  These terms are used to specify conformance
      requirements for all implementations (both print clients and print
      services) of this specification.

<span class="h3"><a class="selflink" id="section-2.2" href="#section-2.2">2.2</a>.  Model Terminology</span>

      See <a href="#section-12.2">section 12.2</a>, "Model Terminology", in IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>.  IPP Model for Printers and Jobs</span>

      See <a href="#section-2">section 2</a>, "IPP Objects", <a href="#section-2.1">section 2.1</a>, "Printer Object", and
      <a href="#section-2.2">section 2.2</a>, "Job Object", in [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] for a full description of
      the IPP object model and terminology.

      In this document, "IPP Client" means the software (on some
      hardware platform) that submits, monitors, and/or manages print
      jobs via the IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] to a print spooler, print
      gateway, or physical printing device.








<span class="grey">Herriot & McDonald          Standards Track                     [Page 3]</span>

<span id="page-4" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


      In this document, "IPP Printer object" means the software (on some
      hardware platform) that receives print jobs and/or printer/job
      operations via the IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] from an "IPP Client".

      In this document, "IPP Printer" is a synonym for "IPP Printer
      object".

      In this document, "IPP Job object" means the set of attributes and
      documents for one print job instantiated on an "IPP Printer".

      In this document, "IPP Job" is a synonym for "IPP Job object".

      In this document, "IPP URL" means a URL with the "ipp" scheme.

      Note:  In this document, "IPP URL" is a synonym for "ipp-URL" (in
      <a href="#section-4">section 4</a>, "IPP URL Scheme", of this document) and "ipp-URL" (in
      <a href="#section-5">section 5</a>, "IPP URL Scheme", of [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>]).

<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>.  IPP URL Scheme</span>

<span class="h3"><a class="selflink" id="section-4.1" href="#section-4.1">4.1</a>.  IPP URL Scheme Applicability</span>

      The "ipp" URL scheme MUST only be used to specify absolute URLs
      (relative IPP URLs are not allowed) for IPP print services and
      their associated network resources.  The "ipp" URL scheme MUST
      only be used to specify the use of the abstract protocol defined
      in IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] over an HTTP [<a href="./rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>] transport, as
      defined in IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].  Any other transport binding
      for the abstract protocol defined in IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] would
      require a different URL scheme.

      The "ipp" URL scheme allows an IPP client to choose an appropriate
      IPP print service (for example, from a directory).  The IPP client
      can establish an HTTP connection to the specified IPP print
      service.  The IPP client can send IPP protocol requests (for
      example, a "Print-Job" request) and receive IPP protocol responses
      over that HTTP connection.

<span class="h3"><a class="selflink" id="section-4.2" href="#section-4.2">4.2</a>.  IPP URL Scheme Associated Port</span>

      All IPP URLs which do NOT explicitly specify a port MUST be
      resolved to IANA-assigned well-known port 631, as registered in
      [<a href="#ref-IANA-PORTREG">IANA-PORTREG</a>].

      See:  IANA Port Numbers Registry [<a href="#ref-IANA-PORTREG">IANA-PORTREG</a>].
      See:  IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].





<span class="grey">Herriot & McDonald          Standards Track                     [Page 4]</span>

<span id="page-5" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


<span class="h3"><a class="selflink" id="section-4.3" href="#section-4.3">4.3</a>.  IPP URL Scheme Associated MIME Type</span>

      All IPP URLs MUST be used to specify network print services which
      support the "application/ipp" MIME media type as registered in
      [<a href="#ref-IANA-MIMEREG">IANA-MIMEREG</a>] for IPP protocol requests and responses.

      See:  IANA MIME Media Types Registry [<a href="#ref-IANA-MIMEREG">IANA-MIMEREG</a>].
      See:  IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

<span class="h3"><a class="selflink" id="section-4.4" href="#section-4.4">4.4</a>.  IPP URL Scheme Character Encoding</span>

      IPP URLs MUST use [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>] encoding, as do their equivalent HTTP
      URLs.  Characters other than those in the "reserved" and "unsafe"
      sets [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>] are equivalent to their ""%" HEX HEX" encoding.

<span class="h3"><a class="selflink" id="section-4.5" href="#section-4.5">4.5</a>.  IPP URL Scheme Syntax</span>

      The abstract protocol defined in IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] places a
      limit of 1023 octets (NOT characters) on the length of a URI (see
      <a href="#section-4.1.5">section 4.1.5</a>, "uri", in [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>]).

      Note:  IPP Printers ought to be cautious about depending on URI
      lengths above 255 bytes, because some older client implementations
      might not properly support these lengths.

   IPP URLs MUST be represented in absolute form.  Absolute URLs MUST
   always begin with a scheme name followed by a colon.  For definitive
   information on URL syntax and semantics, see "Uniform Resource
   Identifiers (URI): Generic Syntax and Semantics" [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>].  This
   specification adopts the definitions of "host", "port", "abs_path",
   and "query" from [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>], as updated for IPv6 by [<a href="./rfc2732" title=""Format for Literal IPv6 Addresses in URL's"">RFC2732</a>].

   The IPP URL scheme syntax in ABNF is as follows:

   ipp-URL = "ipp:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

   If the port is empty or not given, port 631 is assumed.  The
   semantics are that the identified resource (see <a href="./rfc2616#section-5.1.2">section 5.1.2 of
   [RFC2616]</a>) is located at the IPP print service listening for HTTP
   connections on that port of that host, and the Request-URI for the
   identified resource is 'abs_path'.

   If the 'abs_path' is not present in the URL, it MUST be given as "/"
   when used as a Request-URI for a resource (see <a href="./rfc2616#section-5.1.2">section 5.1.2 of
   [RFC2616]</a>).






<span class="grey">Herriot & McDonald          Standards Track                     [Page 5]</span>

<span id="page-6" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


<span class="h3"><a class="selflink" id="section-4.6" href="#section-4.6">4.6</a>.  IPP URL Examples</span>

   Note:  Literal IPv4 or IPv6 addresses SHOULD NOT be used in IPP URLs.

<span class="h4"><a class="selflink" id="section-4.6.1" href="#section-4.6.1">4.6.1</a>.  IPP Printer URL Examples</span>

   The following are examples of well-formed IPP URLs for IPP Printers
   (for example, to be used as protocol elements in 'printer-uri'
   operation attributes of 'Print-Job' request messages):

      ipp://example.com
      ipp://example.com/printer
      ipp://example.com/printer/tiger
      ipp://example.com/printer/fox
      ipp://example.com/printer/tiger/bob
      ipp://example.com/printer/tiger/ira

   Each of the above URLs are well-formed URLs for IPP Printers and each
   would reference a logically different IPP Printer, even though some
   of those IPP Printers might share the same host system.  The 'bob' or
   'ira' last path components might represent two different physical
   printer devices, while 'tiger' might represent some grouping of IPP
   Printers (for example, a load-balancing spooler).  Or the 'bob' and
   'ira' last path components might represent separate human recipients
   on the same physical printer device (for example, a physical printer
   supporting two job queues).  In either case, both 'bob' and 'ira'
   would behave as different and independent IPP Printers.

   The following are examples of well-formed IPP URLs for IPP Printers
   with (optional) ports and paths:

      ipp://example.com
      ipp://example.com/~smith/printer
      ipp://example.com:631/~smith/printer

   The first and second IPP URLs above MUST be resolved to port 631
   (IANA assigned well-known port for IPP).  The second and third IPP
   URLs above are equivalent (see <a href="#section-4.7">section 4.7</a> below).

<span class="h4"><a class="selflink" id="section-4.6.2" href="#section-4.6.2">4.6.2</a>.  IPP Job URL Examples</span>

   The following are examples of well-formed IPP URLs for IPP Jobs (for
   example, to be used as protocol elements in 'job-uri' attributes of
   'Print-Job' response messages):

      ipp://example.com/printer/123
      ipp://example.com/printer/tiger/job123




<span class="grey">Herriot & McDonald          Standards Track                     [Page 6]</span>

<span id="page-7" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   IPP Job URLs are valid and meaningful only until Job completion and
   possibly an implementation defined optional period of persistence
   after Job completion (see IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>]).

   Ambiguously, <a href="#section-4.3.1">section 4.3.1</a> 'job-uri' of IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] states
   that:

      "the precise format of a Job URI is implementation dependent."

   Thus, the relationship between the value of the "printer-uri"
   operation attribute used in a 'Print-Job' request and the value of
   the "job-uri" attribute returned in the corresponding 'Print-Job'
   response is implementation dependent.  Also, <a href="#section-4.3.3">section 4.3.3</a> 'job-
   printer-uri' of IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] states that the 'job-printer-uri'
   attribute of a Job object:

      "permits a client to identify the Printer object that created this
      Job object when only the Job object's URI is available to the
      client."

   However, the above statement is false, because the transform from an
   IPP Job URL to the corresponding IPP Printer URL is unspecified in
   either IPP Model [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>] or IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

   IPP Printers that conform to this specification SHOULD only generate
   IPP Job URLs (for example, in the "job-uri" attribute in a 'Print-
   Job' response) by appending exactly one path component to the
   corresponding IPP Printer URL (for interoperability).

<span class="h3"><a class="selflink" id="section-4.7" href="#section-4.7">4.7</a>.  IPP URL Comparisons</span>

   When comparing two IPP URLs to decide if they match or not, an IPP
   Client MUST use the same rules as those defined for HTTP URI
   comparisons in [<a href="./rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>], with the sole following exception:

   -  A port that is empty or not given MUST be treated as equivalent to
      the well-known port for that IPP URL (port 631);

      See:  <a href="#section-3.2.3">Section 3.2.3</a>, "URI Comparison", in [<a href="./rfc2616" title=""Hypertext Transfer Protocol -- HTTP/1.1"">RFC2616</a>].












<span class="grey">Herriot & McDonald          Standards Track                     [Page 7]</span>

<span id="page-8" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>.  Conformance Requirements</span>

<span class="h3"><a class="selflink" id="section-5.1" href="#section-5.1">5.1</a>.  IPP Client Conformance Requirements</span>

      IPP Clients that conform to this specification:

   a) MUST only send IPP protocol connections to the port specified in
      each given IPP URL (if present) or otherwise to IANA assigned
      well-known port 631;

   b) MUST only send IPP URLs used as protocol elements in outgoing IPP
      protocol request messages (for example, in the "printer-uri"
      operation attribute in a 'Print-Job' request) that conform to the
      ABNF specified in <a href="#section-4.5">section 4.5</a>, "IPP URL Scheme Syntax, of this
      document;

   c) MUST only convert IPP URLs to their corresponding HTTP URL forms
      according to the rules in <a href="#section-5">section 5</a>, "IPP URL Scheme", in
      [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

<span class="h3"><a class="selflink" id="section-5.2" href="#section-5.2">5.2</a>.  IPP Printer Conformance Requirements</span>

   IPP Printers that conform to this specification:

   a) MUST listen for incoming IPP protocol connections on IANA-assigned
      well-known port 631, unless explicitly configured by system
      administrators or site policies;

   b) SHOULD NOT listen for incoming IPP protocol connections on any
      other port, unless explicitly configured by system administrators
      or site policies;

   c) SHOULD only accept IPP URLs used as protocol elements in incoming
      IPP protocol request messages (for example, in the "printer-uri"
      operation attribute in a 'Print-Job' request) that conform to the
      ABNF specified in <a href="#section-4.5">section 4.5</a>, "IPP URL Scheme Syntax", of this
      document;

   d) SHOULD only send IPP URLs used as protocol elements in outgoing
      IPP protocol response messages (for example, in the "job-uri"
      attribute in a 'Print-Job' response) that conform to the ABNF
      specified in <a href="#section-4.5">section 4.5</a>, "IPP URL Scheme Syntax", of this
      document;

   e) SHOULD only generate IPP Job URLs (for example, in the "job-uri"
      attribute in a 'Print-Job' response) by appending exactly one path
      component to the corresponding IPP Printer URL (for
      interoperability);



<span class="grey">Herriot & McDonald          Standards Track                     [Page 8]</span>

<span id="page-9" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   f) SHOULD NOT use literal IPv6 or IPv4 addresses in configured or
      locally generated IPP URLs.

<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>.  IANA Considerations</span>

   This IPP URL Scheme specification does not introduce any additional
   IANA considerations, beyond those described in [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] and
   [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

   See:  <a href="#section-6">Section 6</a>, "IANA Considerations" in [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>]
   See:  <a href="#section-6">Section 6</a>, "IANA Considerations" in [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>.  Internationalization Considerations</span>

   This IPP URL Scheme specification does not introduce any additional
   internationalization considerations, beyond those described in
   [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] and [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

   See:  <a href="#section-7">Section 7</a>, "Internationalization Considerations", in [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].
   See:  <a href="#section-7">Section 7</a>, "Internationalization Considerations", in [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>.  Security Considerations</span>

   This IPP URL Scheme specification does not introduce any additional
   security considerations, beyond those described in [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] and
   [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>], except the following:

   a) An IPP URL might be faked to point to a rogue IPP print service,
      thus collecting confidential document contents from IPP clients.
      Server authentication mechanisms and security mechanisms specified
      in the IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] are sufficient to address this
      threat.

   b) An IPP URL might be used to access an IPP print service by an
      unauthorized IPP client.  Client authentication mechanisms and
      security mechanisms specified in the IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] are
      sufficient to address this threat.

   c) An IPP URL might be used to access an IPP print service at a print
      protocol application layer gateway (for example, an IPP to LPD
      gateway [<a href="./rfc2569" title=""Mapping between LPD and IPP Protocols"">RFC2569</a>]) causing silent compromise of IPP security
      mechanisms.  There is no practical defense against this threat by
      a client system.  System administrators should avoid such
      compromising configurations.

   d) An IPP URL does not have parameters to specify the required client
      authentication mechanism (for example, 'certificate' as defined in
      <a href="#section-4.4.2">section 4.4.2</a>, "uri-authentication-supported", of IPP Model



<span class="grey">Herriot & McDonald          Standards Track                     [Page 9]</span>

<span id="page-10" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


      [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>]) and required security mechanism (for example, 'tls' as
      defined in <a href="#section-4.4.3">section 4.4.3</a>, "uri-security-supported", of IPP Model
      [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>]).  Service discovery or directory protocols might be
      used to discover the required client authentication and security
      mechanisms associated with given IPP URLs.

   Historical Note:  During the development of this document,
   consideration was given to the addition of standard IPP URL
   parameters for the client authentication and security mechanisms.
   However, based on a strong IETF IPP Working Group consensus, no
   parameters were added to the "ipp" URL scheme as originally defined
   in IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] in September 2000, for reasons of backwards
   compatibility with the many currently shipping implementations of
   IPP/1.1.

   See:  <a href="#section-8">Section 8</a>, "Security Considerations", in [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].
   See:  <a href="#section-8">Section 8</a>, "Security Considerations", in [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>.  Intellectual Property Rights</span>

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in <a href="https://www.rfc-editor.org/bcp/bcp11">BCP-11</a>.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.












<span class="grey">Herriot & McDonald          Standards Track                    [Page 10]</span>

<span id="page-11" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


<span class="h2"><a class="selflink" id="section-10" href="#section-10">10</a>.  Normative References</span>

   [<a id="ref-RFC2234">RFC2234</a>]      Crocker, D. and  P. Overell, "Augmented BNF for Syntax
                  Specifications: ABNF", <a href="./rfc2234">RFC 2234</a>, November 1997.

   [<a id="ref-RFC2396">RFC2396</a>]      Berners-Lee, T., Fielding, R. and L. Masinter,
                  "Uniform Resource Identifiers (URI): Generic Syntax",
                  <a href="./rfc2396">RFC 2396</a>, August 1998.

   [<a id="ref-RFC2616">RFC2616</a>]      Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
                  Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext
                  Transfer Protocol -- HTTP/1.1", <a href="./rfc2616">RFC 2616</a>, June 1999.

   [<a id="ref-RFC2732">RFC2732</a>]      Hinden, R., Carpenter, B. and L. Masinter, "Format for
                  Literal IPv6 Addresses in URL's", <a href="./rfc2732">RFC 2732</a>, December
                  1999.

   [<a id="ref-RFC2910">RFC2910</a>]      Herriot, R., Butler, S., Moore, P., Turner, R. and J.
                  Wenn, "IPP/1.1 Encoding and Transport [IPP Protocol]",
                  <a href="./rfc2910">RFC 2910</a>, September 2000.

   [<a id="ref-RFC2911">RFC2911</a>]      Hastings, T., Herriot, R., deBry, R., Isaacson, S. and
                  P. Powell, "IPP/1.1 Model and Semantics [IPP Model]",
                  <a href="./rfc2911">RFC 2911</a>, September 2000.

   [<a id="ref-US-ASCII">US-ASCII</a>]     Coded Character Set -- 7-bit American Standard Code
                  for Information Interchange, ANSI X3.4-1986.

<span class="h2"><a class="selflink" id="section-11" href="#section-11">11</a>.  Informative References</span>

   [<a id="ref-IANA-MIMEREG">IANA-MIMEREG</a>] IANA MIME Media Types Registry.
                  <a href="ftp://ftp.iana.org/in-notes/iana/assignments/media-types/">ftp://ftp.iana.org/in-notes/iana/assignments/media-</a>
                  <a href="ftp://ftp.iana.org/in-notes/iana/assignments/media-types/">types/</a>...

   [<a id="ref-IANA-PORTREG">IANA-PORTREG</a>] IANA Port Numbers Registry. <a href="ftp://ftp.iana.org/in-notes/iana/assignments/port-numbers">ftp://ftp.iana.org/in-</a>
                  <a href="ftp://ftp.iana.org/in-notes/iana/assignments/port-numbers">notes/iana/assignments/port-numbers</a>

   [<a id="ref-RFC2569">RFC2569</a>]      Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
                  "Mapping between LPD and IPP Protocols", <a href="./rfc2569">RFC 2569</a>,
                  April 1999.

   [<a id="ref-RFC2717">RFC2717</a>]      Petke, R. and I. King, "Registration Procedures for
                  URL Scheme Names", <a href="./rfc2717">RFC 2717</a>, November 1999.

   [<a id="ref-RFC2718">RFC2718</a>]      Masinter, L., Alvestrand, H., Zigmond, D. and R.
                  Petke, "Guidelines for new URL Schemes", <a href="./rfc2718">RFC 2718</a>,
                  November 1999.




<span class="grey">Herriot & McDonald          Standards Track                    [Page 11]</span>

<span id="page-12" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   [<a id="ref-RFC3196">RFC3196</a>]      Hastings, T., Manros, C., Zehler, P., Kugler, C. and
                  H. Holst, "Internet Printing Protocol/1.1:
                  Implementor's Guide", <a href="./rfc3196">RFC 3196</a>, November 2001.

<span class="h2"><a class="selflink" id="section-12" href="#section-12">12</a>.  Acknowledgments</span>

   This document is a product of the Internet Printing Protocol Working
   Group of the Internet Engineering Task Force (IETF).

   Thanks to Pat Fleming (IBM), Tom Hastings (Xerox), Harry Lewis (IBM),
   Hugo Parra (Novell), Don Wright (Lexmark), and all the members of the
   IETF IPP WG.

   <a href="#section-5">Section 5</a>, "IPP URL Scheme", in IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>] was the
   primary input to this IPP URL Scheme specification.




































<span class="grey">Herriot & McDonald          Standards Track                    [Page 12]</span>

<span id="page-13" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


Appendix A - Registration of "ipp" URL Scheme

   Note:  The following registration obsoletes <a href="#section-5">section 5</a>, "IPP URL
   Scheme", of IPP Protocol [<a href="./rfc2911" title=""IPP/1.1 Model and Semantics [IPP Model]"">RFC2911</a>].

   URL Scheme Name:  ipp

   URL Scheme Syntax:

      ipp-URL = "ipp:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

   Character Encoding Considerations:

      IPP URLs MUST use [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>] encoding, as do their equivalent HTTP
      URLs.  Characters other than those in the "reserved" and "unsafe"
      sets [<a href="./rfc2396" title=""Uniform Resource Identifiers (URI): Generic Syntax"">RFC2396</a>] are equivalent to their ""%" HEX HEX" encoding.

   Intended Usage:

      The intended usage of the "ipp" URL scheme is COMMON.

      An "ipp" URL is used to specify the network location of a print
      service that supports the IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>], or of a network
      resource (for example, a print job) managed by such a print
      service.  An IPP client can choose to establish an HTTP connection
      to the specified print service for transmission of IPP protocol
      requests (for example, IPP print job submission requests).

   Applications or Protocols which use this URL scheme:

      See:  <a href="#section-5">Section 5</a>, "IPP URL Scheme", in IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

   Interoperability Considerations:

      See:  <a href="#section-9">Section 9</a>, "Interoperability with IPP/1.0 Implementations",
      in IPP Protocol [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

   Security Considerations:

      See:  <a href="#section-8">Section 8</a>, "Security Considerations", in IPP Protocol
      [<a href="./rfc2910" title=""IPP/1.1 Encoding and Transport [IPP Protocol]"">RFC2910</a>].

   Relevant Publications:

   [<a id="ref-RFC2910">RFC2910</a>] Herriot, R., Butler, S., Moore, P., Turner, R. and J. Wenn,
             "IPP/1.1 Encoding and Transport [IPP Protocol]", <a href="./rfc2910">RFC 2910</a>,
             September 2000.




<span class="grey">Herriot & McDonald          Standards Track                    [Page 13]</span>

<span id="page-14" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


   [<a id="ref-RFC2616">RFC2616</a>] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter,
             L., Leach, P. and T. Berners-Lee, "Hypertext Transfer
             Protocol -- HTTP/1.1", <a href="./rfc2616">RFC 2616</a>, June 1999.

   [<a id="ref-RFC3510">RFC3510</a>] Herriot, R. and I. McDonald, "IPP/1.1: IPP URL Scheme", <a href="./rfc3510">RFC</a>
             <a href="./rfc3510">3510</a>, April 2003.

   Person & email address to contact for further information:

   Robert Herriot
   Consultant
   706 Colorado Ave
   Palo Alto, CA  94303

   Phone: +1 650-327-4466
   EMail: [email protected]

   Ira McDonald
   High North Inc
   221 Ridge Ave
   Grand Marais, MI  49839

   Phone: +1 906-494-2434
   EMail: [email protected]



























<span class="grey">Herriot & McDonald          Standards Track                    [Page 14]</span>

<span id="page-15" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


Authors' Addresses

   Robert Herriot
   Consultant
   706 Colorado Ave
   Palo Alto, CA  94303

   Phone: +1 650-327-4466
   EMail: [email protected]


   Ira McDonald
   High North Inc
   221 Ridge Ave
   Grand Marais, MI  49839

   Phone: +1 906-494-2434
   EMail: [email protected]

   Usage questions and comments on this IPP URL Scheme should be sent
   directly to the editors at their above addresses (and to the IPP
   mailing list, if you are a subscriber - see below).

   IPP Web Page:      <a href="http://www.pwg.org/ipp/IPP">http://www.pwg.org/ipp/</a>
   <a href="http://www.pwg.org/ipp/IPP">IPP</a> Mailing List:  [email protected]

   To subscribe to the IPP mailing list, send the following email:

   1) send it to [email protected]

   2) leave the subject line blank

   3) put the following two lines in the message body:  subscribe ipp

   Implementers of this specification are encouraged to join the IPP
   Mailing List in order to participate in any discussions of
   clarification issues and comments.  In order to reduce spam the
   mailing list rejects mail from non-subscribers, so you must subscribe
   to the mailing list in order to send a question or comment to the IPP
   mailing list.











<span class="grey">Herriot & McDonald          Standards Track                    [Page 15]</span>

<span id="page-16" ></span>
<span class="grey"><a href="./rfc3510">RFC 3510</a>                     IPP URL Scheme                   April 2003</span>


Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.



















Herriot & McDonald          Standards Track                    [Page 16]

Additional Resources