반응형
HTTP protocol의 특성
http protocal의 대표적인 특징 중 하나는 상태를 유지하지 않는다는 것이다.
클라이언트가 한번 요청을 하고 서버에서 응답을 하면 해당 클라이언트와 서버는 연결을 유지되지 않는다는 것이다.
위의 그림과 같이 http 프로토콜은 상태를 유지하지 않기 때문에 첫 번째 클라이언트의 요청에 대해서 서버가 응답을 보내면 똑같은 클라이언트가 두 번째 요청을 했을 때 서버에서는 두 번째 요청을 한 클라이언트가 첫 번째 요청을 한 클라이언트인지 인식하지 못한다.
이러한 특징 때문에 서버는 동시에 여러 개의 요청을 효과적으로 처리할 수 있지만 로그인, 장바구니 등 상태가 유지되어야 할 프로그램을 작성하기에는 무리가 있다.
이러한 단점을 보완하기 위한 방법이 바로 세션이다.
Session / Cookie 방식
- 세션은 서버가 가지고 있는 정보로써 보통 세션 저장소에 저장해둔다. (Redis를 많이 사용한다.)
- 유저가 로그인을 하게 될시 유저에게 고유한 ID를 부여해서(session) 저장소에 저장한 후 해당 세션과 연결된 세션 ID를 발급한다.
- 클라이언트에서는 인증이 필요한 요청이 있을 때 쿠키를 헤더에 넣어서 서버로 보낸다.
- 서버에서는 클라이언트에게서 받은 쿠키와 세션 저장소의 세션을 가져와 비교한 후, 일치한다면 로직을 수행한다.
반응형
'Computer Science > Tech' 카테고리의 다른 글
[Tech] 암호화 알고리즘 (0) | 2020.03.29 |
---|---|
[Tech] Protocol Buffer: Serialization에 관하여, 모두가 JSON을 쓴다고 하여 JSON만이 정답일까? (0) | 2020.01.11 |
[Tech] JWT(Json Wet Token)이란? (0) | 2019.12.16 |
[Tech] MSA(Microservice Architecture)란? (0) | 2019.11.13 |
[Tech] MVC 디자인 패턴이란? (0) | 2019.10.28 |