GIGO MIND DEV BLOG

웹사이트 제작의 기초 (5)

세션, 쿠키, State


자, 이제 기초의 대망의 마지막 편이군요. 아쉽네요ㅠ

이번에 다뤄볼 내용은.. 저번편들로부터 이어진 거라고 볼 수 있는데요.

잠깐 복습하자면, 유저는 서버에게 기능을 요구할 수 있습니다. 인풋 값을 넣어서, 그 인풋값을 데이터베이스와 나름의 처리를 통해 처리하고 나온 아웃풋 값으로 받아올 수 있단 말이죠.

유저가 로그인 정보를 넣었을 때, 서버가 로그인 정보가 정확한지 확인하고, 유저의 브라우저에게 유저가 로그인 되었다..라고 말해줄 수 있다는 겁니다.

잠깐만요. 로그인 되었다라고 어떻게 말하나요?

로그인 된 화면을 다른 페이지로 보내주나요? 왜 로그인 된 사람과 안 된 사람은 다른 페이지가 보이죠? 그리고 브라우저는 로그인 되었나 안되었나를 어떻게 알죠????

답은 생각보다 간단해요. 서버쪽에서 유저에게 값을 보내줄 때, 쉽게 사라지지 않는 종이에 로그인 되었다는 정보를 적어두고, 유저의 브라우저는 HTML의 태그를 통해 그 값이 있나 없나만 확인하고 다르게 render 하면 되는 것인거에요.

그 잘 사라지지 않는 종이를 세션, 쿠키 같은 것이라고 보면 됩니다.

브라우저는 원래 상태를 저장하지 않아요. 세션과 쿠키가 없이는 매 페이지는 그저 서버에게서 받아온 독립적인 페이지일 뿐이죠.

하지만 세션과 쿠키는 잘 사라지지 않는 매개체로서 유지되어야 할 정보들을 저장하는 요소로 쓰인답니다.

그래서 쿠키를 훔치는 해커들이 자주 뉴스에 나오는것이에요. 그 쿠키를 훔치면 자기도 다른 컴퓨터에서 같은 사이트에 들어가서 쿠키만 살짝 바꿔주면 로그인이 된 것처럼 되는 것이거든요..

자, 이제 웹 구조에 대한 기초가 끝났습니다.

매우 얕게 겉핥기식으로만 진행해 보았는데요!

앞으로 진행될 수 있는 조금 높은 단계에서는 디테일을 좀 더 알려드리도록 하겠습니다. 감사합니다!