cookie
쿠키는 서버에서 클라이언트에 영속성 있는 데이터를 저장하는 방법
서버는 클라이언트의 쿠키를 이용하여 데이터를 가져올 수 있다.
쿠키를 이용하는 것은 서버 -> 클라이언트, 클라이언트 -> 서버로 쿠키를 전송하는 것도 포함한다.
서버가 클라이언트에 특정한 데이터를 저장할 수 있다.
데이터를 저장한 후 아무 때나 데이터를 가져올 수는 없다.
데이터를 저장한 이후 특정 조건들이 만족 되어야 다시 가져올 수 있기 때문이다.
여기서 1.특정 조건들은 아래와 같은 코드처럼 http 헤더를 이용해 2.쿠키 옵션으로 표현할 수 있다.
1. 특정 조건
'Set-Cookie':[
'cookie=newJeans',
'Secure=Secure; Secure',
'HttpOnly=HttpOnly; HttpOnly',
'Path=Path; Path=/cookie',
'Doamin=Domain; Domain=newjeans.com'
]
2.쿠키 옵션
1. 도메인
2.Path
3.MaxAge or Expires
4.Secure
5. HttpOnly
6.SameSite
쿠키를 이용한 상태 유지
이러한 쿠키의 특성을 이용해서 서버는 클라이언트에 인증 정보를 담은 쿠키를 전송하고,
클라이언트는 전달받은 쿠키를 서버에 요청과 함께 전송하여 Stateless한 인터넷 연결을 Stateful하게 유지할 수 있다.
하지만 기본적으로 쿠키는 오랜시간 동안 유지될 수 있고, HttpOnly 옵션을 사용하지 않았다면 자바스크립트를 이용해서 쿠키에 접근 할 수 있기 때문에 쿠키에 민감한 정보를 담는 것은 위험하다.
session
세션기반 인증
로그인
서버: 사용자가 인증에 성공했음을 알고 있어야 함
클라이언트 : 인증 성공을 증명할 수단을 갖고 있어야 함
사용자가 인증에 성공한 상태를 세션
세션이 만들어지면 각 세션을 구분할 수 있는 세션 아이디도 만들어진다.
이 세션 아이디는 세션 성공을 증명할 수단으로 전달된다.
쿠키와 세션은 무슨관계?
웹사이트에서 로그인을 유지하기 위한 수단으로 쿠키를 사용
쿠키에는 서버에서 발급한 세션 아이디를 저장
로그아웃
쿠키는 세션아이디(인증성공여부)를 들고있으므로 공공 PC에서는 꼭 로그아웃 해야한다.
서버 : 세션정보 삭제
클라이언트 : 쿠키변경 또는 삭제
1. res.cookie : 쿠키의 값을 무효한 값으로 변경
2. res.clearCookie : 쿠키삭제
'네트워크' 카테고리의 다른 글
[인증/보안]OAuth (0) | 2023.05.04 |
---|---|
[인증/보안] Token (2) | 2023.05.03 |
[ngrok] 3004오류 (2) | 2023.05.01 |
[네트워크/HTTP] HTTP (0) | 2023.04.29 |
[웹표준] 웹표준과 접근성 (0) | 2023.04.28 |