쿠키(Cookie)와 세션(Session)

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 유투브 오픈 [구독해보기]

6. 쿠키(Cookie)와 세션(Session)

  • HTTP Request 를 전송하면, 서버는 HTML 파일을 전달하고, 해당 요청은 완료된다.
  • HTTP 프로토콜은 연결을 유지하기 어려운 구조로 되어 있음
    . 요청-응답 후 연결이 끊기는 구조(사용자 입력 정보등 상태 정보 활용이 어려운 구조임)
  • 상태 관리 정보를 저장하는 방식으로 쿠키(cookie)와 세션(session) 기법이 나옴

6.1. 쿠키(cookie): 상태 정보를 클라이언트에 저장하는 방식

  1. HTML 페이지를 웹 서버에 요청
  2. 웹 서버에서 쿠키(cookie) 생성
  3. 웹 서버 응답(HTML 페이지를 돌려줄 때) HTTP 헤더에 쿠키를 포함해서 전송
Set−Cookie: id=korea123
  1. 전달받은 쿠키는 웹브라우저에서 관리하고 있다가, 다음 요청 때 쿠키를 함께 전송
Cookie: id=korea123
  1. 서버에서는 쿠키 정보를 읽어 이전 상태 정보를 확인
  2. 필요시 서버가 쿠키 정보를 변경해서 응답시 변경된 쿠키와 함께 응답
No description has been provided for this image

6.2. 세션(session): 상태 정보를 웹 서버에 저장하는 방식

  1. 웹브라우저가 웹 서버에 요청하게 되면, 웹 서버가 해당 웹브라우저(클라이언트)에 유일한 ID(세션 ID)를 부여함
  2. 해당 세션 ID는 응답(HTML 페이지를 돌려줄 때) HTTP 헤더에 넣어져 전달된다.
Set−Cookie: PHPSESSID=pi0fo9v2kdi5nuha3bcgiu8fq2
  1. 웹브라우저는 이후 웹브라우저를 닫기 까지 해당 웹 서버 요청할 때 부여된 세션 ID를 HTTP 헤더에 넣어서 전달한다.
Cookie: PHPSESSID=pi0fo9v2kdi5nuha3bcgiu8fq2
  1. 웹 서버는 세션 ID를 확인하고, 해당 세션에 관련된 정보를 확인한 후, HTML 페이지를 돌려준다.
No description has been provided for this image
실습 (세션에 대한 기본 이해)
1. [한빛미디어 회원가입](http://www.hanbit.co.kr/member/member_agree.html)
2. 크롬(Chrome) 브라우저로 www.hanbit.co.kr 페이지 오픈 후
- alt + command + i (맥북), F12 (윈도우) 누르고 Application -> Cookies -> http://www.hanbit.co.kr 이동
- PHPSESSID 확인
3. 한빛미디어 로그인 후
- PHPSESSID 값을 임의 값으로 수정
4. 마이한빛 메뉴 클릭

X PHPSESSID 값을 임의 값으로 수정했기 때문에, 로그인 정보가 필요한 마이한빛 페이지 오픈시, 서버측에서 해당 로그인 정보가 없으므로
로그인을 하라는 페이지로 이동함