기억보다 기록을

[Spring/Server] stateless, stateful 그리고 http 통신(Get, Post, Put, Delete) 본문

Development/Spring

[Spring/Server] stateless, stateful 그리고 http 통신(Get, Post, Put, Delete)

juyeong 2023. 1. 7. 17:24
반응형

자바 소켓 통신에서 포트끼리 통신을 하게 되는데, 이 때 http 통신을 사용한다.(http1.1)

http 1.1 통신은 일종의 약속이다. 이 약속을 지키기 위한 방법 4가지가 있다. Get, Post, Put, Delete 메소드이다. 

쉽게 그림으로 표현해보자. 

 

 

http 통신은 필요할 때마다 요청하고 끊는 타입을 사용하는데, 이를 stateless 라고 한다. 한번의 요청과 응답이 이루어지면 클라이언트와 서버의 연결을 끊어 서버의 부하를 막는다. 다음 그림의 B는 A,C,D의 요청으로 바쁘고 부하가 생긴다. 서버와 클라이언트가 끊임없이 연결된 상태를 stateful이라 하는데, 채팅처럼 계속해서 연결되어야하는 경우에 필요하다. 

 

 

 http는 기본적으로 문서전달을 위해 만들어졌는데 요즘은 http 통신을 통해 많은 활동을 (다양한 mime 타입을 생각해보자) 하고있다. 만약 이때 한번의 요청/응답 후 연결을 끊으면, B 서버는 A,C,D가 내가 아는 클라이언트인지, 믿을 수 있는지 등의 정보를 어디서 얻을까? 어떻게 믿고 / 기억할 수 있을까? 스프링에선 스프링 시큐리티를 이용해 세션을 만든다. 세션이 만들어진다는 것은 클라이언트/서버 연결에서 서버가 데이터를 응답해줄 준비가 되었다는 뜻이다. 즉, 인증된 상황에서 데이터를 주고받을 수 있는 것을 의미한다. 

 

 

 

반응형