Forwarded

Forwarded 헤더는 클라이언트에서 접하고 있는 프록시 서버들이 요청에 대한 연결에 연관되어 있는 상황에서 해당 연결이 변경되거나 잃어버리게 되었을 때, 해당되는 정보를 가지고 있습니다.

이 헤더를 대체하는 실질적인 표준 버전은 X-Forwarded-For, X-Forwarded-Host, 그리고 X-Forwarded-Proto 입니다.

이 헤더는 디버깅, 통계, 그리고 위치 기반 컨텐츠에서 사용되며 클라이언트의 IP 주소와 같은 민감한 개인 정보를 노출하도록 디자인 되었습니다. 따라서 이 헤더를 사용할 경우에는 사용자의 정보를 노출시키지 않도록 반드시 주의해야합니다.

헤더 타입 Request header
Forbidden header name 아니오

문법

Forwarded: by=<identifier>; for=<identifier>; host=<host>; proto=<http|https>

지시자

<identifier>

식별자는 프록시를 사용할 때, 대체되거나 잃어버린 정보를 밝힙니다. 이것은 다음과 같을 수 있습니다:

  • IP 주소(v4 또는 v6, 추가로 포트, 그리고 IPv6는 따옴표와 대괄호로 쌓여있습니다),
  • 애매한 식별자(예를 들면, "_hidden" 또는 "_secret"),
  • 또는 알 수 없는 개체를 진행하고자 했을 때 (그리고 당신이 계속 만들어진 요청이 전달되기를 원한다고 알려줄 때) "unknown" or "unknown".
by=<identifier>

요청이 프록시 서버에 들어왔을 때의 인터페이스.

for=<identifier>

요청을 시작한 클라이언트와 프록시 체인에서 뒤이은 프록시.

host=<host>

Host 요청 헤더 영역은 프록시에게서 받는다.

proto=<http|https>

요청을 만들기 위해서 어떠한 프로토콜(보통 "http" 또는 "https")이 사용되었는지 알려준다.

예제

Forwarded 헤더 사용

Forwarded: for="_mdn"

# case insensitive
Forwarded: For="[2001:db8:cafe::17]:4711"

# separated by semicolon
Forwarded: for=192.0.2.60; proto=http; by=203.0.113.43

# multiple values can be appended using a comma
Forwarded: for=192.0.2.43, for=198.51.100.17

X-Forwarded-For 에서 Forwarded 로의 전환

만약 어플리케이션(서버 또는 프록시)이 표준화된 Forwared 헤더를 지원한다면, X-Forwarded-For 헤더는 대체될 수 있습니다. IPv6 주소는 Forwarded에서 따옴표와 대괄호로 감싸질 수 있다는 것을 알아두세요.

X-Forwarded-For: 123.34.567.89
Forwarded: for=123.34.567.89

X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17
Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]"

기술 사양

기술 사양 제목
RFC 7239, 섹션 4: Forwarded Forwarded HTTP Extension

함께 참고할 내용