쿠키
HTTP는 무상태 프로토콜이기에 쿠키 미사용시엔 클라이언트가 서버에 접속했는지 계속 확인할 수 없다.
사용하는 예
1)로그인후에 유저 정보를 서버가 알기 위해 사용한다.
Set-Cookie
- 서버에서 클라이언트로 쿠키 전달(Response)
Cookie
- 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달
즉, 서버가 쿠키를 전달하면 클라이언트는 저장하고 항상 보내준다.
모든 요청에 자동으로 포함한다.
보안을 위해 쿠키를 서버를 세팅할때 세션 아이디를 생성해서 사용한다.
세션 아이디를 통해 서버에서 누군지 해석한다.
사용처
- 사용자 로그인 세션 관리에서 사용한다.
- 광고 정보 트래킹
쿠키 정보는 항상 서버에 전동 됨
- 최소한의 정보만 사용
- 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지(localStorage, sessionStorage) 참고
주의점
- 보안에 민감한 데이터는 저장하면 안 됨(주민번호, 신용카드 번호)
쿠키 생명주기
Expires(날짜), max-age(시간)
쿠키를 계속 유지할 수 없기에 날짜, 시간을 제한한다.
세션 쿠키
- 만료 날짜를 생략하면 브라우저 종료 시까지만 유지
영속 쿠키
- 만료 날짜를 입력하면 해당 날짜까지 유지
쿠키-도메인
명시
- 명시한 문서 기준 도메인+ 서브 도메인 포함
- domain=example.org로 설정할 경우
- example.org와 dev.example.org 모두에 접근 가능하다.
생략 : 현재 문서 기준 도메인만 적용
쿠키 - 경로
이 경로를 포함한 하위 경로 페이지만 쿠키 접근
일반적으로 path=/ 루트로 지정
쿠키 - 보안
Secure, HttpOnly, SameSite
Secure
- Https에서만 전송한다.
HttpOnly
- XSS 공격 방비
- 자바스크립트에서 접근 불가(document.cookie)
- http 전송에만 사용
SameSite
- XSRF 공격 방지
- 요청 도메인과 쿠키에 설정된 도메인이 같은 경우만 전송
'개발 소발 > 기초 컴퓨터,통신' 카테고리의 다른 글
HTTP 전송방식,일반정보,특별한정보 (0) | 2021.08.13 |
---|---|
HTTP 표현,협상 이란? (0) | 2021.08.13 |
HTTP 데이터 전송 기초 (0) | 2021.08.06 |
HTTP 메서드(GET,PUT,PATCH,DELETE,안전,멱등,캐시사용)란? (0) | 2021.08.04 |
비연결성,Http메시지 란? (0) | 2021.08.03 |