405

Method Not Allowed

개요

405 Method Not Allowed는 서버가 요청의 HTTP 메서드 자체는 알지만, 해당 리소스에 대해서는 그 메서드를 허용하지 않을 때 반환됩니다. 예를 들어 POST만 받는 엔드포인트에 GET을 보내는 경우입니다.

규격상 405 응답에는 그 리소스가 실제로 허용하는 메서드 목록을 담은 Allow 헤더가 반드시 포함되어야 합니다. 이를 통해 클라이언트는 어떤 메서드로 다시 시도해야 하는지 알 수 있습니다.

언제 발생하나

요청 / 응답 예시

요청
DELETE /api/articles HTTP/1.1
Host: api.example.com
응답
HTTP/1.1 405 Method Not Allowed
Allow: GET, POST
Content-Type: application/json

{"error":"method_not_allowed","allowed":["GET","POST"]}

코드로 보기

app.route('/api/articles')
  .get(list)
  .post(create)
  .all((req, res) => res.set('Allow', 'GET, POST').sendStatus(405));
location /api/articles {
    limit_except GET POST { deny all; }  # others -> 405
}

흔한 원인

해결 방법

실무 참고

관련 상태코드

관련 헤더

스펙 근거