정의
ERROR 405는 HTTP 상태 코드 중 하나로, "Method Not Allowed"를 의미한다. 클라이언트가 요청한 메서드(예: GET, POST, PUT, DELETE 등)가 해당 URL에서 지원되지 않을 때 서버가 반환한다.
표준 근거
- 정의: RFC 7231 (HTTP/1.1 Semantics and Content) 제6.5.5절
- 상태 코드 범위: 4xx(클라이언트 오류)군에 속한다.
발생 원인
- 클라이언트가 서버가 허용하지 않는 HTTP 메서드로 요청을 보낸 경우.
- API 엔드포인트가 특정 메서드만 허용하도록 설계되었지만 다른 메서드가 호출된 경우.
- 웹 서버나 프록시 설정에서 메서드 제한이 적용된 경우.
응답 구조
- Status-Line:
HTTP/1.1 405 Method Not Allowed - 헤더:
Allow헤더에 해당 리소스가 지원하는 메서드 목록이 포함될 수 있다. 예:Allow: GET, POST - 본문(선택): 오류 설명이나 대체 요청 방법에 대한 정보가 포함될 수 있다.
대처 방안
- 클라이언트 측에서 요청 메서드가 올바른지 확인한다.
- API 문서에서 허용된 메서드를 확인하고 일치하도록 수정한다.
- 서버 측에서
Allow헤더를 정확히 설정해 클라이언트가 가능한 메서드를 알 수 있게 한다. - 프레임워크나 서버 설정에서 메서드 제한 규칙을 검토한다.
관련 상태 코드
- 400 Bad Request: 요청 구문이 잘못된 경우.
- 403 Forbidden: 인증은 되었지만 접근 권한이 없을 때.
- 404 Not Found: 요청한 리소스가 존재하지 않을 때.
- 409 Conflict: 요청이 현재 서버 상태와 충돌할 때.
사용 사례
- RESTful API에서
PUT /users/123대신POST /users/123을 호출했을 때. - 정적 파일 서버가
DELETE /image.png와 같은 메서드를 허용하지 않을 경우.
기술적 메모
- 일부 웹 프레임워크(예: Django, Express, Spring)에서는 라우팅 설정에 따라 자동으로 405 응답을 생성한다.
- CORS 사전 요청(preflight)에서 허용되지 않은 메서드가 포함되면 브라우저가 405 응답을 받게 된다.
요약
ERROR 405는 클라이언트가 지원되지 않는 HTTP 메서드로 요청했을 때 서버가 반환하는 표준 상태 코드이며, Allow 헤더를 통해 가능한 메서드 목록을 제공한다. 올바른 메서드 사용과 서버 설정 검토를 통해 예방 및 해결이 가능하다.