The table of proxy types tells about HTTP proxy: "Implemented using the "CONNECT" command, supports only outgoing TCP connections; supports authentication."
This is true for SSL connections but not for unencrypted ones since a default capability of the HTTP proxy is CachingCapability. This leads to the proxy doing "GET/POST/etc." requests and not using the CONNECT method. Unencrypted connections need to remove the CachingCapability in order to use the CONNECT method (which is way easier to implement).