I think that there are several important differences with printing from
browsing:
1. Clients are less likely to remember capabilities of previously accessed
Printers, since the performance gain in such caching is not as great as with
browsing. They may do a Get-Attributes anyway before submitting. And if
they don't an immediate rejection could be the trigger for a client that doea
cache to invaidate that cache and do a rediscovery Get-Attributes.
2. Administrators are less likely to take away capabilities of Printers, since
it will impact users (no matter what we do in the protocol).
3. If a single virtual provider is fronting for several actual providers, and
gets an attribute that is supported by one but not by another, the virtual
provider MUST forward the job to the actual provider that can handle the job.
So the bottom line of requiring an IPP Printer to reject an operation,
rather than ignore an unsupported (or unrecognized) attribute, is simplicity
of the protocol. With discovery, a client can still use an extension
(though we may need some more discovery meta-attributes in order for a client
to "understand" a new attribute). Such meta-attributes are NOT for version
1.0 of IPP. We can add them later as extensions themselves.
On the other hand, a client must ignore attributes its gets from a
Printer, that the client doesn't understand (or maybe dump them out as
not recognized ASCII), rather than refusing to understand the rest of the
response from the Printer, or else we will have real trouble extensing IPP.
>
>This is mainly an issue for HTTP-NG, I think, but IPP is a good
>example of the kind of extensible protocol we'd like to support in the
>NG effort.
>
>Larry
>--
>http://www.parc.xerox.com/masinter
>
>
>
>