본문 바로가기
IT 지식/웹 프로그래밍

[웹 프로그래밍] 쿠키, 세션, 캐시

by 이민우 2021. 4. 2.
728x90
반응형

HTTP는 브라우저를 통해 사용자와 서버가 통신하는 프로토콜이다. 그러나 HTTP는 연결 상태를 유지하지 않는 비연결적 프로토콜이라는 특징을 가지고 있다. 즉, 사용자가 요청한 데이터를 서버가 전송한 후, 연결이 종료된다.

이러한 점은 당연히 서버 입장에서는 전산 자원을 아낄 수 있어 좋겠지만 이후 추가적인 요청을 처리할 수 없다는 단점이 존재할 수 밖에 없다.

그래서 연결을 지속하기 위해 쿠키와 세션이 사용된다.

 

 

쿠키와 세션의 큰 차이점은 어디에 저장하느냐이다.

쿠키는 기본적으로 브라우저에, 즉 클라이언트 측에 저장되고, 세션은 서버에 저장된다.

 

쿠키는 클라이언트가 웹서버에 접속할 때 생성되는 로그인 정보와 사이트의 정보를 담은 임시 파일이다.

즉, 방문기록이기도 한데 웹서버는 이를 통해 사용자의 정보와 어떤 사이트에 자주 접속했는지 알 수 있다.

그리고 클라이언트측에 저장되는 쿠키는 그 특성상 보안에 취약할 수 밖에 없다.

 

 

세션클라이언트와 웹 서버의 연결이 지속적으로 유지되는 상태이다.

서버에 데이터를 저장해 서버의 자원을 사용할 수 있으며, 연결을 지속할 수 있다. 그리고 웹 브라우저가 닫히거나 서버에서 삭제될 경우에 사라지게 된다.

주로 로그인 정보를 유지하는데 사용되고, 클라이언트가 아니라 서버에 저장되는 특성상 보안성이 좋다.

하지만 보안성이 좋다는 이유로 세션이 쿠키를 완전히 대체할 수는 없는 노릇이다. 사용자가 많을 수록 서버에 무리가 갈 수 밖에 없고, 만약 서버 오류 발생 시 모든 정보가 사라질 수 있기 때문이다.

 

 

+캐시

데이터나 값을 미리 복사해 임시로 저장해주는 장소를 의미한다.

웹 사이트에 접속했을 때 우리는 웹 사이트의 사진, js 파일, CSS 파일 등을 불러오게 된다. 하지만 접속을 할 때마다 이를 불러오게 된다면 당연히 속도가 느려질 수 밖에 없다.

이러한 단점을 보완하기 위해 캐시는 이러한 정보들을 클라이언트에 저장해놓는다. 그리고 재접속시 서버가 아닌 로컬에서 해당 정보를 불러오기에 데이터 소모량을 아끼고 속도가 빨라지게 된다.

728x90
반응형