본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

요청 헤더 (Request headers)

원문 보기 위키 갱신

Fly.io가 앱에 전달하는 다양한 요청 헤더를 정리한 가이드예요. 클라이언트 IP, 리전, 원본 포트와 프로토콜 같은 정보를 담고 있으며, HTTP 핸들러 서비스가 이 헤더들을 추가해요.

출처: 문서

본문

요청 헤더는 수신 요청과 그 요청이 애플리케이션까지 도달한 경로에 특정된 정보를 담아요. 요청 헤더는 HTTP 핸들러 서비스가 추가해요.

요청 헤더 (Request Headers)

Fly-Client-IP

클라이언트 IP 주소: Fly Proxy 관점에서 본 클라이언트의 IP 주소예요. Fly.io 플랫폼 앞에 다른 리버스 프록시 서비스를 사용한다면, 이 헤더는 요청을 보낸 클라이언트가 아니라 프록시 서비스의 IP 주소로 설정돼요. 그 경우에는 X-Forwarded-For 헤더에서 IP 주소를 파싱해 클라이언트 IP 주소를 찾아야 해요.

Fly-Forwarded-Port

원본 연결 포트: 이 헤더는 Fly Proxy가 항상 설정하며, 클라이언트가 Fly 에지 노드에 연결한 실제 포트를 나타내고, 이 포트가 애플리케이션 인스턴스로 포워딩돼요.

Fly-Region

에지 노드 리전: 이 헤더는 연결이 수락되고 라우팅된 리전을 나타내는 세 글자 리전 코드예요.

애플리케이션이 실행 중인 곳을 나타내는 환경 변수 FLY_REGION과 혼동하지 마세요.

X-Forwarded-For

클라이언트와 프록시 목록: 요청을 시작한 클라이언트의 주소와 요청이 통과한 프록시 서버의 주소를 포함한 IP 주소의 쉼표로 구분된 목록이에요. 예를 들어 "77.97.0.98, 77.83.142.33"은 클라이언트와 통과한 프록시 하나를 포함해요. Fly.io 플랫폼에서 이 목록의 마지막(가장 오른쪽) 주소는 앱에 할당된 공유 또는 전용 IP 주소가 돼요.

이 헤더는 스푸핑 시도를 피하기 위해 주의해서 다뤄야 해요. X-Forwarded-For에 대한 MDN 문서의 지침을 따라 헤더를 안전하게 파싱하는 법을 배워 보세요. Fly.io 플랫폼 앞에 다른 리버스 프록시를 사용하지 않는다면, 클라이언트 IP 주소를 얻는 데는 Fly-Client-IP 헤더가 더 나은 선택일 수 있어요.

X-Forwarded-Proto

원본 클라이언트 프로토콜: 클라이언트가 요청에 사용한 프로토콜이에요. http 또는 https 중 하나예요.

X-Forwarded-Port

원본 연결 포트: 이 헤더는 클라이언트가 설정할 수 있으며, 클라이언트가 연결하려고 했던 포트를 나타내야 해요.

X-Forwarded-SSL

SSL 상태: 클라이언트가 SSL을 통해 연결했는지 여부를 나타내요. 값은 on 또는 off일 수 있어요.

요청/응답 헤더 (Request and Response Headers)

Via

프록시 경로: 프록시가 추가하는 이 헤더는 연결이 거쳐 간 경로와 사용된 프로토콜을 보여줘요. MDN에 이 헤더에 대한 전체 문서가 있어요. 예를 들어 Fly 에지를 통한 연결은 필드에 2 fly.io를 표시할 수 있는데, 이는 연결이 Fly Proxy를 통과하면서 HTTP 2버전을 사용했다는 뜻이에요.

더 알아보기 (Learn more)