I was reading the RFC 2616 regarding HTTP/1.1 when this term came up:
Therefore, the HTTP/1.1 protocol provides these important elements: [...] Protocol features that provide full semantic transparency when this is required by all parties.
[...]
The Cache-Control header allows a client or server to transmit a variety of directives in either requests or responses. These directives typically override the default caching algorithms. As a general rule, if there is any apparent conflict between header values, the most restrictive interpretation is applied (that is, the one that is most likely to preserve semantic transparency).
My questions are:
- What is semantic transparency? What makes it full?
- What's advantageous about having a protocol which is semantically transparent?
- How can I tell a protocol has this property?