공통 요청 헤더
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-backendversion(필수): 앱/SDK 버전 예)2.3.1platform(필수):iOS|Android|Web|Serveros: OS 또는 브라우저 버전 예)iOS 17.5,Android 14,Chrome 124,Node 20device: 모바일 모델명(예:iPhone14,5,SM-S918N), 웹/데스크톱은Desktopchannel: 배포 채널 예)AppStore,PlayStore,Prod,Staginglocale: 앱 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만으로 인증·권한 판단을 수행하지 않습니다.
- 로그와 분석 데이터에 저장 시 민감 정보가 없는지 확인하고 내부 정책에 따라 마스킹합니다.