비 연결성

현시기얌·2022년 3월 7일
0

HTTP 웹 기본 지식

목록 보기
8/26
post-custom-banner

연결을 유지하는 모델

  • TCP/IP는 기본적으로 연결을 유지한다.


  • 때문에 클라이언트 2가 서버에 요청하고 응답을 할 때에도 클라이언트1은 서버와 계속 연결을 유지하고 있다.
  • 클라이언트 3이 서버에 요청하고 응답할 때에도 클라이언트 1,2는 서버와 계속 연결을 유지하고 있다.
  • 이는 곧 서버 자원이 계속 소모되고 있다는 것을 의미한다.

연결을 유지하지 않는 모델

  • 클라이언트1이 서버에 요청을 하고 응답을 받는다.

  • 이후에 TCP/IP 연결이 종료된다.
  • 서버입장에서는 최소한의 자원을 유지할 수 있다.

비 연결성

  • HTTP는 기본이 연결을 유지하지 않는 모델이다.
  • 일반적으로 초 단위 이하의 빠른 속도로 응답한다.
  • 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작다.
    • ex) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다.
  • 서버 자원을 매우 효율적으로 사용할 수 있다.

비 연결성 한계와 극복

  • TCP/IP 연결을 새로 맺어야 한다. - 3way handshake 시간이 추가된다.
  • 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, css, 추가 이미지 등 수 많은 자원이 함께 다운로드 된다.
  • 지금은 HTTP 지속 연결(Persistent Connections)로 문제가 해결되었다.
  • HTTP/2, HTTP/3에서 더 많은 최적화가 일어났다.

HTTP 초기 - 연결,종료 낭비

  • 연결하고 종료하는 시간이 계속 발생해서 시간이 낭비되었다.

HTTP 지속 연결(Persistent Connections)

  • 연결을 하고 요청을 보내고 응답을 받는다.
  • 이후 종료될 때까지 연결을 유지한다.

Stateless를 기억하자.

서버 개발자들이 어려워하는 업무

  • 정말 같은 시간에 딱 맞추어 발생하는 대용량 트래픽
  • ex) 선착순 이벤트, 명절 KTX 예약, 학과 수업 등록
  • ex) 저녁 6:00 선착순 1000명 치킨 할인 이벤트 -> 수만명이 동시에 요청
profile
현시깁니다
post-custom-banner

0개의 댓글