작성
·
558
답변 2
5
안녕하세요. 김은재님
컨트롤러에서 받을 수 없는 URL을 작성하게 되면, 스프링은 최종적으로 404 오류를 만들어줍니다.
따라서 오류 상태코드가 404가 됩니다. 따라서 404 오류 페이지가 호출됩니다.
감사합니다.
3
저도 공부하다가 정리한 내용 공유해봅니다.
컨트롤러 매핑 URL이 "/error-401" 같은 형식으로 되어있어서 헷갈리시는것 같은데,
예를 들어 "/members" 같은 형식으로 컨트롤러에 설정해놓지 않은 URL을 통해 사용자가 접근했을 때, 서버가 내부적으로 404 Not Found(페이지가 없으므로)를 출력하는 것으로 이해하시면 될 것 같습니다.
예시로 말씀해주신 401에러는 미인증 에러(unauthorized error)인데, 만약 로그인하지 않은 사용자가 "/members" 같은 로그인이 필요한 URL로 접근했을 때 서버 내부에서 401에러를 띄우는 식으로 처리할 수 있을 것 같아요
정리하자면, 질문하신 내용은 클라이언트 최초 요청 시 컨트롤러 매핑에 관한 부분이고,
강의에서 자동으로 4xx.html을 처리해준다고 말씀하셨던 것은 에러 발생 이후 WAS로 되돌아가서 WAS가 에러를 읽고 서버 내부적으로 다시 요청하는 것을 자동으로 처리한다는 것입니다.
(클라이언트의 첫번째 요청을 처리하는 컨트롤러, 에러 발생 시 WAS의 재요청을 처리하는 컨트롤러가 따로 있음)