300

Multiple Choices

개요

300 Multiple Choices는 요청한 리소스에 가능한 표현(representation)이 여러 개 있어, 클라이언트나 사용자가 그중 하나를 선택해야 함을 나타냅니다. 서버가 콘텐츠 협상만으로는 자동으로 하나를 고르지 못할 때 후보 목록을 제시합니다.

예컨대 같은 문서의 여러 언어판·형식(HTML/PDF)·해상도가 존재할 때, 서버가 선택지를 본문이나 Link 헤더로 나열하고 사용자가 고르도록 합니다.

언제 발생하나

요청 / 응답 예시

요청
GET /manual HTTP/1.1
Host: docs.example.com
Accept: text/html
응답
HTTP/1.1 300 Multiple Choices
Content-Type: text/html
Link: </manual.en.html>; rel=alternate; hreflang=en
Link: </manual.ko.html>; rel=alternate; hreflang=ko

<ul><li><a href="/manual.en.html">English</a></li><li><a href="/manual.ko.html">한국어</a></li></ul>

코드로 보기

app.get('/manual', (req, res) => {
  res.status(300).json({
    choices: ['/manual.en.html', '/manual.ko.html']
  });
});

실무 참고

관련 상태코드

관련 헤더

스펙 근거