Skip to content

fetch 경로에 요청 스코프 쿠키 저장소 추가 - #73

Open
m-a-king wants to merge 1 commit into
mainfrom
fix/fetch-cookie-store
Open

m-a-king wants to merge 1 commit into
mainfrom
fix/fetch-cookie-store

Conversation

@m-a-king

@m-a-king m-a-king commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Situation

Client Hints 도입 차단

  • 원인: Sec-CH-UA 전송 시 airbridge 딥링크의 쿠키 바운스 발동
    • 결과: 자기 자신으로 302 반복, redirect 상한 5 소진
    • 결과: 헤더 이등분으로 방아쇠 격리. UA·Accept·Accept-Language·Sec-Fetch·Priority 무관

fetch 경로의 쿠키 보관 없음

  • 저장소 0건
    • 결과: 쿠키 바운스 딥링크 해결 불가
    • 참조: 렌더 경로는 3홉 통과. 307, 302 자기 자신, 200 상품 페이지

Task

한 링크 안에서 쿠키 유지

  • 홉 사이 쿠키 전달
  • 조건: 다른 요청·다른 사용자로 쿠키 누출 없음

Action

요청 스코프 쿠키 저장소 추가

  • HttpClient5 의 CookieStore 구현, 저장 위치는 ThreadLocal
  • fetch 종료 시 DNS 캐시와 함께 정리
  • 구현: RequestScopedCookieStore · PageFetchHttpClientConfig · HttpPageFetcher
선택지 쿠키 격리 비용
요청 스코프 ThreadLocal (채택) fetch 단위·스레드 단위 테스트 생성자 8곳 갱신
전역 기본 저장소 없음 없음
편의 생성자로 테스트 변경 회피 fetch 단위 클라이언트와 다른 저장소 정리하는 함정

검증

  • W컨셉 공유링크 E2E 통과. 바운스 통과 후 상품 페이지 본문 수신
    • 조건: 운영 UA 는 Client Hints 전송 없음. 테스트에서만 헤더 추가
  • 쿠키의 fetch 경계·스레드 경계 이탈 없음. 단위 테스트로 고정

Result

운영 동작 변화 없음

  • 원인: 현재 UA 의 Client Hints 전송 없음으로 바운스 발동 없음
  • 결과: 쿠키 바운스 딥링크 처리 가능 상태 확보

후속

  • Client Hints 전송 PR 은 이 PR 배포 이후
    • 위험: 순서 역전 시 W컨셉 공유링크 확정 실패

연관 이슈

- 딥링크가 쿠키를 심고 자기 자신으로 302 하는 바운스를 쓴다(airbridge 실측, al.wconcept.co.kr). 쿠키를 안 들고 있으면 같은 자리를 계속 돌다 redirect 상한을 소진해 확정 실패가 된다. 지금 fetch 경로는 쿠키를 하나도 보관하지 않아 그런 링크를 구조적으로 못 푼다
- 저장소는 요청 스코프다. HttpClient 하나를 모든 fetch 가 공유하므로 전역 저장소면 남의 링크에서 받은 쿠키가 다음 사용자 요청에 실린다. RequestScopedDnsResolver 와 같은 이유·같은 모양으로 ThreadLocal 에 두고 fetch 가 끝날 때 비운다
- 검증은 실제 링크로 했다. E2E 를 수동 활성화해 돌려 바운스를 빠져나와 W컨셉 상품 페이지에 도달하는 것을 확인했다. 쿠키가 fetch 경계와 스레드 경계를 넘지 않는 것은 단위 테스트로 고정했다
- 이 변경만으로는 운영 동작이 바뀌지 않는다. 현재 UA 는 Client Hints 를 보내지 않아 그 바운스를 타지 않기 때문이다. Client Hints 를 켜려면 이게 먼저 있어야 한다
@m-a-king m-a-king added the feat 외부 가시적 새 기능 label Sep 13, 2026
@m-a-king m-a-king self-assigned this Sep 13, 2026
@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 1b6161fe-295a-4405-ab94-ed4c12825740


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Discord 스레드 연동용 메타데이터입니다. discord-pr-bot 워크플로가 자동 생성하며, 수정·삭제하면 PR 과 Discord 알림 연동이 끊깁니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 외부 가시적 새 기능

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant