Class Parser

java.lang.Object
org.eclipse.jetty.fcgi.parser.Parser
Direct Known Subclasses:
ClientParser, ServerParser

public abstract class Parser extends Object

The FastCGI protocol exchanges frames.

struct frame {
    ubyte version;
    ubyte type;
    ushort requestId;
    ushort contentLength;
    ubyte paddingLength;
    ubyte reserved;
    ubyte[] content;
    ubyte[] padding;
}

Depending on the type, the content may have a different format, so there are specialized content parsers.

A typical exchange is:

BEGIN_REQUEST
PARAMS (length > 0)
PARAMS (length == 0 to signal end of PARAMS frames)
[STDIN (length > 0 in case of request content)]
STDIN (length == 0 to signal end of STDIN frames and end of request)
...
STDOUT (length > 0 with HTTP headers and HTTP content)
STDOUT (length == 0 to signal end of STDOUT frames)
[STDERR (length > 0)]
[STDERR (length == 0 to signal end of STDERR frames)]
END_REQUEST
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • parse

      public boolean parse(ByteBuffer buffer)
      Parameters:
      buffer - the bytes to parse
      Returns:
      true if the caller should stop parsing, false if the caller should continue parsing
    • findContentParser

      protected abstract ContentParser findContentParser(FCGI.FrameType frameType)
    • eof

      public boolean eof()