INTERNET-DRAFT Carl-Uno Manros Xerox Corporation August 7, 1998 Expires March 7, 1999 Internet Printing Protocol Scheme Status of this memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months 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 learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract IPP is an application level protocol that can be used for distributed printing on the Internet. Related IPP documents: Design Goals for an Internet Printing Protocol Internet Printing Protocol/1.0: Model and Semantics Internet Printing Protocol/1.0: Encoding and Transport This document decribes a possible solution to an IESG request for a separate naming scheme for IPP. This is for further discussion, no consensus is yet reached on this in the IPP WG. Introduction The quick summary is that IPP should support a new scheme 'ipp', which clients and servers use in IPP attributes. Such attributes are in a message body whose Content-Type is application/ipp. A client maps 'ipp' URLs to 'http' URLs, and then follows the HTTP/1.1 rules for constructing a Request-Line and HTTP headers. The IPP document will not prohibit implementations from supporting other schemes in IPP attributes, but such support is not defined by this document. Details August 7, 1998 Expires March 7, 1999 Internet Printing Protocol Scheme A client and an IPP object (i.e. the server) SHOULD support the 'ipp' scheme in the following IPP attributes. Each of these attributes identifies a printer or job object. The 'ipp' scheme is not intended for use in 'uri' valued attributes not in this list. job attributes - job-uri job-printer-uri printer attributes - printer-uri-supported operation attributes - job-uri printer-uri If the scheme of the target URL in a request (i.e. the value of "printer-uri" or "job-uri" operation attribute) is some scheme 'x', other than 'ipp', the behavior of the IPP object is not defined by this document. However, it is RECOMMENDED that if an operation on an IPP object creates a new value for any of the above attributes, that attribute has the same scheme 'x'. It is also RECOMMENDED that if an IPP object returns any of the seven attributes above in the response, that the IPP object returns those URL values as is, regardless of the scheme of the target URL. If the client obtains a target URL from a directory service, the scheme of the target URL SHOULD be 'ipp'. If the scheme is not 'ipp', the behavior of the client is not defined by this document, but it is RECOMMENDED that the client use the URL as is as the target URL. Although user interfaces are beyond the scope of this document, it is RECOMMENDED that if software exposes the URL values of any of the above seven attributes to a human user, that the human see the URL as is. When a client sends a request, it MUST convert an 'ipp' target URL to an 'http' target URL for use in the HTTP Request-Line and HTTP headers as specified by HTTP/1.1. However, the 'ipp' target URL remains as is for the value of the "printer-uri" or "job-uri" attribute in the message body. If the scheme of the target URL is not 'ipp', the behavior of the client is not defined by this document, but it is RECOMMENDED that the client use the target URL as is in the Request-Line and HTTP headers. A client converts an 'ipp' URL to an 'http' URL by: 1) replacing the 'ipp' scheme by 'http' 2) adding an explicit port 631 if the URL does not contain an explicit port. When an IPP client sends a request directly (i.e. no proxy) to an 'ipp' URL such as "ipp://myhost.com/myprinter/myqueue", it MUST open a TCP connection to some port (this example uses the IPP default port [page 2] August 7, 1998 Expires March 7, 1999 Internet Printing Protocol Scheme 631) on some host ("myhost.com" in this example) with the following headers: POST /myprinter/myqueue HTTP/1.1 Host: myhost.com:631 Content-type: application/ipp Transfer-Encoding: chunked ... "printer-uri" "ipp://myhost.com/myprinter/myqueue" (encoded in application/ipp message body) ... When an IPP client sends a request via a proxy, such as "myproxy.com", to an 'ipp' URL, such as "ipp://myhost.com/myprinter/myqueue", it MUST open a TCP connection to some port (8080 in this example) on some proxy ("myproxy.com" in this example) with the following headers: POST http://myhost.com:631/myprinter/myqueue HTTP/1.1 Host: myproxy.com:8080 Content-type: application/ipp Transfer-Encoding: chunked ... "printer-uri" "ipp://myhost.com/myprinter/myqueue" (encoded in application/ipp message body) ... The proxy then connects to the IPP origin server with headers that are the same as the "no-proxy" example above. References [IPP-MOD] Isaacson, S., deBry, R., Hastings, T., Herriot, R., Powell, P. "Internet Printing Protocol/1.0: Model and Semantics" draft-ietf-ipp- mod-10.txt, June, 1998. [IPP-PRO] Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Protocol/1.0: Encoding and Transport", draft-ietf-ipp-pro-06.txt, June, 1998. [IPP-REQ] Wright, D., "Design Goals for an Internet Printing Protocol", draft- ietf-ipp-req-02.txt, June, 1998. [page 3] August 7, 1998 Expires March 7, 1999 Internet Printing Protocol Scheme Author's Address Carl-Uno Manros Xerox Corporation 701 Aviation Blvd. El Segundo, CA 90245 manros@cp10.es.xerox.com [page 4]