• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

에러 URL질문있습니다.

21.07.20 22:40 작성 조회수 384

1

현재 error-401치고 들어가면

강의대로라면 4xx 오류 화면 ~~~라고 떠야되는데

404로 뜨고 있는 현상입니다. 왜 그런지 알 수 있을까요??

현재 ServletExController에 /error-401이 등록되어 있지 않아서 그런건가요?? 만약에 그렇다면 강의에서 404이외에 4xx대의 URL은 4xx.html이 뜬다고 말씀해주셨는데 이해가 되지 않습니다.

답변 2

·

답변을 작성해보세요.

4

안녕하세요. 김은재님

컨트롤러에서 받을 수 없는 URL을 작성하게 되면, 스프링은 최종적으로 404 오류를 만들어줍니다.

따라서 오류 상태코드가 404가 됩니다. 따라서 404 오류 페이지가 호출됩니다.

감사합니다.

3

beSlow님의 프로필

beSlow

2022.01.21

저도 공부하다가 정리한 내용 공유해봅니다.

컨트롤러 매핑 URL이 "/error-401" 같은 형식으로 되어있어서 헷갈리시는것 같은데,

예를 들어 "/members" 같은 형식으로 컨트롤러에 설정해놓지 않은 URL을 통해 사용자가 접근했을 때, 서버가 내부적으로 404 Not Found(페이지가 없으므로)를 출력하는 것으로 이해하시면 될 것 같습니다.

예시로 말씀해주신 401에러는 미인증 에러(unauthorized error)인데, 만약 로그인하지 않은 사용자가 "/members" 같은 로그인이 필요한 URL로 접근했을 때 서버 내부에서 401에러를 띄우는 식으로 처리할 수 있을 것 같아요

정리하자면, 질문하신 내용은 클라이언트 최초 요청 시 컨트롤러 매핑에 관한 부분이고,
강의에서 자동으로 4xx.html을 처리해준다고 말씀하셨던 것은 에러 발생 이후 WAS로 되돌아가서 WAS가 에러를 읽고 서버 내부적으로 다시 요청하는 것을 자동으로 처리한다는 것입니다.

(클라이언트의 첫번째 요청을 처리하는 컨트롤러, 에러 발생 시 WAS의 재요청을 처리하는 컨트롤러가 따로 있음)