yahoo / yahoo/proxy-verifier

Make tunneled HTTP/2 CONNECT bodies easier to use

Open
#253 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
47
Forks
29
Avg merge
5d 6h
Merged PRs (30d)
3

Description

Masakazu added support to ATS for HTTP/2 CONNECT methods and attempted adding an autest via Proxy Verifier here:
https://github.com/apache/trafficserver/pull/9616#issuecomment-1512471877

While doing so he ran into issues with Proxy Verifier incorrectly requiring certain pseudo header fields for CONNECT requests. That issue is recorded in #252.

While working on that test, though, Masakazu observed that crafting HTTP/1.1 requests via raw DATA or content nodes is painful. It would be nice if they could be crafted using the otherwise available HTTP/1.1 yaml specification nodes in Proxy Verifier as works naturally well for HTTP/1. See for example:

https://github.com/apache/trafficserver/blob/f25206a24c74caae11e3cc6aa650036489cf5df3/tests/gold_tests/connect/replays/connect.replay.yaml#L42-L64

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the linked Proxy Verifier discussion and the example at tests/gold_tests/connect/replays/connect.replay.yaml to understand how HTTP/1.1 YAML specification nodes are used. Trace how tunneled HTTP/2 CONNECT bodies currently require raw DATA or content nodes. Done means CONNECT request bodies can be authored with the available HTTP/1.1 YAML nodes instead.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.