Self-Improvement

쿠키와 세션 본문

Web

쿠키와 세션

JoGeun 2018. 10. 20. 14:30



*쿠키(Cookie)
- 쿠키는 클라이언트에 저장되는 키와 값이 들어있는 작은 데이터 파일이다.
- 쿠키는 이름, 값, 만료 날짜, 경로 정보가 들어있습니다.
- 쿠키는 일정 시간동안 데이터를 저장할 수 있어서 로그인 상태를 유지합니다.
- 쿠키는 클라이언트의 상태 정보를 본인 하드 디스크에 저장하였다가 필요할 때 참조, 재사용 합니다.

*쿠키의 원리
1) 클라이언트가 브라우저로 웹페이지 접속
2) 클라이언트가 요청한 웹페이지를 전송받으면서 쿠키를 하드에 저장
3) 클라이언트 재 방문시 웹페이지 요청과 함께 쿠키값도 전송
4) 지속적으로 로그인 정보를 가지고 있는 것 처럼 사용

*쿠키의 사용 예
- 방문 사이트에서 아이디와 비밀번호를 저장하시겠습니까? 라고 나타나는 것은 쿠키로 저장하겠냐 라는 뜻이다.
- 팝업이 나타날때 " 오늘 이창을 보지 않음"을 누르면 오늘 그창이 뜨지 않는 것과 같음

*쿠키의 제약 조건
- 클라이언트에 총 300개까지 쿠키를 저장할 수 있다.
- 하나의 도메인 당 20개의 값만 가질 수 있으며 초과시 가장 적게 참조된 쿠키가 지워진다
- 하나의 쿠키 값은 4MB까지 저장이 가능하다

*세션(Session)
- 세션은 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태를 말합니다.
- 즉, 사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때 시점 까지를 말합니다.
- HTTP 프로토콜은 비접속형 프로토콜이므로, 매 접속시마다 새로운 네트워크 연결이 이루어지는데 세션이 연결 유지를 가능하게 해준다.
- 클라이언트가 웹서에 Request를 보내면, 해당 서버의 엔진이 클라리언트에 유일한 ID를 부여하는데 이 ID를 세션이라고 부른다.
- 세션 ID는 임시로 저장하여 페이지 이동 시 이용하거나, 클라이언트가 재 접속 했을 때 클라이언트를 유일하게 구분하는 수단이 됩다

*세션의 원리
1) 세션 ID를 서버에서 클라이언트가 다시 웹사이트에 접속시 발급해준다.
2) 서버에서 클라이언트로 발금해준 세션ID를 쿠키에 저장하게 된다 ex) PHPSESSID
3) 클라이언트는 다시 접속시, 이 쿠키를 이용해서 세션 ID값을 서버에 전달한다.

*세션의 장점
- 각 클라이언트에게 고유 ID를 부여한다.
- 세션 ID로 클라이언트를 구분해서 클라이언트의 요구에 맞는 서비스를 제공할 수 있다.
- 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수하다,.

*세션의 단점
- 서버에 저장된느 세션때문에 서버에 처리를 요구하는 부하와 저장공간을 필요로 한다.

※세션 토큰 : 세션ID를 갖고있는 것 ex) JESSIONID, PHPSESSID 
클라이언트는 서버로 세션ID를 담고있는 세션 토큰을 전송하게 된다.


'Web' 카테고리의 다른 글

php 비교 연산자 취약점(md5 매직해시)  (0) 2018.10.20
XML, JSON, Ajax, SOAP, REST  (0) 2018.10.20
Web VS WAS  (0) 2018.10.20
ASP, JSP ,PHP  (0) 2018.10.20
2017 OWASP TOP 10  (0) 2018.10.20