인프런 커뮤니티 질문&답변

James Kim님의 프로필 이미지
James Kim

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

쿠키 이해하기 강의 질문

작성

·

168

0

 

쿠키 강의에서 18:00 부분 질문있습니다 

아래 코드에서 처음에는 login으로 들어가서 로그인창이나옵니다

그리고 서버에서는 set cookie로 응답을 보내겠죠? 그러고 끝이 나야하는데

왜 처음 로그인할때는 ~~님 환영합니다 까지 뜨는건가요?

요청은 제가 한번 보낸것 아닌가요?

요청(처음로그인) -> 응답(302,쿠키 보내기)  .. 여기서 재 요청을 하면 else if(cookies.name)이 작동해야하지만

왜 한번만 요청을 했는데 login , cookies.name 이렇게 2개가 작동하는건가요?

 

  if (req.url.startsWith('/login')) {
    const { query } = url.parse(req.url);
    const { name } = qs.parse(query);
    const expires = new Date();
    // 쿠키 유효 시간을 현재시간 + 5분으로 설정
    expires.setMinutes(expires.getMinutes() + 5);
    res.writeHead(302, {
      Location: '/',
      'Set-Cookie': `name=${encodeURIComponent(name)}; Expires=${expires.toGMTString()}; HttpOnly; Path=/`,
    });
    res.end();
  // name이라는 쿠키가 있는 경우
  } else if (cookies.name) {
    res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
    res.end(`${cookies.name}님 안녕하세요`);
  } else {
 
 
 
 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

302 응답은 브라우저가 Location에 적힌 주소로 이동하게 만듭니다. 브라우저는 /로 요청을 다시 보내므로 ~님 안녕하세요가 나오는 겁니다.

즉, 브라우저가 302를 보고 요청을 한 번 더 보낸 겁니다.

James Kim님의 프로필 이미지
James Kim

작성한 질문수

질문하기