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
'Computer Network' 카테고리의 다른 글
[컴퓨터 네트워크] 이메일과 SMTP (0) | 2022.09.27 |
---|---|
[컴퓨터 네트워크] 웹과 HTTP(2): 메시지, 쿠키, 캐시 (0) | 2022.09.25 |
[컴퓨터 네트워크] 응용 계층 원리(Principles of Application Layer) (0) | 2022.09.22 |
[컴퓨터 네트워크] 네트워크 사이버 공격(Network Attacks) (1) | 2022.09.21 |
[컴퓨터 네트워크] 프로토콜 계층 구조 (1) | 2022.09.18 |
댓글