쿠키와 세션
쿠키
브라우저가 서버로부터 응답으로 Set-Cookie 헤더를 받은 경우 해당 데이터를 저장한 뒤 모든 요청에 포함하여 보냄
데이터를 여러 사이트에 공유할 수 있기 때문에 보안에 취약할 수 있음
쿠키는 userId=user-1321;userName=sparta 와 같이 문자열 형식으로 존재하며 쿠키 간에는 세미콜론(;) 으로 구분됨
세션
쿠키를 기반으로 구성된 기술
단, 클라이언트가 마음대로 데이터를 확인 할 수 있던 쿠키와는 다르게 세션은 데이터를 서버에만 저장하기 때문에 보안이 좋으나, 반대로 사용자가 많은 경우 서버에 저장해야 할 데이터가 많아져서 서버 컴퓨터가 감당하지 못하는 문제가 생기기 쉬움
cookie-parser 미들웨어
요청에 추가된 쿠키를 req.cookies 객체로 만들어 줌
편리하게 쿠키를 관리
JWT
JSON 형태의 데이터를 안전하게 교환하여 사용할 수 있게 해줌
인터넷 표준으로서 자리잡은 규격
여러가지 암호화 알고리즘을 사용할 수 있음
header.payload.signature 의 형식으로 3가지의 데이터를 포함
JWT 형식으로 변환 된 데이터는 항상 2개의 . 이 포함된 데이터
미들웨어 (Middleware)
웹 서버의 요청/응답에 대해 공통적으로 관리
승인된 사용자만 API를 접근 허용
app.use((req, res, next) => {
console.log('Request URL:', req.originalUrl, ' - ', new Date());
next();
});