CS/Network

Connection, Connectionless, HTTP 지속 연결

용용띠용 2025. 5. 2. 19:41

Connection과 Connectionless

: 클라이언트와 서버 간 연결(connection) 유지 여부에 따라 나뉘는 특성이다.

 

 

Connection(연결)

: 클라이언트와 서버가 항상 TCP/IP 연결을 유지하고 있는 상태이다.

- 클라이언트 수만큼 연결 수가 늘어나기 때문에 연결 유지 위해 자원을 소모한다.

     - 요청을 하고 있지 않는 클라이언트와도 연결을 유지 해야한다.

     // 많은 사람들이 서비스를 이용해도 실제 서버에서 동시에 처리하는 요청 자체는 많지 않다.

- 장점

1) 새로운 연결 과정 불필요(항상 연결)

2) 요청에 대한 빠른 응답 속도

 

- 단점

1) 연결을 위한 자원 낭비 발생

2) 클라이언트가 지속적으로 요청 보낼거라는 보장 없음

 

 

Connectionless(비연결)

: 클라이언트가 서버에 요청을 하고 응답을 받을 시 바로 TCP/IP 연결을 끊어버리는 것이다.

 

1) 3 Way HandShake 과정으로 TCP/IP 연결을 한다.

2) 연결 후 하나의 요청을 서버로 보내고 서버가 응답을 보내 처리가 끝난다.

3) 연결을 바로 끊는다.

 

- 예시

비연결 방식: 웹페이지 접속한 후 인터넷을 끊어버려도 요청을 통해 노출된 홈페이지는 유지된다.

연결 방식: 웹페이지 접속 후 인터넷을 끊어버리면 에러 페이지가 뜬다. 

 

- 장점

1) 서버 자원 효율적 사용 가능

 

- 단점

1) 요청 추가 발생 시 매번 새로 3 Way HandShake 과정을 통한 연결 필요

     => 요청에 대한 응답 시간 증가

2) 웹사이트의 html, css, img 등의 정적 자원 모두 재다운로드

     => 캐시, 브라우저 캐싱으로 해결

=> 단점을 HTTP 지속 연결로 해결

 

 

HTTP 지속 연결

: 어떤 요청과 연관된 요청들이 모두 응답될 때까지 연결을 유지하는 것이다. 

 

- 장점

1) 연결을 한 번만 맺고 끊기 때문에 Connectionless 방식보다 연결 횟수 적음

     => 속도 빨라짐