<aside> 🌟

Today 요약



</aside>

What I did?

What I Learned?

🍪쿠키와 세션

쿠키는 잘 알듯이 반죽된 작은 과자를 의미한다

웹 사이트 개발한 양반들이 웹사이트 방문시 작은 공간에 개인의 정보를 저장해서 후속 방문시 데이터를 유지할 수 있게 만드는 기능을 개발중이였는데 작은 정보 = 작은 조각(과자) 라고 해서 쿠키라고 이름짓게 되었다

쿠키는 웹사이트에 대한 정보를 유지하거나 활동을 추적한다. 보통 사용자의 환경 설정,로그인 정보,장바구니 내역 등을 저장하는데 쓴다

생각해보면 쿠키를 쓸 이유가 별로 없다고 생각한다. 질문을 할 수 있는 사이트가 막혀서 현재는 질문을 하지 못하고 있지만, 쿠키의 대체제로 localstorage에 사용자 설정이나 데이터를 저장해두면 되지 않겠느냐는 생각이다. localstorage의 경우 JS로 직접수정이 불가하며 클라이언트측 사용자만 엑세스 할수있기에 쿠키보다 보안이 조금 더 뛰어나다 또한 네트워크 요청을 날리지도 않으니 서버에도 부하를 줄여줄 수 있다고 생각한다. 요새는 개인정보 보호때문에 쿠키를 아예 차단하거나, 허용할지 여부를 사용자가 선택 가능하게 하는것 처럼 쿠키를 사용함으로서의 이득보다는 실이 더 많다고 느껴진다.

아마 ‘악용’하기 위해 계속 존재하는 것이라고 느껴진다. 수많은 웹사이트들이 광고로 돈을 버는 만큼,맞춤형 광고의 단가가 비쌀 수 밖에 없기도 하다

세션(Session)

쿠키를 기반으로 보안성을 강화한 기술이다.

클라이언트에게 고유한 세션ID를 쿠키로 할당하고,이 ID를 통해 클라이언트의 상태를 추적한다.

쿠키 없이도 URL 매개변수로 세션 ID를 전달하거나 ,HTML5의 Web Storage API를 사용하여 클라이언트의 상태를 유지 할 수도 있다.

쿠키 구워보기

클라이언트가 서버에게 요청을 날리면,서버는 응답과 함께 쿠키를 담아서 보낸다. 이후, 클라이언트는 서버에 요청을 날릴때 마다 받아온 쿠키를 HTTP헤더안에 포함시켜 전달한다

 const cookie = 'user_id=12345; Path=/; Max-Age=3600; HttpOnly';
 res.setHeader('Set-Cookie', cookie);
 
 res.writeHead(200, {'Content-Type': 'text/plain'});