[네트워크] 인증 헤더와 쿠키 헤더에 대한 나름의 이해

2023. 11. 9. 22:18네트워크

인증 헤더에는 다음 두가지가 있다.
1. Authorization: 클라이언트의 인증 정보를 서버에 전달한다.
2. WWW-Authenticate: 서버에서 인증하는 방법을 알려준다. 401 에러(Unauthorized)가 나면 넣어준다. 

쿠키 헤더에는 두가지가 있다.
1. Set-Cookie: 서버에서 쿠키를 전달한다.
2. Cookie: 클라이언트가 쿠키를 서버에 전달한다.
 
쿠키는 인증과 관련된 정보를 서버에 전달하기 위해 사용된다. 
쿠키가 없으면 지금의 사용자를 식별하기 위해서 쿼리에 넣는 방식으로 해야하는데 이러면 개발이 힘들어진다.
 
쿠키는 서버에서 만들고 이를 클라이언트가 받으면 요청을 보낼때 쿠키저장소에서 웹브라우저 찾아서 Cookie 헤더에 넣어준다.
 
쿠키의 사용처는 사용자 로그인 세션 관리에 많이 사용되고 광고 정보 트래킹에도 사용된다.
쿠키 정보는 항상 서버에 전송된다. 따라서 추가 트래픽이 유발되므로 최소한의 정보만 활용한다(세션 id, 인증 토큰)
보안에 민감한 정보는 절대 넣지 않는다
 
서버에서 만들때
 
쿠키의 생명주기는 두가지로 설정 가능하다.
1. 세션쿠키: 만료 날짜를 생략하면 브라우저가 종료될때까지만 유지된다.
2. 영속쿠키: 만료 날짜를 지정하면 해당 날짜까지 유지한다.
ㄱ. expires: 만료 날짜를 지정한다.
ㄴ. max-age: 초단위로 카운트다운을 한다.
 
쿠키 - 도메인
서버에서 도메인을 설정해주면 서브 도메인도 포함해서 쿠키로 접근을 한다.
하지만 도메인을 생략하면 해당 도메인만 쿠키로 접근한다.
 
쿠키 - 경로
path를 설정하면 하위 path까지 쿠키가 접근 가능하다.
일반적으로 path root(/)로 지정한다.
 
도메인으로 먼저 필터링하고 그다음으로 경로로 필터링한다.
 
쿠키 - 보안
세가지가 있다.
1. Secure: https인 경우만 전송한다.
2. HttpOnly: 자바스크립트에서 접근 불가하다. HTTP 전송에서만 가능하다.
3. SameSite: XSRF 공격을 방지한다. 요청 도메인과 쿠키에 설정된 도메인이 같은 경우만 전송한다 . 다른 사이트에서 설정한 쿠키를 보낼수도 있는 걸 방지한다.
 
Reference


https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61381

학습 페이지

www.inflearn.com

https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61382

학습 페이지

www.inflearn.com