20.12.28 15:49 작성
·
431
19
선생님 강의 정말 잘 듣고 있으며 좋은 자료 또한 제공해주셔서 피상적이었던 지식이 구체화 되는 작업에 정말 도움이 많이 되고 있습니다.
다름이 아니라 지속 연결에 대해서 한 가지 궁금한 점이 생겨서 이렇게 질문 남깁니다.
http 의 방향이 stateful -> stateless 이렇게 진화한다고 저는 이해했습니다. 진화한 이유는 클라이언트와 서버간의 연결을 계속 지속한다면 자원의 고갈이 일어나기 때문이죠!
그렇다면 지속연결이 탄생한 배경은 stateless가 자원의 고갈은 방지하나 여려번의 3 way handshake가 비효율적이기 때문에 이를 방지하고자 여러번의 3 way handshake의 횟수를 줄이기 위해서 하나의 연결이 지속될때 어느정도 까지는 쭈욱 유지하자 라고 이해했습니다!
"그렇다면 Persistant Connections가 언제까지 유지되어야하는 그러한 규약같은건 따로 없는지요?"
"또한 Persistent Connections는 비연결성과 연결성의 중간 지점이라고 생각해도 되는지요?"
이 두가지가 강의 도중 궁금하여 질문 남깁니다~!!
고맙습니다!!!!
답변 3
20
2020. 12. 28. 23:11
안녕하세요. JuNu님
"그렇다면 Persistant Connections가 언제까지 유지되어야하는 그러한 규약같은건 따로 없는지요?"
-> 언제까지 유지되어야 하는 규약은 따로 없는 것으로 알고 있습니다. 일반적으로 60초 정도를 유지하고, 서버쪽에서 해당 설정을 할 수 있습니다.
"또한 Persistent Connections는 비연결성과 연결성의 중간 지점이라고 생각해도 되는지요?"
-> 네 맞습니다. 기본은 비연결성인데, 성능 최적화를 위해서 약간의 연결 유지를 가져간다고 생각하시면 됩니다.
감사합니다.
1
Persist Connections (지속적인 연결): 이것은 HTTP/1.1과 같은 프로토콜에서 사용되는 개념으로, 클라이언트와 서버 간의 연결을 요청과 응답 후에도 유지하는 것을 의미합니다. 이러한 지속 연결은 여러 HTTP 요청과 응답이 동일한 TCP 연결을 재사용할 수 있게 하여, 연결 설정에 소요되는 시간과 리소스를 줄여줍니다. 하지만, 이것은 HTTP의 상태를 유지하는 것과는 다릅니다. 지속 연결은 단지 네트워크 연결을 유지하는 것이지, 클라이언트나 서버의 상태 정보를 유지하는 것은 아닙니다.
Stateful (상태 유지): 상태 유지 프로토콜이나 시스템은 이전의 통신 또는 트랜잭션의 상태 정보를 기억합니다. 예를 들어, stateful 프로토콜에서는 서버가 클라이언트의 이전 요청이나 상태를 기반으로 후속 요청을 처리할 수 있습니다. 이는 보다 복잡한 트랜잭션 관리를 가능하게 하지만, 동시에 시스템의 복잡성과 자원 사용을 증가시킵니다.
간단히 말해, Persist connections
는 네트워크 연결의 지속성에 초점을 맞춘 것이고, stateful
은 통신의 상태 정보를 기억하고 유지하는 것에 관한 개념입니다.