Timing-Allow-OriginTiming-Allow-Origin(TAO)은 교차 출처 리소스에 대해 Resource Timing API가 노출하는 상세 타이밍(DNS·TCP·TTFB·전송 크기 등)을 어떤 오리진의 스크립트가 읽을 수 있는지 허용하는 응답 헤더입니다. 이 헤더가 없으면 교차 출처 리소스의 민감한 타이밍 값은 0으로 마스킹됩니다.
브라우저의 PerformanceResourceTiming은 페이지가 불러온 각 리소스의 세부 시간(domainLookupStart/End·connectStart/End·requestStart·responseStart/End 등)과 transferSize·encodedBodySize를 제공합니다. 하지만 교차 출처 리소스에서는 정보 유출(예: 캐시 상태·내부 응답 시간 추론)을 막기 위해 이 값들이 기본적으로 0으로 가려집니다.
리소스 서버가 Timing-Allow-Origin으로 특정 오리진(또는 *)을 허용하면, 그 오리진의 페이지 스크립트는 마스킹 없이 실제 타이밍을 읽을 수 있습니다. 이는 RUM(Real User Monitoring)·성능 분석 도구가 CDN·서드파티 자산의 로딩 성능을 정확히 측정하는 데 필수입니다.
값은 정확한 오리진 문자열(스킴·호스트·포트 포함) 목록이거나 와일드카드 *입니다. CORS의 Access-Control-Allow-Origin과 문법은 비슷하지만 목적이 다릅니다. ACAO는 응답 본문 접근을, TAO는 타이밍 값 노출을 통제합니다.
Timing-Allow-Origin: <origin>[, <origin>]* | *e.g. Timing-Allow-Origin: https://app.example.com
* | 모든 오리진이 이 리소스의 상세 타이밍을 읽도록 허용. |
<origin> | 상세 타이밍 읽기를 허용할 특정 오리진(스킴+호스트+포트). 쉼표로 여러 개. |