[Web] 쿠키 & 세션 & 캐시
[Web] 쿠키 & 세션 & 캐시 HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용 HTTP 프로토콜의 특징 1. 비연결지향(Connectionless) HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다. 헤더에 keep-alive라는 값을 줘서 커넥션을 재활용하는데 HTTP1.1에서는 이것이 default이다. HTTP가 tcp위에서 구현되기 때문에( tcp는 연결지향, udp는 비연결지향 ) 연결지향이라고 할 수도 있다는 얘기도 있고 논란도 있으나 아직까지는 네트워크 관점에서 keep-alive는 옵션으로 두고 connectionless의 연결비용을 줄이는 것이 명확한 장점이기 때문에 비 연결지향이라고 알아둔다. 2. 상태정보유지안함(Stateless) 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하는 않는 특성이 있다. HTTP의 이 두가지 특성을 보완하기 위해서 쿠키와 세션을 사용하게 되었다. 비연결지향이라는 특성 덕분에 계속해서 통신 연결을 유지하지 않아서 리소스 낭비가 줄어드는 것은 아주 큰 장점이지만, 통신할 때마다 새로 커넥션을 열기 때문에 클라이언트는 내가 누구인지 인증을 계속해야하는 단점이 생긴다. 만약 쿠키와 세션이 없다면 어떤 페이지에서 옮겨 다닐때마다 로그인을 다시 해야 한다. 쿠키 쿠키는 클라이언트 로컬 에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 쿠키에는 이름, 값, 만료날짜(쿠키 저장기간), 경로 정보가 들어있다. 쿠키는 일정시간동안 데이터를 저장할 수 있다.(로그인 상태 유지에 활용) 쿠키는 사용자가 웹사이트에 접속할 때 생성되는 파일이다. 쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조한다. 쿠키는 웹사이트가 생성하고 웹브라우저에 저장된다. 쿠키 프로세스 브라우저에서 웹 페이지 접속 클라이언...