HTTPQUERY
한국어

Accept

사용법

Accept 헤더는 콘텐츠 협상을 이끕니다. 클라이언트가 선호도 순으로 정렬한 미디어 타입 목록을 보내면, 서버는 요청된 리소스에 대해 제공 가능한 표현 중 가장 적합한 것을 선택합니다.

브라우저는 요청 맥락에 따라 이 헤더를 자동으로 설정합니다. 내비게이션 요청은 보통 text/html을 요구하고, 이미지 요소는 흔한 이미지 형식을 요구합니다. API 클라이언트는 application/json이나 application/xml을 보내는 경우가 많습니다.

서버에 나열된 어떤 타입과도 맞는 표현이 없으면 기대되는 응답은 406 Not Acceptable입니다. 실제로는 많은 서버가 이 헤더를 무시하고 기본 표현을 반환합니다.

참고

Accept 헤더는 필수가 아닙니다. 헤더를 생략하면 클라이언트가 어떤 미디어 타입이든 받아들인다는 뜻(/)입니다. 브라우저는 대체 수단으로 */*를 보내며, 많은 서버는 Accept를 완전히 무시하고 클라이언트 선호도와 무관하게 고정된 Content-Type을 반환합니다.

media-type/subtype

text/html이나 application/json 같은 구체적인 미디어 타입입니다. 서버는 type/subtype 쌍 전체를 하나의 구체적인 선호로 취급합니다.

media-type/*

와일드카드 서브타입입니다. image/*는 image/png, image/webp, image/avif 등 어떤 이미지 형식이든 받아들인다는 뜻입니다.

*/*

모든 미디어 타입을 받아들입니다. 이 와일드카드는 다른 어떤 타입도 맞지 않을 때의 대체 수단으로 작동합니다.

;q= (품질 값)

상대적 선호도를 나타내는 0과 1 사이의 가중치입니다. 값이 클수록 선호도가 높습니다. 생략하면 기본 가중치는 1.0입니다. 값이 0이면 해당 타입을 받아들일 수 없다는 뜻입니다.

예시

HTML 페이지를 요청하는 브라우저가 품질 값으로 순위를 매긴 여러 미디어 타입을 보냅니다. 서버가 지원하는 것 중 가중치가 가장 높은 타입이 선택됩니다.

Accept: text/html, application/xhtml+xml, */*;q=0.8

XML을 대체 수단으로 두고 JSON을 요청하는 API 클라이언트가 XML에 더 낮은 품질 값을 부여합니다.

Accept: application/json, application/xml;q=0.9

토큰 소비를 줄이기 위해 페이지를 Markdown으로 요청하는 AI 에이전트이며, HTML을 대체 수단으로 둡니다.

Accept: text/markdown, text/html;q=0.9

AI 에이전트와 콘텐츠 협상

Cloudflare 같은 CDN 공급자는 요청에 Accept: text/markdown이 포함되면 HTML 페이지를 즉석에서 Markdown으로 변환합니다. 이 변환은 토큰 수를 최대 80%까지 줄여 주므로, LLM 기반 에이전트와 크롤러에게 콘텐츠 협상은 실용적인 최적화 수단이 됩니다.

구조화된 오류 응답을 요청하는 API 클라이언트가 일반 콘텐츠 타입과 함께 application/problem+json을 사용합니다. 서버는 오류에 대해 problem 세부 정보를, 성공 응답에 대해 JSON을 반환합니다.

Accept: application/problem+json, application/json

여러 텍스트 형식을 명시적인 우선순위와 함께 나열한 요청입니다. text/html은 기본 가중치 1.0을, text/plain은 0.9를, 그 밖의 텍스트 형식은 0.8을, 나머지 전부는 0.7을 가집니다.

Accept: text/html, text/plain;q=0.9, text/*;q=0.8, */*;q=0.7

참고

두 타입이 같은 품질 값을 가질 때는 더 구체적인 타입이 우선합니다. text/html과 text/*가 모두 가중치 1.0을 가지면 서버는 text/html을 선택합니다.