Computer Network

[컴퓨터 네트워크] 웹과 HTTP(1): 동작 원리와 지속 비지속 연결

JunsuKim 2022. 9. 25.
728x90

웹 브라우저와 웹 서버

HTTP(Hyper Text Transfer protocol): 클라이언트인 웹 브라우저와 웹 서버 간의 정보를 교환하는 규칙을 정의한 프로토콜

실제 HTTP 정보는 트렌스포트 계층에 TCP connection을 통해서 전송된다.

즉, HTTP는 TCP를 사용해서 TCP 연결을 설정하고 그 연결을 통해 HTTP 메시지를 교환하는 모델이다.

웹 서버(Web Server)

  • 웹 페이지들의 저장소와 요청 처리 소프트웨어

웹 페이지

  • 기본 객체(base object)와 참조 객체(object)들로 구성
  • 기본 객체: HTML file, 페이지 내의 다른 객체를 URL(하이퍼링크)로 참조
  • 참조 객체: HTML file, JPEG image, Java applet, audio file, video file, ..., 서로 다른 서버에 존재 가능

웹 객체 주소: URL(Uniform Resource Locator)

URL = host명 + 경로명

웹 브라우저

  • 웹 서비스 사용자 인터페이스
  • 웹 페이지 요청 및 응답 페이지 디스플레이

HTTP(Hyper Text Transfer Protocol)

  • 웹 브라우저와 웹 서버 간의 요청 정보와 응답 정보 교환 규칙 정의

TCP Connection

  • 웹 요청 정보와 응답 정보의 신뢰 전송 통로

HTTP 요청(request)과 응답(response)

웹 객체 각각에 대한 요청과 응답 메시지

HTTP 요청(Request)

  • 웹 사용자의 요청(URL 입력 혹은 하이퍼링크 클릭)으로 웹 브라우저에 의해 생성되는 메시지
  • 웹 서버의 웹 객체 URL과 해당 웹 객체 처리 방식 정보 제공
  • 하위 계층의 TCP 연결을 통해 웹 서버에게 전송

HTTP 응답(response)

  • 웹 브라우저의 요청으로 웹 서버에 의해 생성되는 메시지
  • 수신한 URL에 해당되는 웹 객체와 웹 객체 속성(attribute) 정보 제공
  • 하위 계층의 TCP 연결을 통해 웹 브라우저(클라이언트)에게 전송

비상태형 프로토콜(stateless protocol)

  • HTTP 요청 메시지와 HTTP 응답 메시지 간의 관계 정보가 웹 서버에 저장되지 않는다.
  • 서버는 수신되는 HTTP 요청 메시지 간의 관계 추론 불가
  • 웹 브라우저 - 웹 서버 간의 통신 상태 정보를 유지하지 않는다(stateless protocol)

TCP 연결과 HTTP 요청

  • 왕복 지연 시간: 요청을 보내고 응답받기까지 걸리는 시간

비지속(non-presistent) 연결 HTTP

  •  웹 객체를 위한 HTTP 요청과 HTTP 응답 메시지 쌍마다 별도의 TCP 연결 설정
  • 10개의 객체로 구성된 웹 페이지 전송을 위해 10개의 TCP 연결 설정
  • 다중 연결(multiple connecions) 설정으로 병렬 전송 가능
  • 서버 자원 관리 차원에서 클라이언트별 병렬 연결 수 제한(5 ~ 10개)

비지속 병렬 연결 HTTP

비지속 HTTP와 지연시간

  • 객체별 지연시간: 2RTT + 객체파일 전송 시간
  • 객체들이 순차적으로 전송이 될 때는 * N을 하면 된다.(병렬 x)

지속(persistent) 연결 HTTP

  • 동일 서버의 다수 웹 객체가 하나의 TCP 연결을 통해 클라이언트에게 전송하도록 TCP 연결 유지
  • 일정 시간동안 사용하지 않으면 TCP 연결 해제
  • TCP 연결 지연시간 절약, 사용하지 않는 시간 동안 자원(소켓 자료구조) 낭비
  • 다수의 객체를 한꺼번에 요청하고 응답하는 파이프라이닝(pipelining) 적용 가능

비지속 연결 HTTP 파이프라인

지속 연결 HTTP 장단점

  • TCP 연결 지연시간 회피
  • 파이프라이닝 지원 가능
  • 사용하지않는 시간 동안 TCP 연결 자원 낭비

비지속 연결 HTTP 장단점

  • 필요할 때만 TCP 연결 - 자원(소켓 자료구조) 낭비 회피
  • 병렬 TCP 연결 지원 가능 - 제한적
  • TCP 연결 지연시간 발생

지속 연결과 비지속 연결을 하이브리드 HTTP로 사용 가능

 

728x90

댓글