Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8222527

HttpClient doesn't send HOST header when tunelling HTTP/1.1 through http proxy

    XMLWordPrintable

Details

    • b18
    • generic
    • generic
    • Verified

    Backports

      Description

        A DESCRIPTION OF THE PROBLEM :
        https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host

        HTTP/1.1 requires the Host header be sent - this includes proxies - when using apache with apache_mod_proxy, it returns 400, dutifully honoring the spec

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        Watch the following java code in your favorite tcpdump on port 8080; you'll see that only the request line is sent; no Host header

                var httpResponse = HttpClient.newBuilder()
                        .proxy(ProxySelector.of(new InetSocketAddress("localhost", 8080)))
                        .build()
                        .send(HttpRequest.newBuilder(URI.create("https://www.google.com/"))
                                .build(), HttpResponse.BodyHandlers.ofString());
                assert httpResponse.statusCode() == HttpURLConnection.HTTP_OK;


        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        CONNECT www.google.com:443 HTTP/1.1\r\n
        Host: www.google.com\r\n
        \r\n

        ACTUAL -
        CONNECT www.google.com:443 HTTP/1.1\r\n
        \r\n


        ---------- BEGIN SOURCE ----------
                var httpResponse = HttpClient.newBuilder()
                        .proxy(ProxySelector.of(new InetSocketAddress("localhost", 8080)))
                        .build()
                        .send(HttpRequest.newBuilder(URI.create("https://www.google.com/"))
                                .build(), HttpResponse.BodyHandlers.ofString());
                assert httpResponse.statusCode() == HttpURLConnection.HTTP_OK;

        ---------- END SOURCE ----------

        FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

                dfuchs Daniel Fuchs
                webbuggrp Webbug Group
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: