org.apache.tomcat.util.http.parser

## Class HttpParser

- java.lang.Object
- - org.apache.tomcat.util.http.parser.HttpParser

-     public class HttpParser
      extends 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 and Description
    `HttpParser(String relaxedPathChars, String relaxedQueryChars)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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(String s)` Is the provided String a token as per RFC 7230?
    `static boolean` | `isUserInfo(int c)`
    `static String` | `unquote(String input)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### HttpParser

          public HttpParser(String relaxedPathChars,
                            String relaxedQueryChars)

  - ### Method Detail

    - #### isNotRequestTargetRelaxed

          public boolean isNotRequestTargetRelaxed(int c)

    - #### isAbsolutePathRelaxed

          public boolean isAbsolutePathRelaxed(int c)

    - #### isQueryRelaxed

          public boolean isQueryRelaxed(int c)

    - #### unquote

          public static String unquote(String input)

    - #### isToken

          public static boolean isToken(int c)

    - #### isToken

          public static boolean isToken(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, otherwise `false`

    - #### 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)

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.