request-target 파싱 순서

raw 구조를 먼저 나눈 다음 각 component만 한 번 디코딩한다.

  1. 시작 줄

    두 번째 토큰을 target으로 추출한다.

  2. path/query 분리

    첫 물음표를 문법 경계로 사용한다.

  3. pair 분리

    raw query를 &와 첫 =에서 자른다.

  4. component decode

    퍼센트 바이트를 UTF-8 값으로 복원한다.

핵심: 전체 문자열을 먼저 디코딩하면 %26이 새 구분자로 오인될 수 있다.