• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

response.sendRedirect("/login?redirectURL=" + requestURI);

23.02.07 00:10 작성 조회수 516

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를 호출할 때 서버에서 이뤄지는 과정이 어떻게 되는 건지,,, 궁금합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 임동현님

redirect라는 것이 결국에는 HTTP 응답 메시지가 만들어지고, 그 안에 헤더로 존재하는 것입니다.

저도 직접 확인해보지는 않았지만 아마도 WAS에 가면 그 부분에서 response 메시지를 HTTP 응답으로 출력하는 부분이 있을 것인데, 그때 전달된다고 보면 될 것 같습니다.

감사합니다.