-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
response.sendRedirect("/login?redirectURL=" + requestURI);
23.02.07 00:10 작성 조회수 222
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
안녕하세요. 강의 정말 잘 보고 있습니다.
그런데 스프링 인터셉터 - 인증 체크 강의 하실 때
public class LoginCheckInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse
response, Object handler) throws Exception {
String requestURI = request.getRequestURI();
log.info("인증 체크 인터셉터 실행 {}", requestURI);
HttpSession session = request.getSession(false);
if (session == null || session.getAttribute(SessionConst.LOGIN_MEMBER)
== null) {
log.info("미인증 사용자 요청");
//로그인으로 redirect
response.sendRedirect("/login?redirectURL=" + requestURI);
return false;
}
return true;
}
코드를 위에서처럼 작성하시는데,
여기서 제가 궁금한 점은 response.sendRedirect("/login?redirectURL="+requestURI)
이 부분인데, 이 때 sendRedirect함수를 호출 했다고 해서 바로 rediredt 요청을 하는건가요? 아니면 제가 생각했을 때는 자료를 참고해보면
인터셉터에서 제한이 걸려서 WAS까지 다시 올라 간 다음에 그때 서야 서버 내부에서 redirect를 하는 건가요?
질문을 정리하면 sendRedirect를 호출할 때 서버에서 이뤄지는 과정이 어떻게 되는 건지,,, 궁금합니다.
답변을 작성해보세요.
0
김영한
23.02.11 22:08
안녕하세요. 임동현님
redirect라는 것이 결국에는 HTTP 응답 메시지가 만들어지고, 그 안에 헤더로 존재하는 것입니다.
저도 직접 확인해보지는 않았지만 아마도 WAS에 가면 그 부분에서 response 메시지를 HTTP 응답으로 출력하는 부분이 있을 것인데, 그때 전달된다고 보면 될 것 같습니다.
감사합니다.
답변 1