Class HttpParser
- java.lang.Object
-
- org.apache.tomcat.util.http.parser.HttpParser
-
public class HttpParser extends java.lang.Object
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 Constructor Description HttpParser(java.lang.String relaxedPathChars, java.lang.String relaxedQueryChars)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static boolean
isAbsolutePath(int c)
boolean
isAbsolutePathRelaxed(int c)
static boolean
isAlpha(int c)
static boolean
isControl(int c)
static boolean
isHex(int c)
static boolean
isHttpProtocol(int c)
static boolean
isNotRequestTarget(int c)
boolean
isNotRequestTargetRelaxed(int c)
static boolean
isNumeric(int c)
static boolean
isQuery(int c)
boolean
isQueryRelaxed(int c)
static boolean
isToken(int c)
static boolean
isToken(java.lang.String s)
Is the provided String a token as per RFC 7230?static boolean
isUserInfo(int c)
static java.lang.String
unquote(java.lang.String input)
-
-
-
Method Detail
-
isNotRequestTargetRelaxed
public boolean isNotRequestTargetRelaxed(int c)
-
isAbsolutePathRelaxed
public boolean isAbsolutePathRelaxed(int c)
-
isQueryRelaxed
public boolean isQueryRelaxed(int c)
-
unquote
public static java.lang.String unquote(java.lang.String input)
-
isToken
public static boolean isToken(int c)
-
isToken
public static boolean isToken(java.lang.String s)
Is the provided String a token as per RFC 7230?
Note: token = 1 * tchar (RFC 7230)
Since a token requires at least 1 tchar,null
and the empty string (""
) are not considered to be valid tokens.- Parameters:
s
- The string to test- Returns:
true
if 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)
-
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)
-
-