attachment
<html>
<font size=3>Action item from Robert Herriot and Tom Hastings:<br>
<br>
The IPP working group reached an agreement with Keith Moore in this
<br>
morning's teleconference. This document is our best understanding of the
<br>
details of this agreement.<br>
<br>
Summary:<br>
<br>
The quick summary is that IPP should support a new scheme 'ipp', which
<br>
clients and servers use in IPP attributes. Such attributes are in a
message <br>
body whose Content-Type is application/ipp. A client maps 'ipp'
URLs to <br>
'http' URLs, and then follows the HTTP/1.1 rules for constructing a
<br>
Request-Line and HTTP headers. The IPP document will not prohibit <br>
implementations from supporting other schemes in IPP attributes, but such
<br>
support is not defined by this document. <br>
<br>
Now for the details.<br>
<br>
A client and an IPP object (i.e. the server) SHOULD support the 'ipp'
scheme <br>
in the following IPP attributes. Each of these attributes
identifies a <br>
printer or job object. The 'ipp' scheme is not intended for use in 'uri'
<br>
valued attributes not in this list.<br>
<br>
job attributes - <br>
<x-tab> </x-tab>job-uri
<br>
<x-tab> </x-tab>job-printer-uri<br>
printer attributes - <br>
<x-tab> </x-tab>printer-uri-supported<br>
operation attributes - <br>
<x-tab> </x-tab>job-uri
<br>
<x-tab> </x-tab>printer-uri<br>
<br>
If the scheme of the target URL in a request (i.e. the value of
<br>
"printer-uri" or "job-uri" operation attribute) is
some scheme 'x', other <br>
than 'ipp', the behavior of the IPP object is not defined by this
document. <br>
However, it is RECOMMENDED that if an operation on an IPP object creates
a <br>
new value for any of the above attributes, that attribute has the same
<br>
scheme 'x'. It is also RECOMMENDED that if an IPP object returns any of
the <br>
seven attributes above in the response, that the IPP object returns those
<br>
URL values as is, regardless of the scheme of the target URL.<br>
<br>
If the client obtains a target URL from a directory service, the scheme
of <br>
the target URL SHOULD be 'ipp'. If the scheme is not 'ipp', the
behavior of <br>
the client is not defined by this document, but it is RECOMMENDED that
the <br>
client use the URL as is as the target URL.<br>
<br>
Although user interfaces are beyond the scope of this document, it is
<br>
RECOMMENDED that if software exposes the URL values of any of the above
<br>
seven attributes to a human user, that the human see the URL as is.
<br>
<br>
When a client sends a request, it MUST convert an 'ipp' target URL to an
<br>
'http' target URL for use in the HTTP Request-Line and HTTP headers as
<br>
specified by HTTP/1.1. However, the 'ipp' target URL remains as is for
the <br>
value of the "printer-uri" or "job-uri" attribute in
the message body. If <br>
the scheme of the target URL is not 'ipp', the behavior of the client is
not <br>
defined by this document, but it is RECOMMENDED that the client use the
<br>
target URL as is in the Request-Line and HTTP headers.<br>
<br>
A client converts an 'ipp' URL to an 'http' URL by <br>
1) replacing the 'ipp' scheme by 'http' <br>
2) adding an explicit port 631 if the URL does not
contain an explicit port.<br>
<br>
<font size=3>When an IPP client sends a request directly (i.e. no proxy)
to an ‘ipp’ URL <br>
such as “ipp://myhost.com/myprinter/myqueue”, it MUST open a TCP
connection <br>
to some port (this example uses the IPP default port 631) on some host
<br>
(“myhost.com” in this example) with the following headers:<br>
<br>
<font size=3>POST /myprinter/myqueue HTTP/1.1 <br>
Host: myhost.com:631 <br>
Content-type: application/ipp <br>
Transfer-Encoding: chunked <br>
...<br>
"printer-uri" "ipp://myhost.com/myprinter/myqueue"
<font size=3>
<dl>
<dd>(encoded in application/ipp message body)<font size=3>
</dl>...<br>
<br>
When an IPP client sends a request via a proxy, such as “myproxy.com”, to
an <br>
‘ipp’ URL, such as “ipp://myhost.com/myprinter/myqueue”, it MUST
open a TCP <br>
connection to some port (8080 in this example) on some proxy
(“myproxy.com” <br>
in this example) with the following headers:<br>
<br>
<br>
POST
<a href="http://myhost.com:631/myprinter/myqueue" eudora="autourl"><font size=3>http://myhost.com:631/myprinter/myqueue</a><font size=3>
HTTP/1.1 <br>
Host: myproxy.com:8080 <br>
Content-type: application/ipp <br>
Transfer-Encoding: chunked <br>
...<br>
"printer-uri" "ipp://myhost.com/myprinter/myqueue"
<font size=3>
<dl>
<dd>(encoded in application/ipp message body)<font size=3>
</dl>...<br>
<br>
The proxy then connects to the IPP origin server with headers that are
the <br>
same as the "no-proxy" example above.<br>
<br>
</font><br>
</html>