본문으로 건너뛰기
버전: 0.68.0

공통 요청 헤더

dha-sleep API는 모든 요청에 공통 헤더를 요구합니다. User-Agent는 클라이언트 식별·진단용이며, 언어 협상은 **반드시 Accept-Language**로 수행합니다.

User-Agent (클라이언트 식별)

포맷

User-Agent: <product>/<version> (<platform>; <os>; <device>; <channel>; locale/<locale>)

필드 정의

  • product (필수): 클라이언트 종류 예) dha-sleep-app, dha-sleep-web, dha-sleep-backend
  • version (필수): 앱/SDK 버전 예) 2.3.1
  • platform (필수): iOS | Android | Web | Server
  • os: OS 또는 브라우저 버전 예) iOS 17.5, Android 14, Chrome 124, Node 20
  • device: 모바일 모델명(예: iPhone14,5, SM-S918N), 웹/데스크톱은 Desktop
  • channel: 배포 채널 예) AppStore, PlayStore, Prod, Staging
  • locale: 앱 UI 로케일 예) ko-KR
  • 필수 필드가 없을 경우 unknown으로 표기하여 파싱 오류를 방지합니다.

예시

  • 모바일 앱: dha-sleep-app/2.3.1 (iOS; iOS 17.5; iPhone14,5; AppStore; locale/ko-KR)
  • 웹 클라이언트: dha-sleep-web/1.8.0 (Web; Chrome 124; Desktop; Prod; locale/ko-KR)
  • 서버-서버: dha-sleep-backend/1.4.0 (Server; Node 20; Prod; locale/ko-KR)

Accept-Language (표준 언어 협상)

  • 모든 요청에 Accept-Language를 전송해 서버가 응답 언어를 협상합니다.
  • 예시: Accept-Language: ko-KR,en-US;q=0.8
  • 품질 가중치(q)는 0.0~1.0 범위이며, 값이 없으면 기본 q=1.0으로 취급됩니다.
  • CDN/캐시 환경에서는 Vary: Accept-Language 헤더를 고려해 캐싱 전략을 설정합니다.

주의사항

  • 사용자 ID, 기기 고유 식별자 등 개인정보(PII)는 포함하지 않습니다.
  • User-Agent만으로 인증·권한 판단을 수행하지 않습니다.
  • 로그와 분석 데이터에 저장 시 민감 정보가 없는지 확인하고 내부 정책에 따라 마스킹합니다.