육식하는야채의 개발일지
article thumbnail

클라이언트 서버구조

Request Response 구조

클라이언트는 서버에 요청을 보내고, 응답을 대기

서버가 요청에 대한 결과를 만들어서 응답

 

이런 요청 응답방식으로 인해 클라이언트와 서버가 분업을 할 수 있어서 서버와 클라이언트가 독립적으로 진화할 수 있다.

서버가 붐비면 서버만 더욱 발전시키고 

클라이언트만 발전시키는 형태로 진화가 가능하다.

 

상태유지(Stateful)?

 

무상태 프로토콜(Stateless)

서버가 클라이언트의 상태를 보존하지 않는다.

장점 : 서버 확장성이 높음

단점 : 클라이언트가 추가 데이터 전송

 

 

Stateful, Stateless 차이

상태유지 : 중간에 다른 점원으로 바뀌면 안된다.

(중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 알려줘야 한다.)

 

무상태 : 중간에 다른 점원으로 바뀌어도 된다.

- 갑자기 고객이 증가해도 점원을 대거 투입할 수 있다.

= 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입할 수 있다.

 

- 무상태는 응답 서버를 쉽게 바꿀 수 있다. -> 무한한 서버 증설 가능

 

Stateful은 응답하던 서버1이 장애가 나면 처음부터 다시 요청을 해야한다.

Stateless는 응답하던 서버1이 장애가 나면 중계서버가 서버2로 요청을 전달하고 서버2가 응답한다.

때문에 서버를 무한히 증설할 수 있다.

 

Stateless의 한계 

로그인을 해서 상태를 유지해야하는 경우 문제가 발생한다.

로그인을 하면 로그인을 했다는 상태를 서버에 유지를 시켜줘야 한다.

하지만 무상태는 상태유지를 하지않는다.

이런 경우 브라우저 쿠키와 서버 세션등을 사용해서 상태를 유지한다.

'WEB' 카테고리의 다른 글

비 연결성(connectionless)  (0) 2024.03.18
URL와 웹 브라우저 요청 흐름  (0) 2024.03.12
인터넷 네트워크  (2) 2024.03.11
profile

육식하는야채의 개발일지

@육식하는야채

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!