Page 19 -
P. 19

4.2         쿠키와 세션 이해하기                                 N  o  d  e  .  j  s







                   클라이언트에서 보내는 요청에는 한 가지 큰 단점이 있습니다. 바로 누가 요청을 보내는지 모른다
                   는 것입니다. 물론 요청을 보내는 IP 주소나 브라우저의 정보를 받아올 수는 있습니다. 하지만 여

                   러 컴퓨터가 공통으로 IP 주소를 가지거나, 한 컴퓨터를 여러 사람이 사용할 수도 있습니다.
                   그렇다면 로그인을 구현하면 되지 않느냐고 생각할 수도 있습니다. 정답입니다. 하지만 로그인을

                   구현하려면 쿠키와 세션에 대해 알고 있어야 합니다. 여러분이 웹 사이트에 방문해서 로그인을 할
                   때 내부적으로는 쿠키와 세션을 사용하고 있습니다. 로그인한 후에는 새로고침(새로운 요청)을 해
                   도 로그아웃되지 않지요? 바로 클라이언트가 서버에게 여러분이 누구인지를 지속적으로 알려주
                   고 있기 때문입니다.

                   여러분이 누구인지 기억하기 위해서, 서버는 요청에 대한 응답을 할 때 쿠키라는 것을 같이 보내

                   줍니다. 쿠키는 name=zerocho 같이 단순한 ‘키-값’의 쌍입니다. 서버로부터 쿠키가 오면 웹 브
                   라우저는 쿠키를 저장해두었다가 요청할 때마다 쿠키를 동봉해서 보내줍니다. 서버는 요청에 들
                   어 있는 쿠키를 읽어서 사용자가 누구인지 파악합니다.

                   브라우저는 쿠키가 있다면 자동으로 동봉해서 보내주므로 따로 처리할 필요가 없습니다. 서버에
                   서 브라우저로 쿠키를 보낼 때만 여러분이 코드를 작성하여 처리하면 됩니다.

                      그림 4-6 쿠키
                    클라이언트              요청                  서버               쿠키를 가지지 않은 상태
                                                                            쿠키를 가진 상태
                                    쿠키와 함께 응답

                                    쿠키와 함께 요청


                                       응답


                   즉, 서버는 미리 클라이언트에 요청자를 추정할 만한 정보를 쿠키로 만들어 보내고, 그 다음부터
                   는 클라이언트로부터 쿠키를 받아 요청자를 파악합니다. 쿠키가 여러분이 누구인지 추적하고 있

                   는 것입니다. 개인정보 유출 방지를 위해 쿠키를 주기적으로 지우라는 말이 바로 이러한 이유 때
                   문입니다.




             138




         node_06.indd   138                                                                     2018-07-20   오전 10:26:43
   14   15   16   17   18   19   20   21   22   23