본문 바로가기
컴퓨터네트워크

[Network] Web and HTTP

by goblin- 2023. 9. 14.

Web and HTTP

 

revicew

-web page는 objects(개체)로 구성된다
-object(객체)는 HTML 파일, JPEG 이미지, Java 애플릿, 오디오 파일,...이 있다.
-웹 페이지는 참조된 여러 objects(개체)를 포함하는 기본 HTML 파일로 구성된다
-각 object(개체)는 URL로 주소를 지정할 수 있다.

ex)

 

 

HTTP overview

 

HTTP : 하이퍼텍스트 전송 프로토콜
-웹 응용 계층 프로토콜
-클라이언트/서버 모델
  -client : 웹 객체를 요청, 수신, (HTTP 프로토콜을 사용하여) 표시하고 web object를 나타낸다.
  -server: 웹 서버는 요청에 응답하여 (HTTP 프로토콜을 사용하여) 객체를 보낸다

 

TCP 사용:
-클라이언트가 서버, 포트 80에 대한 TCP 연결(소켓 생성)을 시작한다.
-서버가 클라이언트의 TCP 연결을 수락한다.
-브라우저(HTTP 클라이언트)와 웹 서버(HTTP 서버) 간에 HTTP 메시지(애플리케이션 계층 프로토콜 메시지)를 교환한다.
-TCP 연결을 닫는다.

-transport에서 tcp를 사용하여 클라이언트가 서버에게 허락을 구한다.

 

 

HTTP is "stateless
-서버는 과거 클라이언트 요청에 대한 정보를 유지하지 않는다.( 과거 history를 저장하지 않는다.)

 

HTTP connections

 

non-persistent HTTP

-TCP 연결을 통해 전송되는 object(객체)는 최대 하나이다 (한만 연결된다.)
  -연결 후 닫힌다. (하나받고 끊어지고를 반복)
-여러 objects(객체)를 다운로드하려면 여러 연결이 필요하다.

 

Persistent HTTP

-클라이언트, 서버 간의 단일 TCP 연결을 통해 여러 개체를 전송할 수 있다.

 

Non-persistent HTTP

 

www.someSchool.edu/someDepartment/home.index 라는 주소를 유저가 입력했다 가정하자(텍스트 포함, 10개의 JPEG 이미지)다음과 같은 순서로 진행된다.

 

1(a) : HTTP 클라이언트가 포트 80의 www.someSchool.edu에서 HTTP 서버(프로세스)에 대한 TCP 연결을 시작한다.

 

1(b) : 포트 80에서 TCP 연결을 기다리는 호스트 www.someSchool.edu의 HTTP 서버는 연결됐다고 클라이언트에 알림

 

2 : HTTP 클라이언트는 HTTP 요청 메시지(URL 포함)를 TCP 연결 소켓으로 보낸다. 메시지는 클라이언트가 object someDepartment/home.index를 원함을 나타낸다

 

3 : HTTP 서버는 요청 메시지를 수신하고, 요청된 개체를 포함하는 응답 메시지를 형성하고, 메시지를 소켓에 보낸다

 

4 : HTTP 서버가 TCP 연결을 닫는다.

 

5. : HTTP 클라이언트는 html 파일이 포함된 응답 메시지를 수신하고, html을 표시한다. html 파일을 파싱 하고, 참조된 jpeg 개체 10개를 찾는다

 

6 : 10개의 jpeg 개체 각각에 대해 1-5단계를 반복한다.

 

Non-persistent HTTP : response time

 

RTT(definition)

-작은 패킷이 클라이언트에서 서버로 이동하고 다시 돌아올 수 있는 시간

 

HTTP response time

-TCP 연결을 시작하는 하나의 RTT-HTTP 요청을 위한 하나의 RTT와 반환할 HTTP 응답의 처음 몇 바이트-file transmission time(파일전송시간)-non-persistent HTTP response time = 2RTT + file transmission time(파일전송시간) 

 

Persistent HTTP

 

non-persistent HTTP 의 문제:

 

-개체당 2개의 RTT가 필요합니다
-각 TCP 연결에 대한 OS 오버헤드
-브라우저는 참조된 개체를 가져오기 위해 종종 병렬 TCP 연결을 연다.

 

 

persistent HTTP:

 

-서버가 응답을 보낸 후 연결을 열어 둔다.
-열린 연결을 통해 전송되는 동일한 클라이언트/서버 간의 후속 HTTP 메시지(끊기지 않고 유지, TCP의 1 RTT의 시간을 줄일 수 있다.)
-클라이언트는 참조된 개체를 발견하는 즉시 요청을 보낸다
-참조된 모든 개체에 대해 하나의 RTT만큼 작음

 

 

 

 

 

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

쿠키와 캐시의 차이점  (0) 2024.08.24
[Network]쿠키(Cookie)  (0) 2024.08.22
[Network]principles of network  (0) 2023.09.07
[Network]protocol layer, service models  (0) 2023.09.06
[Network] delay, loss, throughput in networks  (0) 2023.09.05