본문 바로가기
네트워크

비연결성과 비상태성

by 고선제 2023. 9. 30.

HTTP의 비연결성과 비상태성

  • 비연결성(Connectionless)
    : HTTP는 요청과 응답을 한번 주고받으면 바로 연결을 끊어버리는데, 그리고 다음 요청을 하기 위해 다시 연결을 맺어야한다. 이것을 비 연결성이라고 한다.

→ 수천명의 유저가 서비스를 사용하더라도, 동시에 처리해야하는 요청이 줄어든다.(한번 요청을 처리하면 연결을 끊어버리고 자원을 절약)

  • 비연결성의 한계
    1. TCP/IP연결을 계속 새롭게 맺어줘야한다.(3-way handshake 시간 추가)
    2. 웹 브라우저로 사이트를 요청하면 HTML를 비롯한 수많은 자원들을 불필요하게 계속해서 다운로드 해야한다. ⇒ 현재는 HTTP 지속연결(Persistent Connections)로 문제점을 해결
    → HTTP 지속 연결 웹 페이지에 필요한 자원들인 HTML, 자바스크립트, 이미지들을 각각 따로 요청하는데 요청마다 연결,종료를 해주어야해 소모가 심하다. 때문에, 필요한 자원들을 모두 다운받을 때까지 연결을 종료시키지 않고, 자원들의 요청,응답을 반복한 뒤 연결을 종료한다.

 

  • 비상태성(Stateless)
    : HTTP은 요청과 응답을 교환하는 동안 상태(Status)를 저장하지 않는다. 이전에 보냈던 Request나 Response를 기억하지 못한다. 즉, HTTP 요청은 직전의 요청과 전혀 관련이 없다. 이것을 비상태성이라고 한다.
    • 장점
      • 스케일 아웃 - 수평 확장에 있어서 유리하다. → 동일한 기능을 수행하는 수많은 서버로 확장이 가능하다.
    • 한계
      • 웹이 발전하면서 요청과 요청간의 상태가 유지되어야 할 필요가 있어짐 ex) 로그인 → 이를 위해 나타난 것이 쿠키와 세션

'네트워크' 카테고리의 다른 글

HTTP 1.1과 HTTP 2.0  (0) 2024.09.19
Web Server, Apache, Nginx  (0) 2024.07.30
쿠키와 세션  (0) 2023.09.30