비연결성은 클라이언트와 서버가 연결한 후, 서버가 request에 response를 하고나면 연결이 끊어지는 성질을 말한다.
HTTP는 불특정다수와 통신하기위하여 사용되기 때문에, 계속 연결을 유지한다면 많은 리소스가 필요하기 때문이다.
서버는 클라언트를 기억하고 있지 않기 때문에, 동일한 클라이언트의 요청을 매번 연결하고, 끊는 과정을 반복해야한다.
HTTP의 비연결성 때문에 서버는 클라이언트를 식별할 수 없다.(클라이언트의 상태를 모른다) 이것을 Stateless라고 한다.
1.동일한 클라이언트인지 아닌지 구별하고 기억하는 방법은 브라우저에
쿠키라는것을 저장하여, HTTP 헤더에 담아 보내준다.
2.쿠키는 정보가 브라우저에 저장되기 때문에 보안에 취약하다,
그래서 세션이라는것이 존재하는데,
이는 브라우저에 저장하는 것이 아닌, 서버에서 저장하는 것이다. 하지만 서버에 저장한다하더라도 중간에 탈취당할 가능성은 있다. 또한 서버의 메모리를 차지하게 되고 동접자수가 많다면 서버의 과부화 원인이 된다.
- 상기 방법들 말고 상태를 기억 할 수 있는 방법이 있다. 바로 토큰을 활용한 Oauth 와 JWT이다.
보호할 데이터를 토큰으로 치환해서 원본데이터 대신 토큰을 사용하는 기술들이다.
그러나 무조건적으로 토큰기반인증방식이 좋은 것은 아니다.