HTTP

1월 5일 HTTP 비연결성

Chaerin Yoo 2023. 1. 6. 02:57

연결유지

클라이언트1이 서버에 요청을 보내고 서버가 응답하면 이걸 연결을 유지한다 가정하고

이때 클라이언트 2, 3이 서버에 보낸 요청도 모두 연결되는데

그럼 서버는 현재 클라이언트 1,2,3에게 모두 연결되어 자원이 소모되고 있는 상태이다.

 

비연결

클라이언트1의 요청을 서버가 받고 응답이 완료된 후 응답을 끊어 버리게 된다,

그래서 서버유지 자원을 최소화 할 수 있다.

 

*

HTTP는 기본적으로 연결을 유지하지 않는 모델이다.

일반적으로 초 단위 이하의 빠른 응답.

1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 적다.

ex) 웹 브라우저에서 계속 연결하여 검색버튼을 누르지는 않는다.

서버 자원을 모두 효율적으로 사용할 수 있음.

 

비연결성의 단점(한계의 극복)

TCP / IP 연결을 요청시 마다 다시 해야한다. 3way 시간추가

웹 브라우저로 사이트를 요청하면 HTML뿐만 아니라 JS,CSS, 추가 이미지등

수많은 자원을 다시 다운로드 한다.

 

이 문제를 지금은 HTTP지속연결로 문제해결하지만

HTTP 2/3에 더 많은 최적화가 되었다.

 

스테이스 리스(무상태) 를 기억하자

선착순처럼 정말 같은 시간에 딱 맞추어 발생하는 대용량 트래픽의 경우

수만명이 동시에 요청하는 경우

이 경우 스테이트 리스를 고려해서 설계하자.