[스프링부트] 41. Referrer, User Agent, Origin

백하림's avatar
May 15, 2025
[스프링부트] 41. Referrer, User Agent, Origin
notion image
💡
1. 레퍼럴 (Referrer)
  • 무엇: 웹 요청을 발생시킨 이전 웹 페이지의 주소 (URL) 입니다.
  • 왜 필요: 서버는 레퍼럴 정보를 통해 사용자가 어떤 페이지를 거쳐서 현재 페이지에 왔는지 알 수 있습니다. 웹사이트 분석, 보안 (악의적인 링크 추적), 캐싱 등에 활용될 수 있습니다.
  • 예시: 사용자가 네이버 검색 결과에서 "부산 맛집"을 검색하고, 나온 링크 중 하나를 클릭해서 특정 맛집 웹사이트에 접속했다면, 그 맛집 웹사이트로 보내는 요청의 레퍼럴은 네이버 검색 결과 페이지의 URL이 됩니다.
  • 주의: 브라우저 설정이나 웹사이트 정책에 따라 레퍼럴 정보가 전송되지 않거나 가려질 수 있습니다.
💡
2. 유저 에이전트 (User Agent)
  • 무엇: 웹 요청을 보내는 클라이언트 소프트웨어의 정보를 담고 있는 문자열입니다.
  • 왜 필요: 서버는 유저 에이전트 정보를 통해 어떤 종류의 브라우저, 운영체제, 또는 애플리케이션이 요청을 보냈는지 파악할 수 있습니다. 이를 기반으로 사용자 환경에 최적화된 콘텐츠를 제공하거나, 특정 환경에서의 접근을 제어하는 데 사용됩니다.
  • 예시:
    • Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 (크롬 브라우저)
    • Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148b Safari/604.1 (아이폰 사파리 브라우저)
  • 주의: 유저 에이전트 정보는 클라이언트 측에서 위변조될 수 있으므로, 보안 목적으로 사용할 때는 주의해야 합니다.
💡
3. 오리진 (Origin)
  • 무엇: 웹 요청을 시작한 스크립트가 실행된 문서의 출처를 나타냅니다. 주로 CORS (Cross-Origin Resource Sharing) 상황에서 중요한 개념입니다.
  • 왜 필요: 브라우저는 보안상의 이유로 기본적으로 다른 출처의 리소스에 접근하는 것을 제한합니다 (Same-Origin Policy). CORS는 서버가 특정 출처의 요청을 허용하도록 명시하는 메커니즘이며, 이때 오리진 헤더를 통해 요청을 보낸 출처를 확인합니다.
  • 구성: 오리진은 프로토콜 (scheme), 호스트 (hostname), 그리고 포트 (port) 정보의 조합으로 이루어집니다.
  • 예시: https://www.example.com:443
    • 프로토콜: https
    • 호스트: www.example.com
    • 포트: 443 (HTTPS의 기본 포트)
  • 특징: 서버 측에서 요청이 어느 웹사이트에서 시작되었는지 파악하는 데 사용됩니다.

핵심

🔥
  • 레퍼럴: 어디에서 왔는지 (이전 페이지 주소)
  • 유저 에이전트: 무엇으로 왔는지 (브라우저, OS 정보)
  • 오리진: 누가 요청했는지 (요청을 시작한 웹 페이지의 출처)
Share article

harimmon