Backend/Node.js

Stateless Protocol

min' 2024. 8. 29. 12:48
728x90
반응형

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의 정보를 알 수 있다.

 

 

728x90
반응형