본문 바로가기
2-2 학기/Computer Networking

[컴퓨터네트워크] Ch2.2 웹과 HTTP

by bona.com 2023. 9. 30.

웹은 on-demand 방식으로 사용자가 원할 때 원하는 것을 수신한다.

 

HTTP

: 메시지의 구조 및 클라이언트와 서버가 메시지를 어떻게 교환하는지에 대해 정의하고 있다.

 

Web page

: 웹 페이지는 기본 HTML 파일과 여러 참조 객체로 구성된다.

 

비지속(non-persistenct) 연결

: 클라이언트-서버 상호작용이 TCP 상에서 발생할 때 각 요구/응답 쌍이 분리된 TCP 연결을 통해 보내지는 것을 말한다.

 

연결 수행 과정은 다음과 같다.

  1. HTTP 클라이언트는 HTTP 기본 포트 80을 통해 서버로 TCP 연결을 시도한다. TCP 연결과 관련하여 클라이언트와 서버에 각각 소켓이 있게 된다.
  2. HTTP 클라이언트는 설정된 TCP 연결 소켓을 통해 서버로 HTTP 요청 메시지를 보낸다. 이 요청에 객체 경로도 포함된다.
  3. HTTP 서버는 TCP 연결 소켓을 통해 요청 메시지를 받는다. 저장 장치로부터 경로의 객체를 추출한다.
    HTTP 응답 메시지에 그 객체를 캡슐화 하여 소켓을 통해 클라이언트로 보낸다.
  4. HTTP 서버는 TCP에게 연결을 끊으라고 한다. 
  5. HTTP 클라이언트가 응답 메시지를 받으면, TCP 연결이 중단된다. 메시지는 캡슐화된 객체가 HTML 파일인 것을 나타낸다.
    클라이언트는 응답 메시지로부터 파일을 추출하고 HTML 파일을 조사하여 10개의 JPEG 객체에 대한 참조를 찾는다.
  6. 참조되는 JPEG 객체에 대해 1 ~ 4단계를 반복한다.

클라이언트가 HTML 파일을 요청하고 그 파일이 클라이언트로 수신될 때까지의 시간을 측정해보자.

이를 위해 RTT를 알아야 하는데,
RTT(round-trip-time)란 작은 패킷이 클라이언트로부터 서버까지 가고, 다시 클라이언트로 되돌아오는 데 걸리는 시간이다.

 

단점: 각 요청 객체에 대한 새로운 연결이 설정되고 유지되어야 한다, 매번 2RTT를 필요로 한다.

 

지속(persistent) 연결

: 지속 연결에서 서버는 응답을 보낸 후에 TCP 연결을 그대로 유지한다.

같은 클라이언트와 서버 간의 이후 요청과 응답은 같은 연결을 통해 보내진다.

즉, 같은 서버에 있는 여러 웹 페이지들을 하나의 지속 TCP 연결을 통해 보낼 수 있다.

 

 쿠키(Cookie)

: HTTP 서버는 상태를 유지하지 않는다. 그러나 서버가 사용자 접속을 제한하거나 사용자에 따라 콘텐츠를 제공하기 원하므로 사용자를 확인하는 것이 바람직할 때가 있는데, 이떄 HTTP는 쿠키를 사용한다.