HttpCompliance

HTTP compliance modes for Jetty HTTP parsing and handling. A Compliance mode consists of a set of {@link HttpComplianceSection}s which are applied when the mode is enabled. <p> Currently the set of modes is an enum and cannot be dynamically extended, but future major releases may convert this to a class. To modify modes there are four custom modes that can be modified by setting the property <code>org.eclipse.jetty.http.HttpCompliance.CUSTOMn</code> (where 'n' is '0', '1', '2' or '3'), to a comma separated list of sections. The list should start with one of the following strings:<dl> <dt>0</dt><dd>No {@link HttpComplianceSection}s</dd> <dt>*</dt><dd>All {@link HttpComplianceSection}s</dd> <dt>RFC2616</dt><dd>The set of {@link HttpComplianceSection}s application to https://tools.ietf.org/html/rfc2616, but not https://tools.ietf.org/html/rfc7230</dd> <dt>RFC7230</dt><dd>The set of {@link HttpComplianceSection}s application to https://tools.ietf.org/html/rfc7230</dd> </dl> The remainder of the list can contain then names of {@link HttpComplianceSection}s to include them in the mode, or prefixed with a '-' to exclude thm from the mode. Note that Jetty's modes may have some historic minor differences from the strict RFC compliance, for example the <code>RFC2616_LEGACY</code> HttpCompliance is defined as <code>RFC2616,-FIELD_COLON,-METHOD_CASE_SENSITIVE</code>. <p> Note also that the {@link EnumSet} return by {@link HttpCompliance#sections()} is mutable, so that modes may be altered in code and will affect all usages of the mode.

Members

Functions

sections
HttpComplianceSection[] sections()

Get the set of {@link HttpComplianceSection}s supported by this compliance mode. This set is mutable, so it can be modified. Any modification will affect all usages of the mode within the same {@link ClassLoader}.

Static functions

requiredCompliance
HttpCompliance requiredCompliance(HttpComplianceSection section)

@param section The section to query @return The minimum compliance required to enable the section.

sectionsBySpec
HttpComplianceSection[] sectionsBySpec(string spec)
Undocumented in source. Be warned that the author may not have intended to support it.

Static variables

LEGACY
HttpCompliance LEGACY;

A Legacy compliance mode to match jetty's behavior prior to RFC2616 and RFC7230. It only contains {@link HttpComplianceSection#METHOD_CASE_SENSITIVE}

RFC2616
HttpCompliance RFC2616;

The strict RFC2616 support mode

RFC2616_LEGACY
HttpCompliance RFC2616_LEGACY;

The legacy RFC2616 support, which incorrectly excludes {@link HttpComplianceSection#METHOD_CASE_SENSITIVE}, {@link HttpComplianceSection#FIELD_COLON}

RFC7230
HttpCompliance RFC7230;

The RFC7230 support mode

RFC7230_LEGACY
HttpCompliance RFC7230_LEGACY;

Jetty's current RFC7230 support, which incorrectly excludes {@link HttpComplianceSection#METHOD_CASE_SENSITIVE}

values
HttpCompliance[] values;
Undocumented in source.

Meta