[HTTP 웹 기본 지식] [비연결성]

khyojun·2022년 10월 18일
0

http기본

목록 보기
4/6
post-thumbnail

본 게시글은 김영한님의 HTTP 웹 기본 지식 강의를 보고 정리한 글입니다.


이번 시간에는 HTTP의 또다른 특징으로는 Stateless, 비연결성이 있는데 이번 챕터에서는 비연결성에 대해서 알아보자.

🔍 비 연결성

실제로 말 그대로인것처럼 비 연결성(conectionless) 연결을 되지 않도록 하는 특성이다. 그러면 이것은 왜 연결이 되어있으면 안될까?
단순히 먼저 생각을해본다면 stateless챕터에서도 언급했던것처럼 연결이 유지가 된 상태로 되어있다면? 서버가 터졌을때 어떻게 할래? 음.... 이것도 문제가 될 거 같다.

그렇지만 비 연결성을 해야할 이유는 우리가 진짜 다른 단순한 이유도 있다. 다음과 같은 상황을 보자.

연결을 이렇게 계속 유지를 하고 있으면 뭔가 모기처럼 클라이언트2,3이 계속 서버한테서 피를 빨고있는것처럼 서버 자원을 소모를 시키고 있는 중이다. 딱봐도 이건 너무 효율적이지 않다. 그래서 HTTP는 비연결성이라는 특징을 가지고 있다.

특징

  • HTTP는 기본이 연결을 유지하지 않는다.
  • 일반적으로 초 단위 이하의 빠른 응답이라 잘 구분도 안된다.
  • 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서는 동시에 한 순간 들어오는 요청은 수십개 이하이다.
  • 서버 자원을 매우 효율하게 사용 가능

그런데 이런 비 연결성도 계속 연결하지 않는것처럼 다음과 같은 한계점이 있지만 현재는 많은 부분 극복을 해냈다고 한다.

한계-> 극복

  • TCP/IP 연결을 새로 맺어야 해서 3 way handshake를 하는 시간이 걸림 -> 현재 HTTP 지속 연결(Persistent Connection)로 해결
  • 웹 브라우저 사이트를 요청하게 될 경우 많은 자원들이 다운로드가 된다.
  • 그치만 지금은 HTTP 지속 연결로 문제를 해결하였다.
  • HTTP/2, HTTP/3버전에서는 더 많이 최적화 되었다.

그림으로 보면 다음과 같이 된다.


출처

  1. 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식(https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC)
profile
코드를 씹고 뜯고 맛보고 즐기는 것을 지향하는 개발자가 되고 싶습니다

0개의 댓글