Opened 4 years ago

Last modified 4 years ago

#6679 enhancement new

Make HTTPClientParser (and therefore HTTP11ClientProtocol) handle 'CONNECT' responses correctly

Reported by: Adam Goodman Owned by:
Priority: normal Milestone:
Component: web Keywords:
Cc: jknight Branch:
Author:

Description

With HTTP11ClientProtocol's support for persistent connections, it should be fairly simple to add support for HTTPS "CONNECT" proxying (e.g. #4969, #5324). Using HTTP11ClientProtocol directly (rather than the Agent interface that runs on top of it), you can:

  • create an HTTP11ClientProtocol instance connected to your proxy server
  • send a "CONNECT" request; wait for a 200 response
  • start TLS on the protocol's underlying transport
  • send the actual HTTPS request through

(see the attached proxy_demo.py for a quick-and-dirty implementation)

However, HTTPClientParser needs a small fix for this to work; currently it expects that a CONNECT response should include a body, but this is incorrect. I've attached a small patch for this.

Attachments (2)

proxy_demo.py (1.5 KB) - added by Adam Goodman 4 years ago.
6679.patch (2.5 KB) - added by Adam Goodman 4 years ago.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 4 years ago by DefaultCC Plugin

Cc: jknight added

Changed 4 years ago by Adam Goodman

Attachment: proxy_demo.py added

Changed 4 years ago by Adam Goodman

Attachment: 6679.patch added
Note: See TracTickets for help on using tickets.