본문 바로가기
CS/네트워크

[HTTP] HTTP와 TCP / IP

by 우다다캣 2022. 7. 7.

HTTP란?

 HTTP는 HyperText Transfer Protocol의 약자로, 클라이언트와 서버가 통신하는 데 사용되는 프로토콜입니다. 또한 www(World Wide Web)을 구성하는 기술의 일종입니다.

www의 구성 요소
문서 기술 언어 : HTML(HyperText Markup Language)
문서 전송 프로토콜 : HTTP
문서의 주소를 지정하는 방법 : URL(Uniform Resource Locator)

 

 현재 가장 많이 사용되고 있는 HTTP 버전은 HTTP/1.1로, 1997년부터 사용 중인 매우 오래 된 버전입니다. 이처럼 HTTP는 버전 업그레이드가 잘 되지 않지만, 2015년에 최신 버전인 HTTP/2.0이 발표되었습니다. HTTP/2.0은 HTTP/1.1의 모든 핵심 기능을 제공하지만 효율성이 더 높아 웹 개발자들의 많은 호응을 얻고 있습니다.

 또한, HTTP는 프로토콜 자체가 심플하고 사용하기 편리해서 웹 이외 영역에서도 다양하게 사용되고 있습니다.

 

TCP / IP

 HTTP는 TCP / IP의 일종입니다. TCP / IP는 인터넷 네트워크와 관련된 다양한 프로토콜의 집합의 총칭으로, 네트워크 기기가 상호간 통신할 때 사용되는 모든 규칙을 의미합니다.

 TCP / IP는 '응용(Application) 계층', '전송(Transport) 계층', '인터넷(Internet) 계층', '네트워크 인터페이스 계층(Network Interface)'으로 계층화 되어 있습니다. 이렇게 계층화되어 있는 이유는 여러 이점이 있기 때문입니다.

  1. 특정 프로토콜 사양이 변경되었을 때, 전체를 변경하지 않고 사양이 변경된 해당 계층만 변경하면 되기 때문에 효율적입니다.
  2. 각 계층에서 담당하는 부분만 고려해서 계층 별로 설계하면 되기 때문에 설계가 간편해집니다.

 

 각 TCP / IP 계층이 담당하는 역할은 다음과 같습니다.

 

- 응용 계층(Application Layer)

  유저에게 제공되는 어플리케이션, 즉 서버와 클라이언트 어플리케이션에서 사용하는 통신의 움직임을 결정합니다. DNS, HTTP가 이 계층에 속합니다.

 

- 전송 계층(Transport Layer)

  애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공합니다. TCP(Transmission Control Protocol), UDP(User Data Protocol)이 이 계층에 속합니다.

 

- 인터넷 계층 (Internet Layer)

  네트워크 상에서 패킷의 이동을 다룹니다. 패킷이란 전송하는 데이터의 최소 단위입니다. 인터넷은 여러 대의 컴퓨터와 네트워크 기기를 거쳐서 상대 컴퓨터에 도달하는데, 이 때 어떤 경로를 거쳐서 상대 컴퓨터까지 패킷을 보낼지를 결정합니다.

 

- 네트워크 인터페이스 계층 (Network Interface Layer)

  네트워크에 접속하는 하드웨어와 관련된 계층으로, 디바이스 드라이버, 네트워크 인터페이스 카드(NIC), LAN 등을 다룹니다. 케이블과 같이 물리적인 부분도 포함합니다.

 

TCP / IP 통신 흐름

TCP / IP 통신

 TCP / IP로 통신을 할 때, 송신측은 애플리케이션 계층부터 순서대로 내려가고, 수신측은 애플리케이션 계층으로 순서대로 올라가며 통신합니다. HTTP를 예시로 들면,

 

- 송신측 클라이언트의 응용 계층(HTTP)에서 웹 페이지를 요청하는 HTTP 리퀘스트를 지시합니다.

- 전송 계층(TCP)에서 응용 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 패킷으로 조각내어 안내 번호, 포트 번호를 붙여 인터넷 계층에 전달합니다.

- 인터넷 계층(IP)에서 수신지 MAC 주소를 추가해서 네트워크 인터페이스 계층에 전달합니다.

- 수신측 서버의 네트워크 인터페이스 계층에서 데이터를 받아들여 송신측과 반대 순서로 전달해 응용 계층까지 도달합니다. 응용 계층까지 도달한 후 클라이언트가 발신했던 HTTP 리퀘스트 내용을 수신할 수 있게 됩니다.

 

 각 계층을 거칠 때마다 헤더라는 각 계층에 필요한 정보가 감싸서 전달되는데, 이를 캡슐화라고 합니다. 송신할 때는 각 계층에서 헤더를 추가하고, 반대로 수신할 때는 각 계층을 거칠 때마다 해당 계층에서 사용한 헤더를 삭제합니다.

 

참고자료

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788931447897

 

HTTP & Network Basic - 교보문고

재미있게 배워보는 웹과 네트워크 입문 | 이 책은 웹의 근간을 이루는 HTTP를 중심으로 하여 웹, 인터넷 데이터 통신 분야의 기초가 되는 내용들을 다루고 있습니다. 관련 분야를 배우고자 하는

www.kyobobook.co.kr

 

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

홉바이홉 통신, ARP  (2) 2022.11.13
네트워크 기기  (4) 2022.11.06
네트워크 기초  (1) 2022.10.31
[HTTP] URI와 URL  (0) 2022.08.19
[HTTP] IP / TCP / DNS  (0) 2022.07.08