📄 rfc2639.txt
字号:
return.
Get-Printer-Attributes Response:
Group 1: Operation Attributes (R)
attributes-charset (R)
attributes-natural-language (R)
status-message (O*)
Group 2: Unsupported Attributes (R*) (see Note 4)
<unsupported attributes> (R*)
Group 3: Printer Object Attributes(R*) (see Note 2)
<requested attributes> (R*)
Note 4 - the Unsupported Attributes Group is present only if the
client included some Operation attributes that the Printer doesn't
support whether a success or an error return.
Hastings & Manros Informational [Page 18]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
Get-Job-Attributes Response:
Group 1: Operation Attributes (R)
attributes-charset (R)
attributes-natural-language (R)
status-message (O*)
Group 2: Unsupported Attributes (R*) (see Note 4)
<unsupported attributes> (R*)
Group 3: Job Object Attributes(R*) (see Note 2)
<requested attributes> (R*)
Get-Jobs Response:
Group 1: Operation Attributes (R)
attributes-charset (R)
attributes-natural-language (R)
status-message (O*)
Group 2: Unsupported Attributes (R*) (see Note 4)
<unsupported attributes> (R*)
Group 3: Job Object Attributes(R*) (see Note 2, 5)
<requested attributes> (R*)
Note 5: for the Get-Jobs operation the response contains a separate
Job Object Attributes group 3 to N containing requested-attributes
for each job object in the response.
2.2.1.5 Validate the values of the REQUIRED Operation attributes
An IPP object validates the values supplied by the client of the
REQUIRED Operation attribute that the IPP object MUST support. The
next section specifies the validation of the values of the OPTIONAL
Operation attributes that IPP objects MAY support.
The IPP object performs the following syntactic validation checks of
each Operation attribute value:
a)that the length of each Operation attribute value is correct for
the attribute syntax tag supplied by the client according to
[RFC2566] Section 4.1,
b)that the attribute syntax tag is correct for that Operation
attribute according to [RFC2566] Section 3,
c)that the value is in the range specified for that Operation
attribute according to [RFC2566] Section 3,
d)that multiple values are supplied by the client only for
operation attributes that are multi-valued, i.e., that are
1setOf X according to [RFC2566] Section 3.
Hastings & Manros Informational [Page 19]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
If any of these checks fail, the IPP object REJECTS the request and
RETURNS the 'client-error-bad-request' or the 'client-error-request-
value-too-long' status code. Since such an error is most likely to
be an error detected by a client developer, rather than by an end-
user, the IPP object NEED NOT return an indication of which attribute
had the error in either the Unsupported Attributes Group or the
Status Message. The description for each of these syntactic checks
is explicitly expressed in the first IF statement in the following
table.
In addition, the IPP object checks each Operation attribute value
against some Printer object attribute or some hard-coded value if
there is no "xxx-supported" Printer object attribute defined. If its
value is not among those supported or is not in the range supported,
then the IPP object REJECTS the request and RETURNS the error status
code indicated in the table by the second IF statement. If the value
of the Printer object's "xxx-supported" attribute is 'no-value'
(because the system administrator hasn't configured a value), the
check always fails.
attributes-charset (charset)
IF NOT a single non-empty 'charset' value, REJECT/RETURN 'client-
error-bad-request'.
IF the value length is greater than 63 octets, REJECT/RETURN '
client-error-request-value-too-long'.
IF NOT in the Printer object's "charset-supported" attribute,
REJECT/RETURN "client-error-charset-not-supported".
attributes-natural-language(naturalLanguage)
IF NOT a single non-empty 'naturalLanguage' value, REJECT/RETURN
'client-error-bad-request'.
IF the value length is greater than 63 octets, REJECT/RETURN '
client-error-request-value-too-long'.
ACCEPT the request even if not a member of the set in the Printer
object's "generated-natural-language-supported" attribute. If
the supplied value is not a member of the Printer object's
"generated-natural-language-supported" attribute, use the
Printer object's "natural-language-configured" value.
Hastings & Manros Informational [Page 20]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
requesting-user-name
IF NOT a single 'name' value, REJECT/RETURN 'client-error-bad-
request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
IF the IPP object can obtain a better authenticated name, use it
instead.
job-name(name)
IF NOT a single 'name' value, REJECT/RETURN 'client-error-bad-
request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
IF NOT supplied by the client, the Printer object creates a name
from the document-name or document-uri.
document-name (name)
IF NOT a single 'name' value, REJECT/RETURN 'client-error-bad-
request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
ipp-attribute-fidelity (boolean)
IF NEITHER a single 'true' NOR a single 'false' 'boolean' value,
REJECT/RETURN 'client-error-bad-request'.
IF the value length is NOT equal to 1 octet, REJECT/RETURN '
client-error-request-value-too-long'
IF NOT supplied by the client, the IPP object assumes the value
'false'.
document-format (mimeMediaType)
IF NOT a single non-empty 'mimeMediaType' value, REJECT/RETURN
'client-error-bad-request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
IF NOT in the Printer object's "document-format-supported"
attribute, REJECT/RETURN 'client-error-document-format-not-
supported'
Hastings & Manros Informational [Page 21]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
IF NOT supplied by the client, the IPP object assumes the value of
the Printer object's "document-format-default" attribute.
document-uri (uri)
IF NOT a single non-empty 'uri' value, REJECT/RETURN 'client-
error-bad-request'.
IF the value length is greater than 1023 octets, REJECT/RETURN
'client-error-request-value-too-long'.
IF the URI syntax is not valid, REJECT/RETURN 'client-error-bad-
request'.
IF scheme is NOT in the Printer object's "reference-uri-schemes-
supported" attribute, REJECT/RETURN 'client-error-uri-scheme-
not-supported'.
The Printer object MAY check to see if the document exists and is
accessible. If the document is not found or is not accessible,
REJECT/RETURN 'client-error-not found'.
last-document (boolean)
IF NEITHER a single 'true' NOR a single 'false' 'boolean' value,
REJECT/RETURN 'client-error-bad-request'.
IF the value length is NOT equal to 1 octet, REJECT/RETURN '
client-error-request-value-too-long'
job-id (integer(1:MAX))
IF NOT an single 'integer' value equal to 4 octets AND in the
range 1 to MAX, REJECT/RETURN 'client-error-bad-request'.
IF NOT a job-id of an existing Job object, REJECT/RETURN 'client-
error-not-found' or 'client-error-gone' status code, if keep
track of recently deleted jobs.
requested-attributes (1setOf keyword)
IF NOT one or more 'keyword' values, REJECT/RETURN 'client-error-
bad-request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
Ignore unsupported values which are the keyword names of
unsupported attributes. Don't bother to copy such requested
(unsupported) attributes to the Unsupported Attribute response
group since the response will not return them.
Hastings & Manros Informational [Page 22]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
which-jobs (type2 keyword)
IF NOT a single 'keyword' value, REJECT/RETURN 'client-error-bad-
request'.
IF the value length is greater than 255 octets, REJECT/RETURN
'client-error-request-value-too-long'.
IF NEITHER 'completed' NOR 'not-completed', copy the attribute and
the unsupported value to the Unsupported Attributes response
group and REJECT/RETURN 'client-error-attributes-or-values-
not-supported'.
Note: a Printer still supports the 'completed' value even if it
keeps no completed/canceled/aborted jobs: by returning no jobs
when so queried.
IF NOT supplied by the client, the IPP object assumes the 'not-
completed' value.
my-jobs (boolean)
IF NEITHER a single 'true' NOR a single 'false' 'boolean' value,
REJECT/RETURN 'client-error-bad-request'.
IF the value length is NOT equal to 1 octet, REJECT/RETURN '
client-error-request-value-too-long'
IF NOT supplied by the client, the IPP object assumes the 'false'
value.
limit (integer(1:MAX))
IF NOT a single 'integer' value equal to 4 octets AND in the range
1 to MAX, REJECT/RETURN 'client-error-bad-request'.
IF NOT supplied by the client, the IPP object returns all jobs, no
matter how many.
2.2.1.6 Validate the values of the OPTIONAL Operation attributes
OPTIONAL Operation attributes are those that an IPP object MAY or MAY
NOT support. An IPP object validates the values of the OPTIONAL
attributes supplied by the client. The IPP object performs the same
syntactic validation checks for each OPTIONAL attribute value as in
Section 2.2.1.5. As in Section 2.2.1.5, if any fail, the IPP object
REJECTS the request and RETURNS the 'client-error-bad-request' or the
'client-error-request-value-too-long' status code.
In addition, the IPP object checks each Operation attribute value
against some Printer attribute or some hard-coded value if there is
no "xxx-supported" Printer attribute defined. If its value is not
among those supported or is not in the range supported, then the IPP
Hastings & Manros Informational [Page 23]
RFC 2639 IPP/1.0: Implementer's Guide July 1999
object REJECTS the request and RETURNS the error status code
indicated in the table. If the value of the Printer object's "xxx-
supported" attribute is 'no-value' (because the system administrator
hasn't configured a value), the check always fails.
If the IPP object doesn't recognize/support an attribute, the IPP
object treats the attribute as an unknown or unsupported attribute
(see the last row in the table below).
document-natural-language (naturalLanguage)
IF NOT a single non-empty 'naturalLanguage' value, REJECT/RETURN '
client-error-bad-request'.
IF the value length is greater than 63 octets, REJECT/RETURN '
client-error-request-value-too-long'.
IF NOT a value that the Printer object supports in document
formats, (no corresponding "xxx-supported" Printer attribute),
REJECT/RETURN 'client-error-natural-language-not-supported'.
compression (type3 keyword)
IF NOT a single 'keyword' value, REJECT/RETURN 'client-error-bad-
request'.
IF the value length is greater than 255 octets, REJECT/RETURN '
client-error-request-value-too-long'.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -