Class 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

    • Field Detail

      • LOG

        private static final Logger LOG
      • __STRICT

        public static final boolean __STRICT
      • __colon_space

        private static final byte[] __colon_space
      • _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
      • 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
    • Constructor Detail

      • HttpGenerator

        public HttpGenerator()
      • HttpGenerator

        public HttpGenerator​(boolean sendServerVersion,
                             boolean sendXPoweredBy)
    • 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.
      • 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 class java.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)