Package org.eclipse.jetty.http
Class HttpGenerator
- java.lang.Object
-
- org.eclipse.jetty.http.HttpGenerator
-
public class HttpGenerator extends java.lang.Object
HttpGenerator. Builds HTTP Messages.If the system property "org.eclipse.jetty.http.HttpGenerator.STRICT" is set to true, then the generator will strictly pass on the exact strings received from methods and header fields. Otherwise a fast case insensitive string lookup is used that may alter the case and white space of some methods/headers
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
HttpGenerator.PreparedResponse
static class
HttpGenerator.Result
static class
HttpGenerator.State
-
Field Summary
Fields Modifier and Type Field Description private static byte[]
__colon_space
private static HttpGenerator.PreparedResponse[]
__preprepared
static boolean
__STRICT
private long
_contentPrepared
private HttpTokens.EndOfContent
_endOfContent
private boolean
_needCRLF
private boolean
_noContentResponse
private java.lang.Boolean
_persistent
private int
_send
private HttpGenerator.State
_state
private java.util.function.Supplier<HttpFields>
_trailers
private static Trie<java.lang.Boolean>
ASSUMED_CONTENT_METHODS
static int
CHUNK_SIZE
private static byte[]
CONNECTION_CLOSE
private static byte[]
CONTENT_LENGTH_0
static MetaData.Response
CONTINUE_100_INFO
private static byte[]
HTTP_1_1_SPACE
private static byte[]
LAST_CHUNK
private static Logger
LOG
static MetaData.Response
PROGRESS_102_INFO
static MetaData.Response
RESPONSE_500_INFO
private static byte[][]
SEND
private static int
SEND_SERVER
private static int
SEND_XPOWEREDBY
private static byte[]
TRANSFER_ENCODING_CHUNKED
private static byte[]
ZERO_CHUNK
-
Constructor Summary
Constructors Constructor Description HttpGenerator()
HttpGenerator(boolean sendServerVersion, boolean sendXPoweredBy)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
abort()
private HttpGenerator.Result
committed(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)
private HttpGenerator.Result
completing(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content)
private void
generateHeaders(MetaData info, java.nio.ByteBuffer header, java.nio.ByteBuffer content, boolean last)
HttpGenerator.Result
generateRequest(MetaData.Request info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)
private void
generateRequestLine(MetaData.Request request, java.nio.ByteBuffer header)
HttpGenerator.Result
generateResponse(MetaData.Response info, boolean head, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)
HttpGenerator.Result
generateResponse(MetaData.Response info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)
Deprecated.private void
generateResponseLine(MetaData.Response response, java.nio.ByteBuffer header)
private void
generateTrailers(java.nio.ByteBuffer buffer, HttpFields trailer)
long
getContentPrepared()
static byte[]
getReasonBuffer(int code)
private byte[]
getReasonBytes(java.lang.String reason)
boolean
getSendServerVersion()
Deprecated.HttpGenerator.State
getState()
boolean
isChunking()
boolean
isCommitted()
boolean
isEnd()
boolean
isIdle()
boolean
isNoContent()
boolean
isPersistent()
boolean
isState(HttpGenerator.State state)
boolean
isWritten()
private void
prepareChunk(java.nio.ByteBuffer chunk, int remaining)
private static void
putContentLength(java.nio.ByteBuffer header, long contentLength)
private static void
putSanitisedName(java.lang.String s, java.nio.ByteBuffer buffer)
private static void
putSanitisedValue(java.lang.String s, java.nio.ByteBuffer buffer)
static void
putTo(HttpField field, java.nio.ByteBuffer bufferInFillMode)
static void
putTo(HttpFields fields, java.nio.ByteBuffer bufferInFillMode)
void
reset()
static void
setJettyVersion(java.lang.String serverVersion)
void
setPersistent(boolean persistent)
void
setSendServerVersion(boolean sendServerVersion)
Deprecated.java.lang.String
toString()
-
-
-
Field Detail
-
LOG
private static final Logger LOG
-
__STRICT
public static final boolean __STRICT
-
__colon_space
private static final byte[] __colon_space
-
CONTINUE_100_INFO
public static final MetaData.Response CONTINUE_100_INFO
-
PROGRESS_102_INFO
public static final MetaData.Response PROGRESS_102_INFO
-
RESPONSE_500_INFO
public static final MetaData.Response RESPONSE_500_INFO
-
CHUNK_SIZE
public static final int CHUNK_SIZE
- See Also:
- Constant Field Values
-
_state
private HttpGenerator.State _state
-
_endOfContent
private HttpTokens.EndOfContent _endOfContent
-
_contentPrepared
private long _contentPrepared
-
_noContentResponse
private boolean _noContentResponse
-
_persistent
private java.lang.Boolean _persistent
-
_trailers
private java.util.function.Supplier<HttpFields> _trailers
-
_send
private final int _send
-
SEND_SERVER
private static final int SEND_SERVER
- See Also:
- Constant Field Values
-
SEND_XPOWEREDBY
private static final int SEND_XPOWEREDBY
- See Also:
- Constant Field Values
-
ASSUMED_CONTENT_METHODS
private static final Trie<java.lang.Boolean> ASSUMED_CONTENT_METHODS
-
_needCRLF
private boolean _needCRLF
-
ZERO_CHUNK
private static final byte[] ZERO_CHUNK
-
LAST_CHUNK
private static final byte[] LAST_CHUNK
-
CONTENT_LENGTH_0
private static final byte[] CONTENT_LENGTH_0
-
CONNECTION_CLOSE
private static final byte[] CONNECTION_CLOSE
-
HTTP_1_1_SPACE
private static final byte[] HTTP_1_1_SPACE
-
TRANSFER_ENCODING_CHUNKED
private static final byte[] TRANSFER_ENCODING_CHUNKED
-
SEND
private static final byte[][] SEND
-
__preprepared
private static final HttpGenerator.PreparedResponse[] __preprepared
-
-
Method Detail
-
setJettyVersion
public static void setJettyVersion(java.lang.String serverVersion)
-
reset
public void reset()
-
getSendServerVersion
@Deprecated public boolean getSendServerVersion()
Deprecated.
-
setSendServerVersion
@Deprecated public void setSendServerVersion(boolean sendServerVersion)
Deprecated.
-
getState
public HttpGenerator.State getState()
-
isState
public boolean isState(HttpGenerator.State state)
-
isIdle
public boolean isIdle()
-
isEnd
public boolean isEnd()
-
isCommitted
public boolean isCommitted()
-
isChunking
public boolean isChunking()
-
isNoContent
public boolean isNoContent()
-
setPersistent
public void setPersistent(boolean persistent)
-
isPersistent
public boolean isPersistent()
- Returns:
- true if known to be persistent
-
isWritten
public boolean isWritten()
-
getContentPrepared
public long getContentPrepared()
-
abort
public void abort()
-
generateRequest
public HttpGenerator.Result generateRequest(MetaData.Request info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last) throws java.io.IOException
- Throws:
java.io.IOException
-
committed
private HttpGenerator.Result committed(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)
-
completing
private HttpGenerator.Result completing(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content)
-
generateResponse
@Deprecated public HttpGenerator.Result generateResponse(MetaData.Response info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last) throws java.io.IOException
Deprecated.- Throws:
java.io.IOException
-
generateResponse
public HttpGenerator.Result generateResponse(MetaData.Response info, boolean head, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last) throws java.io.IOException
- Throws:
java.io.IOException
-
prepareChunk
private void prepareChunk(java.nio.ByteBuffer chunk, int remaining)
-
generateTrailers
private void generateTrailers(java.nio.ByteBuffer buffer, HttpFields trailer)
-
generateRequestLine
private void generateRequestLine(MetaData.Request request, java.nio.ByteBuffer header)
-
generateResponseLine
private void generateResponseLine(MetaData.Response response, java.nio.ByteBuffer header)
-
getReasonBytes
private byte[] getReasonBytes(java.lang.String reason)
-
generateHeaders
private void generateHeaders(MetaData info, java.nio.ByteBuffer header, java.nio.ByteBuffer content, boolean last)
-
putContentLength
private static void putContentLength(java.nio.ByteBuffer header, long contentLength)
-
getReasonBuffer
public static byte[] getReasonBuffer(int code)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
putSanitisedName
private static void putSanitisedName(java.lang.String s, java.nio.ByteBuffer buffer)
-
putSanitisedValue
private static void putSanitisedValue(java.lang.String s, java.nio.ByteBuffer buffer)
-
putTo
public static void putTo(HttpField field, java.nio.ByteBuffer bufferInFillMode)
-
putTo
public static void putTo(HttpFields fields, java.nio.ByteBuffer bufferInFillMode)
-
-