http://www.perlmonks.org?node_id=126650


in reply to Larry vs. Joel vs. Ovid

There's always a question of how far to go with something like "being liberal in what you accept." Yes, it would be nice if everybody implemented the standards correctly. However, in the real world, standards are complex and changing. You often see one version of a protocol that says "this field is reserved and must be set to zero", while a later version defines valid nonzero values for that field. If older implementations simply ignore the reserved field, then later versions of the protocol can be designed so that they still interoperate with the old software. However, if the author of the old software followed your advice to be maximally strict, then you get breakage that was completely avoidable. Case in point, TCP Explicit Congestion Notificiation. I've got a non-ECN router between me and www.sun.com which drops my packets right on the floor. Irritating.

With your IE example, it sounds like they're going too far in being liberal. If there was no MIME type given, or it was one the browser didn't understand, guessing the type from the content would seem reasonable. But ignoring a valid MIME type is just too much.