Our open-source Proxy, the BrowserUp proxy is used by testers to capture HTTP level traffic into HAR files. Currently, the BrowserUp Proxy only has support for HTTP/1. It is built on top of a fork of littleproxy that we have commit rights to. These changes will be needed to be made first in LittleProxy, then utilized from the BrowserUp Proxy.
We need several work-items done to it:
- Add HTTP/2 Support. This will likely involve re-designing how connections are handled in the proxy.
- Add support for HTTP/2 server-sent events.
This likely involves:
Make HTTP/2 the Primary Protocol
Make HTTP/1.X the Fallback Protocol
Rewrite ConnectionStep
Verify functions such as Filter are not broken
- Add Websocket Support
Acceptance Criteria
- HTTP/1 support must be maintained and continue working
- HTTP/2 support and server sent events work, and follow the spec
- The traffic is captured properly to the HAR as it currently for HTTP/1 traffic
- Websockets and server push must work
- Websocket traffic must be captured
- Avoid LEAK: ByteBuf.release() problems from Netty's memory leak detection (IE, no memory leaks)
Resources:
Raw version of websocket support that may be a starting point
We are looking for developers with experience with Netty, HTTP and protocol-level experience. We need a detail-oriented developer who can read a spec, dig into a project, and design an approach that implements the spec.
If you read this far, add the word JellyBean at the end of your response to the project question(s) and I will consider your application above those didn't read the project.
This project will require a redesign of the LittleProxy connection architecture. We will have more work for the successful developer!
About the recuiterMember since May 20, 2018 Bhawar Deora
from Baden-Wurttemberg, Germany