Re: [EXTERNAL] Re: Response for unsupported conditional request

On Tue, Feb 4, 2025, at 11:04, Mike Kistler wrote:

> I'm still struggling to understand this. When I read this in RFC 9110 
> (Section 13.1.1.):
>
>> When an origin server receives a request that selects a representation 
>> and that request includes an If-Match header field, the origin server 
>> MUST evaluate the If-Match condition per Section 13.2 prior to 
>> performing the method.
>
> Am I to understand that the "MUST" here actually means "MUST if the 
> origin server decides to handle If-Match, which it is not obligated to 
> do"?

Yeah, this is one of those cases where the MUST probably has an implicit "if you choose to support this condition" attached to it.

Imagine that you had a new condition field called "If-YouFeelLikeIt".  There is no expectation that every resource on every server supports that, so any MUST-level statement you make about processing that field comes with an implicit "if you support and implement this field" attached.  Most servers and resources won't support this field and so clients cannot expect that the condition would be followed.

The same basically applies to all of the core conditional fields.  Support for those is discretionary and most resources don't plan to support the field, so don't even go looking for it.  No matter how many MUSTs you hit people with, you aren't going to be able to force them to implement them.

It's a bit weird because this is THE HTTP RFC (tm) and you might expect that people implement the whole thing, but in practice, the reason that HTTP is so successful is that people don't have to.

That's something that the specification could perhaps be better at.

Received on Tuesday, 4 February 2025 00:32:51 UTC