Cookie
사용자가 방문한 웹페이지에서 이용된 환경설정 및 기타 정보를 사용자의 컴퓨터에 작은 text 파일로 저장한 것입니다.
;(세미클론)으로 구분한다 ex) name="han";id="1234"
쿠키 하나는 4KB 저장 가능하다
구성요소
이름 (name)
값 (value)
만료시간 (Expires)
도메인 (Domain)
경로 (Path)
보안 여부 (Secure)
HttpOnly 여부 (HttpOnly)
작동순서
1.클라이언트가 서버에 요청(request)
2.서버에서 Cookie를 생성 > 클라이언트에게 전달
3.클라이언트 로컬 pc에 저장
Session
세션(session)이란 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미합니다.
웹서버에 접속한 순간부터 종료까지 유지하는 것을 Session이라고 합니다.
Session이라고 서버 측에 데이터를 객체(Object)형식으로 저장합니다
서버에서는세션 ID로 클라이언트를 구분하여 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지합니다.
세션은 일반적으로 민감한 정보나 로그인 상태와 같은 상태 정보를 유지하는 데 사용됩니다.
작동순서
- 클라이언트가 서버에 접속
- 클라이언트의 Request-Header필드에 세션ID 존재여부 확인
2-1. 만약존재하지 않는다면 새로운 새션ID를 생성 후 클라이언트에게 전달
2-2. 전달 받은 클라이언트는 발급받은 새션ID를 클라이언트 Cookie에 저장- 페이지를 옮기거나 서버에 새로운 요청을 보낼때 세션ID만 체크하여 상태를 유지
JWT
JSON 형식의 토큰에 대한 표준 규칙
3부분으로 나누어짐 Header.Payload.signiture
항상 3개가 존재해야지만 JWT라고 불림
https://jwt.io/ << JWT형식을 디코딩 해주는 사이트
암호키가 없어도 디코딩은 가능하다 그러므로 보안부분에서 취약하다
- Header signiture에서 어떤 암호화가 되었는지 나타내는 부분
- Payload 실제 데이터가 보관되어있는 부분
- signiture 토큰을 인코딩하거나 유효성검사를 할때 필요한 코드
참고자료
https://support.google.com/google-ads/answer/2407785?hl=ko
https://lgphone.tistory.com/65
http://www.tcpschool.com/php/php_cookieSession_session