Package org.eclipse.jetty.http
Class HttpGenerator
- java.lang.Object
-
- org.eclipse.jetty.http.HttpGenerator
-
public class HttpGenerator extends java.lang.ObjectHttpGenerator. 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 classHttpGenerator.PreparedResponsestatic classHttpGenerator.Resultstatic classHttpGenerator.State
-
Field Summary
Fields Modifier and Type Field Description private static byte[]__colon_spaceprivate static HttpGenerator.PreparedResponse[]__prepreparedstatic boolean__STRICTprivate long_contentPreparedprivate HttpTokens.EndOfContent_endOfContentprivate boolean_needCRLFprivate boolean_noContentResponseprivate java.lang.Boolean_persistentprivate int_sendprivate HttpGenerator.State_stateprivate java.util.function.Supplier<HttpFields>_trailersprivate static Trie<java.lang.Boolean>ASSUMED_CONTENT_METHODSstatic intCHUNK_SIZEprivate static byte[]CONNECTION_CLOSEprivate static byte[]CONTENT_LENGTH_0static MetaData.ResponseCONTINUE_100_INFOprivate static byte[]HTTP_1_1_SPACEprivate static byte[]LAST_CHUNKprivate static LoggerLOGstatic MetaData.ResponsePROGRESS_102_INFOstatic MetaData.ResponseRESPONSE_500_INFOprivate static byte[][]SENDprivate static intSEND_SERVERprivate static intSEND_XPOWEREDBYprivate static byte[]TRANSFER_ENCODING_CHUNKEDprivate 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 voidabort()private HttpGenerator.Resultcommitted(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)private HttpGenerator.Resultcompleting(java.nio.ByteBuffer chunk, java.nio.ByteBuffer content)private voidgenerateHeaders(MetaData info, java.nio.ByteBuffer header, java.nio.ByteBuffer content, boolean last)HttpGenerator.ResultgenerateRequest(MetaData.Request info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)private voidgenerateRequestLine(MetaData.Request request, java.nio.ByteBuffer header)HttpGenerator.ResultgenerateResponse(MetaData.Response info, boolean head, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)HttpGenerator.ResultgenerateResponse(MetaData.Response info, java.nio.ByteBuffer header, java.nio.ByteBuffer chunk, java.nio.ByteBuffer content, boolean last)Deprecated.private voidgenerateResponseLine(MetaData.Response response, java.nio.ByteBuffer header)private voidgenerateTrailers(java.nio.ByteBuffer buffer, HttpFields trailer)longgetContentPrepared()static byte[]getReasonBuffer(int code)private byte[]getReasonBytes(java.lang.String reason)booleangetSendServerVersion()Deprecated.HttpGenerator.StategetState()booleanisChunking()booleanisCommitted()booleanisEnd()booleanisIdle()booleanisNoContent()booleanisPersistent()booleanisState(HttpGenerator.State state)booleanisWritten()private voidprepareChunk(java.nio.ByteBuffer chunk, int remaining)private static voidputContentLength(java.nio.ByteBuffer header, long contentLength)private static voidputSanitisedName(java.lang.String s, java.nio.ByteBuffer buffer)private static voidputSanitisedValue(java.lang.String s, java.nio.ByteBuffer buffer)static voidputTo(HttpField field, java.nio.ByteBuffer bufferInFillMode)static voidputTo(HttpFields fields, java.nio.ByteBuffer bufferInFillMode)voidreset()static voidsetJettyVersion(java.lang.String serverVersion)voidsetPersistent(boolean persistent)voidsetSendServerVersion(boolean sendServerVersion)Deprecated.java.lang.StringtoString()
-
-
-
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:
toStringin 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)
-
-