draft-ietf-ipp-url-scheme-04.txt   rfc3510.txt 
Internet Printing Protocol Working Group Bob Herriot Network Working Group R. Herriot
INTERNET DRAFT Consultant Request for Comments: 3510 I. McDonald
<draft-ietf-ipp-url-scheme-04.txt> Ira McDonald Updates: 2910 High North Inc.
Updates: RFC 2910 High North Inc Category: Standards Track April 2003
[Target Category: Standards Track] 10 January 2002
Expires 10 July 2002
Internet Printing Protocol/1.1:
IPP URL Scheme IPP URL Scheme
<draft-ietf-ipp-url-scheme-04.txt>
Copyright (C) The Internet Society (2002). All Rights Reserved.
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document specifies an Internet standards track protocol for the
all provisions of Section 10 of RFC2026. Internet-Drafts are working Internet community, and requests discussion and suggestions for
documents of the Internet Engineering Task Force (IETF), its areas, improvements. Please refer to the current edition of the "Internet
and its working groups. Note that other groups may also distribute Official Protocol Standards" (STD 1) for the standardization state
working documents as Internet-Drafts. and status of this protocol. Distribution of this memo is unlimited.
Internet-Drafts are draft documents valid for a maximum of six months Copyright Notice
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
To view the list of Internet-Draft Shadow Directories, see Copyright (C) The Internet Society (2003). All Rights Reserved.
http://www.ietf.org/shadow.html.
Abstract Abstract
This memo defines the "ipp" URL scheme for registration by IANA in This memo defines the "ipp" URL (Uniform Resource Locator) scheme.
the IETF tree. This memo fully conforms to the requirements in This memo updates IPP/1.1: Encoding and Transport (RFC 2910), by
[RFC2717]. The "ipp" URL (Uniform Resource Locator) scheme is used expanding and clarifying Section 5, "IPP URL Scheme", of RFC 2910.
for specifying the location of an IPP Printer, IPP Job, or other IPP An "ipp" URL is used to specify the network location of a print
object (defined in any future version of IPP) which implements the service that supports the IPP Protocol (RFC 2910), or of a network
IPP/1.1 Model [RFC2911] and the IPP/1.1 Protocol encoding over HTTP resource (for example, a print job) managed by such a print service.
[RFC2910] or any later version of IPP. The intended usage of the
"ipp" URL scheme is COMMON.
Table of Contents Table of Contents
1. Introduction ............................................... 2
2. Terminology ................................................ 3
2.1. Conformance Terminology .............................. 3
2.2. Model Terminology .................................... 3
3. IPP Model for Printers and Jobs ............................ 3
4. IPP URL Scheme ............................................. 4
4.1. IPP URL Scheme Applicability ......................... 4
4.2. IPP URL Scheme Associated Port ....................... 4
4.3. IPP URL Scheme Associated MIME Type .................. 5
4.4. IPP URL Scheme Character Encoding .................... 5
4.5. IPP URL Scheme Syntax ................................ 5
4.6. IPP URL Examples ..................................... 6
4.6.1. IPP Printer URL Examples ..................... 6
4.6.2. IPP Job URL Examples ......................... 6
4.7. IPP URL Comparisons .................................. 7
5. Conformance Requirements ................................... 8
5.1. IPP Client Conformance Requirements .................. 8
5.2. IPP Printer Conformance Requirements ................. 8
6. IANA Considerations ........................................ 9
7. Internationalization Considerations ........................ 9
8. Security Considerations .................................... 9
9. Intellectual Property Rights ............................... 10
10. Normative References ....................................... 11
11. Informative References ..................................... 11
12. Acknowledgments ............................................ 12
Appendix A - Registration of "ipp" URL Scheme .................. 13
Authors' Addresses ............................................. 15
Full Copyright Statement ....................................... 16
1. Introduction ............................................... 3
2. Terminology ................................................ 4
2.1. Conformance Terminology ................................ 4
2.2. Model Terminology ...................................... 4
3. IPP Model for Printers and Jobs ............................ 5
4. IPP URL Scheme ............................................. 6
4.1. Applicability and Intended Usage ....................... 6
4.2. Associated IPP Port .................................... 6
4.3. Associated IPP MIME Type ............................... 6
4.4. Character Encoding ..................................... 6
4.5. Syntax in ABNF ......................................... 7
4.5.1. IPP URL Examples ................................... 8
4.5.2. IPP URL Comparisons ................................ 9
5. Conformance Requirements ................................... 10
5.1. Conformance Requirements for IPP Clients ............... 10
5.2. Conformance Requirements for IPP Printers .............. 10
6. IANA Considerations ........................................ 11
7. Internationalization Considerations ........................ 11
8. Security Considerations .................................... 11
9. References ................................................. 12
10. Acknowledgments ........................................... 12
11. Authors' Addresses ........................................ 13
12. Full Copyright Statement .................................. 14
13. Appendix X - Change History ............................... 15
1. Introduction 1. Introduction
See section 1 'Introduction' in [RFC2911] for a full description of This memo conforms to all of the requirements in Registration
the IPP document set and overview information about IPP. Procedures for URL Scheme Names [RFC2717]. This memo also follows
all of the recommendations in Guidelines for new URL Schemes
[RFC2718].
This memo defines the "ipp" URL scheme for registration by IANA in See section 1, "Introduction", of [RFC2911] and section 1,
the IETF tree. This memo fully conforms to the requirements in "Introduction", of [RFC3196] for overview information about IPP. See
[RFC2717]. The "ipp" URL (Uniform Resource Locator) scheme is used section 10, "Description of the Base IPP Documents", of [RFC3196] for
for specifying the location of an IPP Printer, IPP Job, or other IPP a full description of the IPP document set.
object (defined in any future version of IPP) which implements the
IPP/1.1 Model [RFC2911] and the IPP/1.1 Protocol encoding over HTTP This memo updates IPP/1.1: Encoding and Transport (RFC 2910), by
[RFC2910] or any later version of IPP. The intended usage of the expanding and clarifying Section 5, "IPP URL Scheme", of RFC 2910,
"ipp" URL scheme is COMMON. 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 IPP URL scheme defined in this document is based on the ABNF for
the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived the HTTP URL scheme defined in HTTP [RFC2616], which in turn is
from the URI Generic Syntax [RFC2396] and further updated by derived from the URI Generic Syntax [RFC2396] and further updated for
[RFC2732] and [RFC2373] (for IPv6 addresses in URLs). An IPP URL is IPv6 by [RFC2732]. An IPP URL is transformed into an HTTP URL
transformed into an HTTP URL according to the rules specified in according to the rules specified in section 5 of IPP Protocol
section 5 of the IPP/1.1 Encoding and Transport [RFC2910]. [RFC2910].
This document defines: This document defines IPP URL scheme applicability, associated port
- IPP URL scheme applicability and intended usage; (631), associated MIME type ("application/ipp"), character encoding,
- IPP URL scheme associated port (i.e., well-known port 631); and syntax.
- IPP URL scheme associated MIME type (i.e., "application/ipp");
- IPP URL scheme character encoding;
- IPP URL scheme syntax in ABNF [RFC2234];
- IPP URL scheme IANA, internationalization, and security
considerations.
This document is laid out as follows: This document is laid out as follows:
- Section 2 is the terminology used throughout the document.
- Section 3 provides references to the IPP Printer and IPP Job object - Section 2 defines the terminology used throughout the document.
model.
- Section 4 specifies the IPP URL scheme. - Section 3 supplies references to the IPP Printer and IPP Job
object model defined in IPP Model [RFC2911].
- Section 5 specifies the conformance requirements for IPP Clients - Section 4 specifies the IPP URL scheme.
and IPP Printers that claim conformance to this document.
- Sections 6, 7, and 8 specify IANA, internationalization, and - Section 5 specifies the conformance requirements for IPP Clients
security considerations. and IPP Printers that claim conformance to this document.
- Sections 9, 10, 11, and 12 list references, acknowledgements, - Sections 6, 7, and 8 specify IANA, internationalization, and
authors' addresses, and full IETF copyright statement. security considerations.
- Sections 9, 10, 11, 12, and 13 specify normative references,
informative references, acknowledgements, authors' addresses, and
full IETF copyright statement.
- Section 14 (Appendix A) is a completed registration template for
the IPP URL Scheme (see section 6.0 of [RFC2717]).
2. Terminology 2. Terminology
This specification document uses the terminology defined in this This specification document uses the terminology defined in this
section. section.
2.1. Conformance Terminology 2.1. Conformance Terminology
The uppercase terms "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL The uppercase terms "MUST", "MUST NOT", "REQUIRED", "SHALL",
NOT" "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in "SHALL NOT" "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
this document are to be interpreted as described in [RFC2119]. These "OPTIONAL" in this document are to be interpreted as described in
terms are used to specify conformance requirements for all [RFC2119]. These terms are used to specify conformance
implementations of this specification. requirements for all implementations (both print clients and print
services) of this specification.
2.2. Model Terminology 2.2. Model Terminology
See section 12.2 'Model Terminology' in [RFC2911]. See section 12.2, "Model Terminology", in IPP Model [RFC2911].
3. IPP Model for Printers and Jobs 3. IPP Model for Printers and Jobs
See section 2 'IPP Objects', section 2.1 'Printer Object', and See section 2, "IPP Objects", section 2.1, "Printer Object", and
section 2.2 'Job Object' in [RFC2911] for a full description of the section 2.2, "Job Object", in [RFC2911] for a full description of
IPP object model and terminology. the IPP object model and terminology.
In this document, "IPP Client" means the software (on some hardware In this document, "IPP Client" means the software (on some
platform) that submits, monitors, and/or manages print jobs via hardware platform) that submits, monitors, and/or manages print
IPP/1.1 [RFC2910] [RFC2911], or any later version of IPP to a jobs via the IPP Protocol [RFC2910] to a print spooler, print
spooler, gateway, or actual printing device. gateway, or physical printing device.
In this document, "IPP Printer object" means the software (on some In this document, "IPP Printer object" means the software (on some
hardware platform) that receives print jobs and/or printer/job hardware platform) that receives print jobs and/or printer/job
operations via IPP/1.1 [RFC2910] [RFC2911], or any later version of operations via the IPP Protocol [RFC2910] from an "IPP Client".
IPP from an "IPP Client".
In this document, "IPP Printer" is a synonym for "IPP Printer In this document, "IPP Printer" is a synonym for "IPP Printer
object". object".
In this document, "IPP Job object" means the set of attributes and In this document, "IPP Job object" means the set of attributes and
documents for one print job on an "IPP Printer". 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 Job" is a synonym for "IPP Job object".
In this document, "IPP URL" means a URL with the "ipp" scheme. 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 Note: In this document, "IPP URL" is a synonym for "ipp-URL" (in
section 4 'IPP URL Scheme' of this document) and "ipp-URL" (in section 4, "IPP URL Scheme", of this document) and "ipp-URL" (in
section 5 'IPP URL Scheme' of [RFC2910]). section 5, "IPP URL Scheme", of [RFC2910]).
4. IPP URL Scheme 4. IPP URL Scheme
4.1. Applicability and Intended Usage 4.1. IPP URL Scheme Applicability
This memo defines the "ipp" URL scheme for registration by IANA in
the IETF tree. This memo fully conforms to the requirements in
[RFC2717]. The "ipp" URL (Uniform Resource Locator) scheme is used
for specifying the location of an IPP Printer, IPP Job, or other IPP
object (defined in any future version of IPP) which implements the
IPP/1.1 Model [RFC2911] and the IPP/1.1 Protocol encoding over HTTP
[RFC2910] or any later version of IPP. The intended usage of the
"ipp" URL scheme is COMMON.
4.2. Associated IPP Port
All IPP URLs which do NOT explicitly specify a port MUST be used over The "ipp" URL scheme MUST only be used to specify absolute URLs
IANA-assigned well-known port 631, as registered in [IANA-PORTREG]. (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 [RFC2911] over an HTTP [RFC2616] transport, as
defined in IPP Protocol [RFC2910]. Any other transport binding
for the abstract protocol defined in IPP Model [RFC2911] would
require a different URL scheme.
See: IANA Port Numbers Registry [IANA-PORTREG]. The "ipp" URL scheme allows an IPP client to choose an appropriate
See: IPP Encoding and Transport [RFC2910]. 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.
4.3. Associated IPP MIME Type 4.2. IPP URL Scheme Associated Port
All IPP protocol operations (requests and responses) MUST be conveyed All IPP URLs which do NOT explicitly specify a port MUST be
in an "application/ipp" MIME media type as registered in resolved to IANA-assigned well-known port 631, as registered in
[IANA-MIMEREG]. IPP URLs MUST refer to IPP Printers which support [IANA-PORTREG].
this "application/ipp" MIME media type.
See: IANA MIME Media Types Registry [IANA-MIMEREG]. See: IANA Port Numbers Registry [IANA-PORTREG].
See: IPP Encoding and Transport [RFC2910]. See: IPP Protocol [RFC2910].
4.4. Character Encoding 4.3. IPP URL Scheme Associated MIME Type
The IPP URL scheme defined in this document is based on the ABNF for All IPP URLs MUST be used to specify network print services which
the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived support the "application/ipp" MIME media type as registered in
from the URI Generic Syntax [RFC2396] and further updated by [IANA-MIMEREG] for IPP protocol requests and responses.
[RFC2732] and [RFC2373] (for IPv6 addresses in URLs). An IPP URL is
transformed into an HTTP URL according to the rules specified in
section 5 of the IPP/1.1 Encoding and Transport [RFC2910].
The IPP URL scheme is case-insensitive in the host name or host See: IANA MIME Media Types Registry [IANA-MIMEREG].
address part; however the path part is case-sensitive, as in See: IPP Protocol [RFC2910].
[RFC2396]. Codepoints outside [US-ASCII] MUST be hex escaped by the
mechanism specified in [RFC2396].
4.5. Syntax in ABNF 4.4. IPP URL Scheme Character Encoding
Note: In this document, "IPP URL" is a synonym for "ipp_URL" (in IPP URLs MUST use [RFC2396] encoding, as do their equivalent HTTP
section 4 'IPP URL Scheme' of this document) and "ipp-URL" (in URLs. Characters other than those in the "reserved" and "unsafe"
section 5 'IPP URL Scheme' of [RFC2910]). sets [RFC2396] are equivalent to their ""%" HEX HEX" encoding.
This memo defines the "ipp" URL scheme for registration by IANA in 4.5. IPP URL Scheme Syntax
the IETF tree. This memo fully conforms to the requirements in
[RFC2717]. The "ipp" URL (Uniform Resource Locator) scheme is used
for specifying the location of an IPP Printer, IPP Job, or other IPP
object (defined in any future version of IPP) which implements the
IPP/1.1 Model [RFC2911] and the IPP/1.1 Protocol encoding over HTTP
[RFC2910] or any later version of IPP. The intended usage of the
"ipp" URL scheme is COMMON.
The IPP protocol places a limit of 1023 octets (NOT characters) on The abstract protocol defined in IPP Model [RFC2911] places a
the length of a URI (see section 4.1.5 'uri' in [RFC2911]). An IPP limit of 1023 octets (NOT characters) on the length of a URI (see
Printer MUST return 'client-error-request-value-too-long' (see section 4.1.5, "uri", in [RFC2911]).
section 13.1.4.10 in [RFC2911]) when a URI received in a request
(e.g., in the "printer-uri" attribute) is too long.
Note: IPP Printers ought to be cautious about depending on URI Note: IPP Printers ought to be cautious about depending on URI
lengths above 255 bytes, because some older client implementations lengths above 255 bytes, because some older client implementations
might not properly support these lengths. might not properly support these lengths.
IPP URLs MUST be represented in absolute form. Absolute URLs always IPP URLs MUST be represented in absolute form. Absolute URLs MUST
begin with a scheme name followed by a colon. For definitive always begin with a scheme name followed by a colon. For definitive
information on URL syntax and semantics, see "Uniform Resource information on URL syntax and semantics, see "Uniform Resource
Identifiers (URI): Generic Syntax and Semantics" [RFC2396]. This Identifiers (URI): Generic Syntax and Semantics" [RFC2396]. This
specification adopts the definitions of "host", "port", "abs_path", specification adopts the definitions of "host", "port", "abs_path",
"rel_path", and "query" from [RFC2396], as updated by [RFC2732] and and "query" from [RFC2396], as updated for IPv6 by [RFC2732].
[RFC2373] (for IPv6 addresses in URLs).
The IPP URL scheme syntax in ABNF is as follows: The IPP URL scheme syntax in ABNF is as follows:
ipp_URL = "ipp:" "//" host [ ":" port ] [ abs_path [ "?" query ]] ipp-URL = "ipp:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
If the port is empty or not given, port 631 is assumed. The If the port is empty or not given, port 631 is assumed. The
semantics are that the identified resource (see section 5.1.2 of semantics are that the identified resource (see section 5.1.2 of
[RFC2616]) is located at the IPP Printer or IPP Job listening for [RFC2616]) is located at the IPP print service listening for HTTP
HTTP connections on that port of that host, and the Request-URI for connections on that port of that host, and the Request-URI for the
the identified resource is 'abs_path'. identified resource is 'abs_path'.
If the 'abs_path' is not present in the URL, it MUST be given as "/" 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 section 5.1.2 of when used as a Request-URI for a resource (see section 5.1.2 of
[RFC2616]). [RFC2616]).
4.5.1. IPP URL Examples 4.6. IPP URL Examples
The following are examples of valid IPP URLs for IPP Printers: Note: Literal IPv4 or IPv6 addresses SHOULD NOT be used in IPP URLs.
ipp://abc.com 4.6.1. IPP Printer URL Examples
ipp://abc.com/printer
ipp://abc.com/tiger
ipp://abc.com/printers/tiger
ipp://abc.com/printers/fox
ipp://abc.com/printers/tiger/bob
ipp://abc.com/printers/tiger/ira
ipp://printer.abc.com
ipp://printers.abc.com/tiger
ipp://printers.abc.com/tiger/bob
ipp://printers.abc.com/tiger/ira
Each of the above URLs are legitimate URLs for IPP Printers and each The following are examples of well-formed IPP URLs for IPP Printers
references a logically different IPP Printer, even though some of the (for example, to be used as protocol elements in 'printer-uri'
IPP Printers may share the same hardware. The last part of the path operation attributes of 'Print-Job' request messages):
'bob' or 'ira' may represent two different hardware devices where
'tiger' represents some grouping of IPP Printers (e.g., a
load-balancing spooler) or the two names may represent separate human
recipients ('bob' and 'ira') on the same hardware device (e.g., a
printer supporting two job queues). In either case both 'bob' and
'ira' behave as different IPP Printers.
The following are examples of IPP URLs with (optional) ports and ipp://example.com
paths: 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
ipp://abc.com Each of the above URLs are well-formed URLs for IPP Printers and each
ipp://abc.com/~smith/printer would reference a logically different IPP Printer, even though some
ipp://abc.com:631/~smith/printer 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 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 (IANA assigned well-known port for IPP). The second and third IPP
URLs above are equivalent (see section 4.5.2 below). URLs above are equivalent (see section 4.7 below).
The following literal IPv4 addresses: 4.6.2. IPP Job URL Examples
192.9.5.5 ; IPv4 address in IPv4 style The following are examples of well-formed IPP URLs for IPP Jobs (for
186.7.8.9 ; IPv4 address in IPv4 style example, to be used as protocol elements in 'job-uri' attributes of
'Print-Job' response messages):
are represented in the following example IPP URLs: ipp://example.com/printer/123
ipp://example.com/printer/tiger/job123
ipp://192.9.5.5/prt1 IPP Job URLs are valid and meaningful only until Job completion and
ipp://186.7.8.9/printers/tiger/bob possibly an implementation defined optional period of persistence
after Job completion (see IPP Model [RFC2911]).
The following literal IPv6 addresses (conformant to [RFC2373]): Ambiguously, section 4.3.1 'job-uri' of IPP Model [RFC2911] states
that:
::192.9.5.5 ; IPv4 address in IPv6 style "the precise format of a Job URI is implementation dependent."
::FFFF:129.144.52.38 ; IPv4 address in IPv6 style
2010:836B:4179::836B:4179 ; IPv6 address per RFC 2373
are represented in the following example IPP URLs: 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, section 4.3.3 'job-
printer-uri' of IPP Model [RFC2911] states that the 'job-printer-uri'
attribute of a Job object:
ipp://[::192.9.5.5]/prt1 "permits a client to identify the Printer object that created this
ipp://[::FFFF:129.144.52.38]:631/printers/tiger Job object when only the Job object's URI is available to the
ipp://[2010:836B:4179::836B:4179]/printers/tiger/bob client."
4.5.2. IPP URL Comparisons 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 [RFC2911] or IPP Protocol [RFC2910].
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).
4.7. IPP URL Comparisons
When comparing two IPP URLs to decide if they match or not, an IPP 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 Client MUST use the same rules as those defined for HTTP URI
comparisons in [RFC2616], with the sole following exception: comparisons in [RFC2616], with the sole following exception:
- A port that is empty or not given MUST be treated as equivalent to - A port that is empty or not given MUST be treated as equivalent to
the well-known port for that IPP URL (port 631); the well-known port for that IPP URL (port 631);
See: Section 3.2.3 'URI Comparison' in [RFC2616]. See: Section 3.2.3, "URI Comparison", in [RFC2616].
5. Conformance Requirements 5. Conformance Requirements
5.1. Conformance Requirements for IPP Clients 5.1. IPP Client Conformance Requirements
IPP Clients that conform to this specification:
a) MUST send IPP URLs (e.g., in the "printer-uri" operation attribute IPP Clients that conform to this specification:
in 'Print-Job') that conform to the ABNF specified in section 4.5
of this document;
b) MUST send IPP operations via the port specified in the IPP URL (if a) MUST only send IPP protocol connections to the port specified in
present) or otherwise via IANA assigned well-known port 631; each given IPP URL (if present) or otherwise to IANA assigned
well-known port 631;
c) MUST convert IPP URLs to their corresponding HTTP URL forms b) MUST only send IPP URLs used as protocol elements in outgoing IPP
according to the rules in section 5 'IPP URL Scheme' in [RFC2910]; protocol request messages (for example, in the "printer-uri"
operation attribute in a 'Print-Job' request) that conform to the
ABNF specified in section 4.5, "IPP URL Scheme Syntax, of this
document;
d) SHOULD interoperate with IPP/1.0 Printers according to the rules c) MUST only convert IPP URLs to their corresponding HTTP URL forms
in section 9 'Interoperability with IPP/1.0 Implementations' and according to the rules in section 5, "IPP URL Scheme", in
section 9.2 'Security and URL Schemes' in [RFC2910]. [RFC2910].
5.2. Conformance Requirements for IPP Printers 5.2. IPP Printer Conformance Requirements
IPP Printers that conform to this specification: IPP Printers that conform to this specification:
a) SHOULD reject received IPP URLs in "application/ipp" request a) MUST listen for incoming IPP protocol connections on IANA-assigned
bodies (e.g., in the "printer-uri" attribute in a 'Print-Job' well-known port 631, unless explicitly configured by system
request) that do not conform to the ABNF for IPP URLs specified in administrators or site policies;
section 4.5 of this document;
b) SHOULD return IPP URLs in "application/ipp" response bodies (e.g., b) SHOULD NOT listen for incoming IPP protocol connections on any
in the "job-uri" attribute in a 'Print-Job' response) that do other port, unless explicitly configured by system administrators
conform to the ABNF for IPP URLs specified in section 4.5 of this 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 section 4.5, "IPP URL Scheme Syntax", of this
document; document;
c) MUST listen for IPP operations on IANA-assigned well-known port d) SHOULD only send IPP URLs used as protocol elements in outgoing
631, unless explicitly configured by system administrators or site IPP protocol response messages (for example, in the "job-uri"
policies; attribute in a 'Print-Job' response) that conform to the ABNF
specified in section 4.5, "IPP URL Scheme Syntax", of this
document;
d) SHOULD NOT listen for IPP operations on any other port, unless e) SHOULD only generate IPP Job URLs (for example, in the "job-uri"
explicitly configured by system administrators or site policies; attribute in a 'Print-Job' response) by appending exactly one path
component to the corresponding IPP Printer URL (for
interoperability);
e) SHOULD interoperate with IPP/1.0 Clients according to the rules in f) SHOULD NOT use literal IPv6 or IPv4 addresses in configured or
section 9 'Interoperability with IPP/1.0 Implementations' and locally generated IPP URLs.
section 9.2 'Security and URL Schemes' in [RFC2910].
6. IANA Considerations 6. IANA Considerations
This memo defines the "ipp" URL scheme for registration by IANA in
the IETF tree. This memo fully conforms to the requirements in
[RFC2717]. The "ipp" URL (Uniform Resource Locator) scheme is used
for specifying the location of an IPP Printer, IPP Job, or other IPP
object (defined in any future version of IPP) which implements the
IPP/1.1 Model [RFC2911] and the IPP/1.1 Protocol encoding over HTTP
[RFC2910] or any later version of IPP. The intended usage of the
"ipp" URL scheme is COMMON.
This IPP URL Scheme specification does not introduce any additional This IPP URL Scheme specification does not introduce any additional
IANA considerations, beyond those described in [RFC2910] and IANA considerations, beyond those described in [RFC2910] and
[RFC2911]. [RFC2911].
See: Section 6 'IANA Considerations' in [RFC2910] See: Section 6, "IANA Considerations" in [RFC2910]
See: Section 6 'IANA Considerations' in [RFC2911]. See: Section 6, "IANA Considerations" in [RFC2911].
7. Internationalization Considerations 7. Internationalization Considerations
This IPP URL Scheme specification does not introduce any additional This IPP URL Scheme specification does not introduce any additional
internationalization considerations, beyond those described in internationalization considerations, beyond those described in
[RFC2910] and [RFC2911]. [RFC2910] and [RFC2911].
See: Section 7 'Internationalization Considerations' in [RFC2910]. See: Section 7, "Internationalization Considerations", in [RFC2910].
See: Section 7 'Internationalization Considerations' in [RFC2911]. See: Section 7, "Internationalization Considerations", in [RFC2911].
8. Security Considerations 8. Security Considerations
This IPP URL Scheme specification does not introduce any additional This IPP URL Scheme specification does not introduce any additional
security considerations, beyond those described in [RFC2910] and security considerations, beyond those described in [RFC2910] and
[RFC2911]. [RFC2911], except the following:
See: Section 8 'Security Considerations' in [RFC2910]. a) An IPP URL might be faked to point to a rogue IPP print service,
See: Section 8 'Security Considerations' in [RFC2911]. thus collecting confidential document contents from IPP clients.
Server authentication mechanisms and security mechanisms specified
in the IPP Protocol [RFC2910] are sufficient to address this
threat.
9. References 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 [RFC2910] are
sufficient to address this threat.
See: Section 10 'References' in [RFC2910]. 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 [RFC2569]) 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.
[IANA-MIMEREG] IANA MIME Media Types Registry. d) An IPP URL does not have parameters to specify the required client
ftp://ftp.iana.org/in-notes/iana/assignments/media-types/... authentication mechanism (for example, 'certificate' as defined in
section 4.4.2, "uri-authentication-supported", of IPP Model
[IANA-PORTREG] IANA Port Numbers Registry. [RFC2911]) and required security mechanism (for example, 'tls' as
ftp://ftp.iana.org/in-notes/iana/assignments/port-numbers defined in section 4.4.3, "uri-security-supported", of IPP Model
[RFC2911]). Service discovery or directory protocols might be
used to discover the required client authentication and security
mechanisms associated with given IPP URLs.
[RFC2234] D. Crocker, P. Overell. Augmented BNF for Syntax Historical Note: During the development of this document,
Specifications: ABNF, RFC 2234, November 1997. 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 [RFC2910] in September 2000, for reasons of backwards
compatibility with the many currently shipping implementations of
IPP/1.1.
[RFC2373] R. Hinden, S. Deering. IP Version 6 Addressing See: Section 8, "Security Considerations", in [RFC2910].
Architecture, RFC 2373, July 1998. See: Section 8, "Security Considerations", in [RFC2911].
[RFC2396] T. Berners-Lee, R. Fielding, L. Masinter. Uniform Resource 9. Intellectual Property Rights
Identifiers (URI): Generic Syntax, RFC 2396, August 1998.
[RFC2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, The IETF takes no position regarding the validity or scope of any
P. Leach, T. Berners-Lee. Hypertext Transfer Protocol -- HTTP/1.1, intellectual property or other rights that might be claimed to
RFC 2616, June 1999. 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 BCP-11. 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.
[RFC2717] R. Petke, I. King. Registration Procedures for URL Scheme The IETF invites any interested party to bring to its attention any
Names, RFC 2717, November 1999. 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.
[RFC2732] R. Hinden,B. Carpenter, L. Masinter. Format for Literal 10. Normative References
IPv6 Addresses in URL's, RFC 2732, December 1999.
[RFC2910] R. Herriot, S. Butler, P. Moore, R. Turner, J. Wenn. [RFC2234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
IPP/1.1 Encoding and Transport, RFC 2910, September 2000. Specifications: ABNF", RFC 2234, November 1997.
[RFC2911] T. Hastings, R. Herriot, R. deBry, S. Isaacson, P. Powell. [RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter,
IPP/1.1 Model and Semantics, RFC 2911, September 2000. "Uniform Resource Identifiers (URI): Generic Syntax",
RFC 2396, August 1998.
[US-ASCII] Coded Character Set -- 7-bit American Standard Code for [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
Information Interchange, ANSI X3.4-1986. Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
10. Acknowledgments [RFC2732] Hinden, R., Carpenter, B. and L. Masinter, "Format for
Literal IPv6 Addresses in URL's", RFC 2732, December
1999.
[RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R. and J.
Wenn, "IPP/1.1 Encoding and Transport [IPP Protocol]",
RFC 2910, September 2000.
[RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S. and
P. Powell, "IPP/1.1 Model and Semantics [IPP Model]",
RFC 2911, September 2000.
[US-ASCII] Coded Character Set -- 7-bit American Standard Code
for Information Interchange, ANSI X3.4-1986.
11. Informative References
[IANA-MIMEREG] IANA MIME Media Types Registry.
ftp://ftp.iana.org/in-notes/iana/assignments/media-
types/...
[IANA-PORTREG] IANA Port Numbers Registry. ftp://ftp.iana.org/in-
notes/iana/assignments/port-numbers
[RFC2569] Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
"Mapping between LPD and IPP Protocols", RFC 2569,
April 1999.
[RFC2717] Petke, R. and I. King, "Registration Procedures for
URL Scheme Names", RFC 2717, November 1999.
[RFC2718] Masinter, L., Alvestrand, H., Zigmond, D. and R.
Petke, "Guidelines for new URL Schemes", RFC 2718,
November 1999.
[RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C. and
H. Holst, "Internet Printing Protocol/1.1:
Implementor's Guide", RFC 3196, November 2001.
12. Acknowledgments
This document is a product of the Internet Printing Protocol Working This document is a product of the Internet Printing Protocol Working
Group of the Internet Engineering Task Force (IETF). Group of the Internet Engineering Task Force (IETF).
Thanks to Pat Fleming (IBM), Tom Hastings (Xerox), Harry Lewis (IBM), Thanks to Pat Fleming (IBM), Tom Hastings (Xerox), Harry Lewis (IBM),
Hugo Parra (Novell), Don Wright (Lexmark), and all the members of the Hugo Parra (Novell), Don Wright (Lexmark), and all the members of the
IETF IPP WG. IETF IPP WG.
Section 5 'IPP URL Scheme' in IPP/1.1 Encoding and Transport Section 5, "IPP URL Scheme", in IPP Protocol [RFC2910] was the
[RFC2910] was the primary input to this IPP URL Scheme specification. primary input to this IPP URL Scheme specification.
11. Authors' Addresses Appendix A - Registration of "ipp" URL Scheme
Note: The following registration obsoletes section 5, "IPP URL
Scheme", of IPP Protocol [RFC2911].
URL Scheme Name: ipp
URL Scheme Syntax:
ipp-URL = "ipp:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
Character Encoding Considerations:
IPP URLs MUST use [RFC2396] encoding, as do their equivalent HTTP
URLs. Characters other than those in the "reserved" and "unsafe"
sets [RFC2396] 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 [RFC2910], 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: Section 5, "IPP URL Scheme", in IPP Protocol [RFC2910].
Interoperability Considerations:
See: Section 9, "Interoperability with IPP/1.0 Implementations",
in IPP Protocol [RFC2910].
Security Considerations:
See: Section 8, "Security Considerations", in IPP Protocol
[RFC2910].
Relevant Publications:
[RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R. and J. Wenn,
"IPP/1.1 Encoding and Transport [IPP Protocol]", RFC 2910,
September 2000.
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter,
L., Leach, P. and T. Berners-Lee, "Hypertext Transfer
Protocol -- HTTP/1.1", RFC 2616, June 1999.
[RFC3510] Herriot, R. and I. McDonald, "IPP/1.1: IPP URL Scheme", RFC
3510, April 2003.
Person & email address to contact for further information:
Robert Herriot Robert Herriot
Consultant Consultant
706 Colorado Ave 706 Colorado Ave
Palo Alto, CA 94303 Palo Alto, CA 94303
Phone: +1 650-327-4466 Phone: +1 650-327-4466
Fax: +1 650-327-4466 EMail: bob@herriot.com
Email: bob@herriot.com
Ira McDonald Ira McDonald
High North Inc High North Inc
221 Ridge Ave 221 Ridge Ave
Grand Marais, MI 49839 Grand Marais, MI 49839
Phone: +1 906-494-2434 or +1 906-494-2697 Phone: +1 906-494-2434
Email: imcdonald@sharplabs.com EMail: imcdonald@sharplabs.com
Authors' Addresses
Robert Herriot
Consultant
706 Colorado Ave
Palo Alto, CA 94303
Phone: +1 650-327-4466
EMail: bob@herriot.com
Ira McDonald
High North Inc
221 Ridge Ave
Grand Marais, MI 49839
Phone: +1 906-494-2434
EMail: imcdonald@sharplabs.com
Usage questions and comments on this IPP URL Scheme should be sent Usage questions and comments on this IPP URL Scheme should be sent
directly to the editors at their above addresses (and to the IPP directly to the editors at their above addresses (and to the IPP
mailing list, if you are a subscriber - see below). mailing list, if you are a subscriber - see below).
IPP Web Page: http://www.pwg.org/ipp/ IPP Web Page: http://www.pwg.org/ipp/
IPP Mailing List: ipp@pwg.org IPP Mailing List: ipp@pwg.org
To subscribe to the IPP mailing list, send the following email: To subscribe to the IPP mailing list, send the following email:
1) send it to majordomo@pwg.org
2) leave the subject line blank 1) send it to majordomo@pwg.org
3) put the following two lines in the message body:
subscribe ipp 2) leave the subject line blank
end
3) put the following two lines in the message body: subscribe ipp
Implementers of this specification are encouraged to join the IPP Implementers of this specification are encouraged to join the IPP
Mailing List in order to participate in any discussions of Mailing List in order to participate in any discussions of
clarification issues and comments. In order to reduce spam the clarification issues and comments. In order to reduce spam the
mailing list rejects mail from non-subscribers, so you must subscribe 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 to the mailing list in order to send a question or comment to the IPP
mailing list. mailing list.
12. Full Copyright Statement Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved. Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
skipping to change at page 15, line 5 skipping to change at page 16, line 33
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
13. Appendix X - Change History Acknowledgement
[To be deleted before RFC publication]
10 January 2002 - draft-ietf-ipp-url-scheme-04.txt
- final edits after IESG 'last call' comments;
- revised all titles in sections 4.x to remove redundant prefix of
'IPP URL Scheme', for readability;
- revised 'Abstract', section 1 'Introduction', section 4.1
'Applicability and Intended Usage', section 4.5 'Syntax in ABNF',
and section 6 'IANA Considerations', to explicitly state that the
"ipp" URL scheme is intended for IANA registration in the IETF URL
scheme tree;
- revised section 4.5 'Syntax in ABNF', to delete references to
unused ABNF components from [RFC2396];
- revised section 11 'Authors' Addresses', to update contact info for
both editors and to add the IPP Web page and mailing list
subscription info;
- moved 'Appendix X - Change History' to back of document, to
facilitate final edits for RFC publication (including deletion of
change history);
2 April 2001 - draft-ietf-ipp-url-scheme-03.txt
- final edits after IETF IPP WG 'last call' comments;
- revised 'Abstract' and section 1 'Introduction' to remove
references to ISSUE's and request for comments to the 'ipp@pwg.org'
mailing list, in preparation for publication as an RFC;
- revised section 4.5 'IPP URL Scheme Syntax in ABNF' to delete all
references to HTTP proxy behavior (which IPP does NOT specify), per
request of Don Wright;
- revised section 4.5.1 'IPP URL Examples' to remove note
discouraging the use of literal IP addresses in URLs, to remove
dependency on Informational [RFC1900];
- revised section 4.5.2 'IPP URL Comparisons' to specify the use of
rules defined in section 3.2.3 'URI Comparison' in [RFC2616], with
the sole exception that an empty port MUST be treated as equivalent
to the IPP well-known port 631, per request of Don Wright;
- revised section 9 'References' to delete all unused references;
- revised section 11 'Authors' Addresses' to add the address of the
IPP WG mailing list for usage questions and comments;
13 February 2001 - draft-ietf-ipp-url-scheme-02.txt
- revised section 3 'IPP Model for Printers and Jobs' and section 4.5
'IPP URL Scheme Syntax in ABNF' to add notes stating that "IPP URL"
(in this document) is a synonym for "ipp-URL" in [RFC2910], per
request of Bob Herriot;
- revised section 4.5 'IPP URL Scheme Syntax in ABNF' to correct typo
that showed "http:" rather than "ipp:" in the one-line ABNF, per
request of Tom Hastings;
- revised section 4.5.1 'IPP URL Examples' to add a note discouraging
the use of literal IP addresses in URLs, per [RFC2616] and
[RFC1900];
5 February 2001 - draft-ietf-ipp-url-scheme-01.txt
- revised section 4.1 'IPP URL Applicability and Intended Usage' to
clarify that a given IPP URL MAY identify an IPP Printer object or
an IPP Job object, per request of Tom Hastings;
- revised section 4.5 'IPP URL Scheme Syntax in ABNF' to define IPP
URLs consistently with section 3.2.2 'http URL' of HTTP/1.1
[RFC2616], per request of Tom Hastings;
- revised section 4.5 'IPP URL Scheme Syntax in ABNF' to clarify that
IPP URLs may reference IPP Printer objects, IPP Job objects, or
(possibly other future) IPP objects, per request of Bob Herriot;
- added section 4.5.1 'IPP URL Examples' to supply meaningful
examples of IPP URLs with host names, IPv4 addresses, and IPv6
addresses, per request of Tom Hastings;
- added section 4.5.2 'IPP URL Comparisons' to define IPP URL
comparisons consistently with section 3.3 'URI Comparison' of
HTTP/1.1 [RFC2616], per request of Tom Hastings;
- revised section 5.1 'Conformance Requirements for IPP Clients' to
clarify that an IPP Client MUST convert IPP URLs to their
corresponding HTTP URL forms according to section 5 'IPP URL
Scheme' in [RFC2910], per request of Tom Hastings and Bob Herriot;
- revised section 5.1 'Conformance Requirements for IPP Clients' and
section 5.2 'Conformance Requirements for IPP Printers' to clarify
that IPP Clients and IPP Printers SHOULD interoperate with IPP/1.0
systems according to section 9 'Interoperability with IPP/1.0
Implementations' in [RFC2910], per request of Carl Kugler;
- revised section 5.2 'Conformance Requirements for IPP Printers' to
clarify that an IPP Printer MUST listen on (IANA assigned
well-known) port 631, unless explicitly configured, per request of
Michael Sweet;
- revised section 5.2 'Conformance Requirements for IPP Printers' to
clarify that an IPP Printer SHOULD NOT listen on ports other than
(IANA assigned well-known) port 631, unless explicitly configured,
per request of Don Wright;
- revised section 6 'IANA Considerations' to clarify that the sole
purpose of the entire document is IANA registration of the "ipp"
URL scheme;
- deleted Appendix A 'Registration of IPP Port' as unnecessary (port
is already registered);
- deleted Appendix B 'Registration of MIME "application/ipp" as
unnecessary (MIME registry has recently caught up to RFC 2910);
11 January 2001 - draft-ietf-ipp-url-scheme-00.txt
- initial version - simple "ipp" URL scheme without parameters or
query part (consistent with existing and IPP/1.1 implementations);
- added Appendix A 'Registration of IPP Port' (placeholder) for
updated IANA registration of port 631 with references to IPP/1.1;
- added Appendix B 'Registration of MIME "application/ipp"' with Funding for the RFC Editor function is currently provided by the
updated IANA registration for IPP MIME type with references to both Internet Society.
IPP/1.0 and IPP/1.1;
 End of changes. 107 change blocks. 
407 lines changed or deleted 451 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/