
Stateless : HTTP의 특징 중 하나.
Client가 Server에 처음으로 요청을 보내고(ex: 나는 사용자 123),
그리고 다음에 Client가 요청을 다시 보낼 때(내가 누군지 알고 있니?)
Server는 이 Client가 누군지 모른다.
=> 이 이유는 HTTP가 Stateless이기 때문.
상태 비저장 프로토콜(Stateless 프로토콜)은
Server가 여러 요청 기간 동안 각 사용자에 대한 정보나 상태를 유지할 필요가 없다.
요청을 보낼 때 Status나 요청에 대한 Info를 다 담아서 보내면 어떤 Client인지 Server가 다 알고 있겠지만
Status나 Info를 다 넣지 않고서 HTTP 요청을 보내게 된다.
그렇기 때문에 Server는 Client가 누구인지 기억할 수 없다.
Q. 그렇다면 왜 Status나 Info를 HTTP 요청에 넣지 않는 것인가?
성능을 위해서 그러는 것이라고 한다.
각 요청에 대한 연결을 재설정하는데 소요되는 시간/대역폭을 최소화하기 위한 것.
요청이 굉장히 많은데 그 요청마다 모두 Status나 Info를 가지고 있으면 요청을 할 때 성능이 굉장히 안 좋아지게 됨.
이러한 Stateless의 특징 때문에 인증 절차가 필요하다고 얘기하는 것이다.
서버는 첫 요청을 받은 후에도 Client가 누군지 알기를 바란다.
Client가 Server에 첫 요청을 보내면 Server는 Client의 정보를 포함한 token을 생성한다.
이렇게 생성한 token을 Server가 Client에게 전송.
Client는 두 번째부터 Server에 요청을 보낼 때는 token과 함께 새 요청을 전송한다.
(Server는 Client가 누구인지 모르기 때문에 거치는 인증 절차)
Server는 이 요청을 통하여 받은 token을 해독하여 Client의 정보를 알 수 있다.
'Backend > Node.js' 카테고리의 다른 글
웹 서버 생성하기 (0) | 2024.08.29 |
---|---|
HTTP Status Codes (0) | 2024.08.29 |
HTTP Request, Response 구조 (0) | 2024.08.29 |
HTTP Requests (0) | 2024.08.28 |
1. 웹 서버란? (2) | 2024.08.28 |
github : https://github.com/dnjfht
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!