728x90
반응형
SMALL
Do it! Node.js 프로그래밍 입문 10일차 입니다.
쿠키와 세션
http 프로토콜의 가장 큰 특징은 상태가 없다는 것입니다. 이것의 의미는 서버 입장에서 GET 요청을 보낸 사용자와 POST 요청을 보낸 사용자가 같은 사람이라는 것을 알 수 없다는 것입니다. 요청을 보내고 응답이 끝나면 http 프로토콜이 클라이언트와 서버 사이의 연결을 끊어 버리기 때문입니다. http 연결 상태가 계속 유지되지 않으므로 이런것을 상태가 없다, 즉 stateless라고 합니다.
이러한 문제를 해결하기 위해 쿠키와 세션이 필요합니다.
쿠키를 이용해 사용자 식별
쿠키는 웹 브라우저를 이용할 때 사용자 컴퓨터에 저장되는 정보입니다. 쿠키는 사용자가 웹 사이트에 접속했을 때 컴퓨터에 다운로드되어 브라우저에 저장되는 작은 텍스트 파일입니다. 쿠키에는 사용자의 설정이나 이용내역 등이 저장되는데 한번 방문했던 사이트에 다시 접속하면 쿠키를 통해 사용자의 장치를 인식합니다.
세션을 이용해 사용자 식별
쿠키가 사용자 컴퓨터에 저장되는 정보라면 세션은 서버에 저장되는 정보입니다. 클라이언트가 서버에 요청할 때는 요청 객체에 쿠키를 담아서 보내는데 이때 쿠키 정보에는 세션ID도 포함되어 있습니다. 클라이언트에서 서버로 요청을 보내면 함께 보낸 쿠키 안에 세션ID가 있는지 확인하는데, 세션ID가 없다면 접속한 클라이언트의 세션 정보를 만들어 서버에 저장합니다. 그리고 클라이언트에게는 세션 ID를 보냅니다. 요청 객체에 세션 ID가 있다면 그 정보를 사용해 인증 처리합니다.
쿠키와 세션을 사용한 인증 방법
- 첫 번째 요청
- 클라이언트 -> 서버로 요청을 보냅니다.(ex 로그인)
- 사용자 확인
- DB에 사용자가 있는지 확인
- 세션 저장
- 사용자가 확인되면 서버에서 세션을 발급하고 저장. 클라이언트에게 응답할 때 세션ID를 함께 보냄.
- 세션 ID 저장
- 클라이언트에서는 발급받은 세션ID를 쿠키 형태로 저장.
- 인층 요청
- 클라이언트에서 로그인이 필요할 때 서버에 세션 ID도 함께 보내서 요청.
- 세션확인
- 서버에서는 세션을 확인.
- 요청 처리
- 세션을 가지고 있다면, 즉 인증된 사용자라면 서버에서 요청을 처리. 필요할 경우 서버에서는 세션 정보를 수정해서 저장
- 응답
- 사용자가 확인되면 요청 처리 결과를 클라이언트에게 넘겨줌.
728x90
반응형
LIST
'Node.js' 카테고리의 다른 글
[Node.js] 노드제이에스 - 토큰을 활용해 인증하기 (0) | 2024.02.14 |
---|---|
[Node.js] 노드제이에스 - cookie-parser 모듈 (0) | 2024.02.14 |
[Node.js] 노드제이에스 - 폼에서 라우트 처리 (0) | 2024.02.13 |
[Node.js] 노드제이에스 - 템플릿 엔진 (2) | 2024.02.13 |
[Node.js] 노드제이에스 - CRUD 코드 작성 (0) | 2024.02.10 |
댓글