인프런 커뮤니티 질문&답변

JuNu님의 프로필 이미지
JuNu

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

비 연결성(connectionless)

Persistent Connections에 대한 질문이 생겼습니다 선생님!

작성

·

444

19

선생님 강의 정말 잘 듣고 있으며 좋은 자료 또한 제공해주셔서 피상적이었던 지식이 구체화 되는 작업에 정말 도움이 많이 되고 있습니다. 

다름이 아니라 지속 연결에 대해서 한 가지 궁금한 점이 생겨서 이렇게 질문 남깁니다.

http 의 방향이 stateful -> stateless 이렇게 진화한다고 저는 이해했습니다. 진화한 이유는 클라이언트와 서버간의 연결을 계속 지속한다면 자원의 고갈이 일어나기 때문이죠!

그렇다면 지속연결이 탄생한 배경은 stateless가 자원의 고갈은 방지하나 여려번의 3 way handshake가 비효율적이기 때문에 이를 방지하고자 여러번의 3 way handshake의 횟수를 줄이기 위해서 하나의 연결이 지속될때 어느정도 까지는 쭈욱 유지하자 라고 이해했습니다!

"그렇다면 Persistant Connections가 언제까지 유지되어야하는 그러한 규약같은건 따로 없는지요?"

"또한 Persistent Connections는 비연결성과 연결성의 중간 지점이라고 생각해도 되는지요?"

이 두가지가 강의 도중 궁금하여 질문 남깁니다~!!

고맙습니다!!!!

답변 3

20

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. JuNu님

"그렇다면 Persistant Connections가 언제까지 유지되어야하는 그러한 규약같은건 따로 없는지요?"

-> 언제까지 유지되어야 하는 규약은 따로 없는 것으로 알고 있습니다. 일반적으로 60초 정도를 유지하고, 서버쪽에서 해당 설정을 할 수 있습니다.

"또한 Persistent Connections는 비연결성과 연결성의 중간 지점이라고 생각해도 되는지요?"

-> 네 맞습니다. 기본은 비연결성인데, 성능 최적화를 위해서 약간의 연결 유지를 가져간다고 생각하시면 됩니다.

감사합니다.

4

질문자분 문맥상 connectionless를 stateless로 잘못 표기하신 것 같네요. (물론 stateless도 클라이언트 상태 유지를 위해 서버의 자원을 사용한다는 측면에서 자원을 소모하는건 맞는것 같지만요)

1

  1. Persist Connections (지속적인 연결): 이것은 HTTP/1.1과 같은 프로토콜에서 사용되는 개념으로, 클라이언트와 서버 간의 연결을 요청과 응답 후에도 유지하는 것을 의미합니다. 이러한 지속 연결은 여러 HTTP 요청과 응답이 동일한 TCP 연결을 재사용할 수 있게 하여, 연결 설정에 소요되는 시간과 리소스를 줄여줍니다. 하지만, 이것은 HTTP의 상태를 유지하는 것과는 다릅니다. 지속 연결은 단지 네트워크 연결을 유지하는 것이지, 클라이언트나 서버의 상태 정보를 유지하는 것은 아닙니다.

  2. Stateful (상태 유지): 상태 유지 프로토콜이나 시스템은 이전의 통신 또는 트랜잭션의 상태 정보를 기억합니다. 예를 들어, stateful 프로토콜에서는 서버가 클라이언트의 이전 요청이나 상태를 기반으로 후속 요청을 처리할 수 있습니다. 이는 보다 복잡한 트랜잭션 관리를 가능하게 하지만, 동시에 시스템의 복잡성과 자원 사용을 증가시킵니다.

간단히 말해, Persist connections는 네트워크 연결의 지속성에 초점을 맞춘 것이고, stateful은 통신의 상태 정보를 기억하고 유지하는 것에 관한 개념입니다.

JuNu님의 프로필 이미지
JuNu

작성한 질문수

질문하기