Section 4.1, General Headers, says
General Header: Connection
"close" only. Both client and server SHOULD keep a connection for the
duration of a sequence of operations. The client and server MUST include this
header for the last operation in such a sequence.
Consider the (presumably typical) case of an interactive IPP client with a user
interface. How is the client to know when the current operation is the last of
a sequence of user-initiated actions? Apparently, the only safe way to satisfy
the MUST (an absolute requirement of the specification) would be to send
"close" after each user-initiated action. But this would violate the SHOULD,
and is contrary to the recommendations of "HTTP Connection Management",
"Authoritative knowledge that it is appropriate to close a connection
can only come from the user. Unfortunately, that source is not to be
trusted. First, most users don't know what a connection is, and
having them indicate it is okay to close it is meaningless. Second, a
user that does know what a connection is probably inherently greedy.
Such a user would never surrender the attention that a connection to
a server implies.
But this is talking about the client actually closing the connection, not
sending a header to the server to signal that the connection will be closed
after completion of the response. Obviously, the header can only be sent as
part of a request. Also, "HTTP Connection Management" says clients SHOULD
close connections before servers when possible.
How are you implementing this requirement?