Uploaded image for project: 'HttpComponents HttpCore'
  1. HttpComponents HttpCore
  2. HTTPCORE-434

Handling of HEAD responses without payload headers

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.4.5
    • 4.4.6, 5.0-alpha2
    • HttpCore
    • None

    Description

      Hi,

      I'm not sure if this is a problem with HttpClient itself or with Squid (3.3.8) proxy server, but maybe you could please advise.

      Our client application first sends a HEAD request for NTLM authentication with the proxy and then re-uses the execution context as described in https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html for the following POST requests.

      Using more recent versions of Tomcat on the server-side, re-using the execution context does not work anymore, the NTLM authentication negotiate-challenge is repeated forever and following POST requests with chunked transfer-encoding don't work since they are interrupted by the authentication challenge.

      I figured out the difference betweeen newer and older Tomcat versions and found the reason: previously, Tomcat automatically added a "Content-Length: 0" header to the reponse of HEAD requests. With "Bug 59310 - Content-Length of HEAD requests incorrectly computed as 0" (https://bz.apache.org/bugzilla/show_bug.cgi?id=59310), this behavior was changed and without this header, NTLM connections to the proxy don't persist anymore.

      As the content-length header is optional in a response to a HEAD request (RFC 7230), the problem must be either in HttpClient or Squid proxy.

      Thanks in advance!

      Best regards
      Reinhold

      Attachments

        1. wirelog-4.5.3.txt
          92 kB
          Reinhold Früsmer
        2. wire-context-log.txt
          91 kB
          Reinhold Früsmer
        3. tomcat-squid-ntlm-stateful.pcapng
          9 kB
          Reinhold Früsmer
        4. tomcat-squid-ntlm-not-stateful.pcapng
          13 kB
          Reinhold Früsmer

        Activity

          People

            Unassigned Unassigned
            FruesmerRe Reinhold Früsmer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: