➋ 로그인 요청(GET /login)을 처리하는 부분입니다. form은 GET 요청인 경우 데이터를 쿼리스트링으로 보내기에 URL 객체로 쿼리스트링 부분을 분석했습니다. 그리고 쿠키의 만료 시간도 지금으로부터 5분 뒤로 설정했습니다. 이제 302 응답 코드, 리다이렉트 주소와 함께 쿠키를 헤더에 넣습니다. 브라우저는 이 응답 코드를 보고 페이지를 해당 주소로 리다이렉트합니다. 헤더에는 한글을 설정할 수 없으므로 name 변수를 encodeURIComponent 메서드로 인코딩했습니다. 또한 Set-Cookie의 값으로는 제한된 ASCII 코드만 들어가야 하므로 줄바꿈을 넣어서는 안 됩니다(책에서는 공간 부족으로 인해 줄바꿈되었습니다).
➌ 그 외의 경우(/로 접속했을 때 등), 먼저 쿠키가 있는지 없는지를 확인합니다. 쿠키가 없다면 로그인할 수 있는 페이지를 보냅니다. 처음 방문한 경우에는 쿠키가 없으므로 cookie2.html이 전송됩니다. 쿠키가 있다면 로그인한 상태로 간주해 인사말을 보냅니다.
Set-Cookie로 쿠키를 설정할 때 만료 시간(Expires)과 HttpOnly, Path 같은 옵션을 부여했습니다. 쿠키를 설정할 때는 각종 옵션을 넣을 수 있으며, 옵션 간에 세미콜론(;)을 넣어 구분하면 됩니다.
또한 이 책에서는 코드가 길어져서 다음 줄로 넘어간 것일 뿐, 줄바꿈이나 한글은 값으로 넣으면 안 됩니다. 만약 넣어야 한다면 encodeURIComponent로 감쌉니다.