On Feb 5, 2005, at 9:48 AM, Mark Nottingham wrote:
What does that mean? SOAP is a "Must Ignore format," but it also has a way of saying that you have to understand a particular extension; as I said before, this is one of the big problems with HTTP. mustUnderstand should be used sparingly, but sometimes it's necessary.

The problem with that statement (about HTTP) is that absence of a must-understand in HTTP is not one of its big problems. Yes, I know lots of people have talked about it as a limiting factor in the syntax of HTTP, but to call it an actual problem would say that it prevented some good from being accomplished.

Henrik spent an enormous amount of time devising a
"must understand" feature for HTTP, only to find that the features
needing it were either not worth deploying in the first place
or too risky to deploy even on a "must understand" basis.
The features that people actually needed to deploy were able
to be standardized because those people were willing to work hard
to come to a common agreement on the benefit of the feature.

One problem is that the "must understand" feature is intended to
prevent dumb software from performing an action when it doesn't
know how to do it right. In reality, software tends to have
bugs and developers tend to be optimistic, and thus there is no
way to guarantee the software is going to do it right even
if it claims to know how.  In the end, we just waste a bunch of
cycles on unimplemented features and failed requests.

Another problem is that the features that benefit from a
must-understand bit tend to be socially reprehensible (and thus
the only way they could be deployed is via artificial demand).
As soon as one of those features get deployed, the hackers
come out and turn off the "must understand" bit for that
feature, defeating the protocol in favor of their own view
of what is right on the Internet.

Things that a syndication format might want to make
mandatory are copyright controls and micropayments, but both
have been shown in practice to require either a willingness
on the part of the recipient to accept that specific restriction
(i.e., human intervention and understanding) or forceful
requirement by the sender (i.e., encryption).  In both cases,
agreements have to be established with the user in advance,
before they even receive the content, and thus do not need
a "must understand" feature.

In fact, "must understand" has no value in a network-based
application except as positive guidance for intermediaries,
which is something that can still be accomplished
under mustIgnore with a bit of old-fashioned advocacy.

....Roy



Reply via email to