답변 1
0
안녕하세요 옥윤님.
강의에서 설명드렸듯이 connectionless, stateless 에 대한 설명은 다음과 같습니다.
HTTP는 서버에 연결 후 요청에 응답을 받으면 연결을 끊어버리는 Connectionless 특성을 갖습니다. 이로 인해 많은 사람이 웹을 이용하더라도 실제 동시 접속을 최소화하여 더 많은 유저의 요청을 처리할 수 있습니다. 하지만 연결을 끊었기 때문에, 클라이언트의 이전 상태(로그인 유무 등)를 알 수가 없다는 Stateless 특성이 생기게 됩니다. 정보를 유지할 수 없는 Connectionless, Stateless 특성을 가진 HTTP의 단점을 해결하기 위해, cookie, session, jwt 등이 도입되었습니다.
이를 좀더 풀어서 설명해보면,
클라이언트와 서버와 HTTP 통신을 한번 하면, 그 연결은 더이상 지속되지 않고 그걸로 끝입니다.
연결이 유지되고 있는게 아닙니다. 그래서 connectionless라고 부릅니다.
그러다보니까, 내가 HTTP 통신을 통해 아이디 비밀번호를 입력해서 로그인을 했다고 하더라도, 그 다음번 http request를 보내도 이게 나인지 누군지 알 수 없습니다.(stateless)
이를 해결하기 위해서 cokie, session, jwt 등에 '나 로그인 통과된 사람이야' 라는 정보를 넣고 통신을 하기도 합니다.
정리:
http 통신 입장에서만 보면, 5분전에 클라이언트가 서버랑 http 통신을 했다고 해서 지금도 서버랑 연결되어있는게 아니다.- connectionless
그러다보니, 지금 request보낸 이 client가 로그인이 되어있는지 안되어있는지 어떤 상태인지 알 수 없다. -stateless
혹시 답변이 됐을까요~?
궁금한게 있으면 또 질문 주세요. 감사합니다.