Encoding should be optional

The encoding is mandatory but should be optional as some transport layers don't require encoding or currently need to decode each request server side as they don't expect encoded input.