Class HttpParser
java.lang.Object
org.apache.tomcat.util.http.parser.HttpParser
HTTP header value parser implementation. Parsing HTTP headers as per RFC2616 is not always as simple as it first
appears. For headers that only use tokens the simple approach will normally be sufficient. However, for the other
headers, while simple code meets 99.9% of cases, there are often some edge cases that make things far more
complicated. The purpose of this parser is to let the parser worry about the edge cases. It provides tolerant (where
safe to do so) parsing of HTTP header values assuming that wrapped header lines have already been unwrapped. (The
Tomcat header processing code does the unwrapping.)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisAbsolutePath(int c) booleanisAbsolutePathRelaxed(int c) static booleanisAlpha(int c) static booleanisControl(int c) static booleanisHex(int c) static booleanisHttpProtocol(int c) static booleanisNotRequestTarget(int c) booleanisNotRequestTargetRelaxed(int c) static booleanisNumeric(int c) static booleanisQuery(int c) booleanisQueryRelaxed(int c) static booleanisScheme(int c) static booleanIs the provided String a scheme as per RFC 3986?static booleanisToken(int c) static booleanIs the provided String a token as per RFC 7230?static booleanisUserInfo(int c) static String
-
Constructor Details
-
HttpParser
-
-
Method Details
-
isNotRequestTargetRelaxed
public boolean isNotRequestTargetRelaxed(int c) -
isAbsolutePathRelaxed
public boolean isAbsolutePathRelaxed(int c) -
isQueryRelaxed
public boolean isQueryRelaxed(int c) -
unquote
-
isToken
public static boolean isToken(int c) -
isToken
Is the provided String a token as per RFC 7230?
Note: token = 1 * tchar (RFC 7230)
Since a token requires at least 1 tchar,nulland the empty string ("") are not considered to be valid tokens.- Parameters:
s- The string to test- Returns:
trueif the string is a valid token, otherwisefalse
-
isHex
public static boolean isHex(int c) -
isNotRequestTarget
public static boolean isNotRequestTarget(int c) -
isHttpProtocol
public static boolean isHttpProtocol(int c) -
isAlpha
public static boolean isAlpha(int c) -
isNumeric
public static boolean isNumeric(int c) -
isScheme
public static boolean isScheme(int c) -
isScheme
Is the provided String a scheme as per RFC 3986?
Note: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
Since a scheme requires at least 1 ALPHA,nulland the empty string ("") are not considered to be valid tokens.- Parameters:
s- The string to test- Returns:
trueif the string is a valid scheme, otherwisefalse
-
isUserInfo
public static boolean isUserInfo(int c) -
isAbsolutePath
public static boolean isAbsolutePath(int c) -
isQuery
public static boolean isQuery(int c) -
isControl
public static boolean isControl(int c)
-