Class ResponseProtocolCompliance


  • @Contract(threading=IMMUTABLE)
    class ResponseProtocolCompliance
    extends java.lang.Object
    Since:
    4.1
    • Field Detail

      • UNEXPECTED_100_CONTINUE

        private static final java.lang.String UNEXPECTED_100_CONTINUE
        See Also:
        Constant Field Values
      • UNEXPECTED_PARTIAL_CONTENT

        private static final java.lang.String UNEXPECTED_PARTIAL_CONTENT
        See Also:
        Constant Field Values
    • Constructor Detail

      • ResponseProtocolCompliance

        ResponseProtocolCompliance()
    • Method Detail

      • ensureProtocolCompliance

        public void ensureProtocolCompliance​(HttpRequestWrapper request,
                                             org.apache.http.HttpResponse response)
                                      throws java.io.IOException
        When we get a response from a down stream server (Origin Server) we attempt to see if it is HTTP 1.1 Compliant and if not, attempt to make it so.
        Parameters:
        request - The HttpRequest that generated an origin hit and response
        response - The HttpResponse from the origin server
        Throws:
        java.io.IOException - Bad things happened
      • consumeBody

        private void consumeBody​(org.apache.http.HttpResponse response)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • warningsWithNonMatchingWarnDatesAreRemoved

        private void warningsWithNonMatchingWarnDatesAreRemoved​(org.apache.http.HttpResponse response)
      • identityIsNotUsedInContentEncoding

        private void identityIsNotUsedInContentEncoding​(org.apache.http.HttpResponse response)
      • ensure206ContainsDateHeader

        private void ensure206ContainsDateHeader​(org.apache.http.HttpResponse response)
      • ensurePartialContentIsNotSentToAClientThatDidNotRequestIt

        private void ensurePartialContentIsNotSentToAClientThatDidNotRequestIt​(org.apache.http.HttpRequest request,
                                                                               org.apache.http.HttpResponse response)
                                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • ensure200ForOPTIONSRequestWithNoBodyHasContentLengthZero

        private void ensure200ForOPTIONSRequestWithNoBodyHasContentLengthZero​(org.apache.http.HttpRequest request,
                                                                              org.apache.http.HttpResponse response)
      • ensure304DoesNotContainExtraEntityHeaders

        private void ensure304DoesNotContainExtraEntityHeaders​(org.apache.http.HttpResponse response)
      • backendResponseMustNotHaveBody

        private boolean backendResponseMustNotHaveBody​(org.apache.http.HttpRequest request,
                                                       org.apache.http.HttpResponse backendResponse)
      • requestDidNotExpect100ContinueButResponseIsOne

        private void requestDidNotExpect100ContinueButResponseIsOne​(HttpRequestWrapper request,
                                                                    org.apache.http.HttpResponse response)
                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • transferEncodingIsNotReturnedTo1_0Client

        private void transferEncodingIsNotReturnedTo1_0Client​(HttpRequestWrapper request,
                                                              org.apache.http.HttpResponse response)
      • removeResponseTransferEncoding

        private void removeResponseTransferEncoding​(org.apache.http.HttpResponse response)