Interface Cookie

All Superinterfaces:
org.refcodes.mixin.KeyAccessor<String>, org.refcodes.mixin.KeyAccessor.KeyBuilder<String,org.refcodes.struct.Relation.RelationBuilder<String,String>>, org.refcodes.mixin.KeyAccessor.KeyMutator<String>, org.refcodes.mixin.KeyAccessor.KeyProperty<String>, org.refcodes.struct.Property, org.refcodes.struct.Property.PropertyBuilder, org.refcodes.struct.Relation<String,String>, org.refcodes.struct.Relation.RelationBuilder<String,String>, org.refcodes.mixin.ValueAccessor<String>, org.refcodes.mixin.ValueAccessor.ValueBuilder<String,org.refcodes.struct.Relation.RelationBuilder<String,String>>, org.refcodes.mixin.ValueAccessor.ValueMutator<String>, org.refcodes.mixin.ValueAccessor.ValueProperty<String>
All Known Implementing Classes:
RequestCookie, ResponseCookie

public interface Cookie extends org.refcodes.struct.Property.PropertyBuilder
The Cookie represents a HTTP cookie. As the cookies differ between an HTTP-Request and an HTTP-Response, we have the sub-interfaces RequestCookie and ResponseCookie. As of "HTTP cookies explained - NCZOnline": "... There is some confusion over encoding of a cookie value. The commonly held belief is that cookie values must be URL-encoded, but this is a fallacy even though it is the de facto implementation. The original specification indicates that only three types of characters must be encoded: semicolon, comma, and white space. The specification indicates that URL encoding may be used but stops short of requiring it. The RFC makes no mention of encoding whatsoever. Still, almost all implementations perform some sort of URL encoding on cookie values. In the case of name=value formats, the name and value are typically encoded separately while the equals sign is left as is. ..." Therefore we use URL encoding / decoding for the cookie value (regarding fromHttpCookie(String) and toHttpCookie()) to make life easier and not fall into the trap of unescaped values.
See Also:
  • "https://www.nczonline.net/blog/2009/05/05/http-cookies-explained"