HTTP

2020. 9. 23. 01:14·Web

출처 : 그림으로 배우는 Http Network Basic

 

웹은 HTTP로 나타낸다

HTTP를 이해하기 위해서는 TCP/IP 프로토콜에 대해 알 필요가 있습니다.

인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는 TCP/IP라는 프로토콜에서 움직이고 있습니다.

HTTP는 그 중 하나입니다.

 

인터넷과 관련된 프로토콜들을 모은것을 TCP/IP라고 부릅니다.

 

TCP와 IP 프로토콜을 가리켜 TCP/IP라고 부르기도 하지만, IP 프로토콜을 사용한 통신에서 사용되고 있는 프로토콜을 총칭해서 TCP/IP라는 이름이 사용되고 있습니다.

 

TCP/IP에서 중요한 개념 중 하나가 계층 입니다.

TCP/IP는 애플리케이션 계층, 트랜스포트 계층, 데이터링크 계층, 링크 계층 이렇게 총 4계층으로 나뉘어져 있습니다.

 

이렇게 계층이 나뉘어져 가질 수 있는 이점은 인터넷이 하나의 프로토콜로 이루어져있을때 어디선가 사양이 변경되었을 때 전체를 바꾸지 않으면 안되지만, 이렇게 계층이 나뉘어져있다면 사양이 변경된 해당 계층만 바꾸면 됩니다.

 

또한 계층화하면 설계를 편하게 할 수 있습니다. 애플리케이션 층에서 애플리케이션은 자기 자신이 담당하는 부분을 고려하면 되고, 상대가 어디에 있는지 같은 고려를 하지 않아도 됩니다.

 

TCP/IP 각 계층의 역할은 다음과 같습니다.

애플리케이션 계층은 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정하고 있습니다.

FTP, DNS등도 애플리케이션의 한 가지 입니다. HTTP도 이 계층에 포함됩니다.

 

트랜스포트 계층은 애플리케이션 계층에 네트워크로 접속되어 있는 2대의 컴퓨터 사이의 데이터 흐름을 제공합니다.

TCP, UDP두가지 프로토콜이 있습니다.

 

네트워크 계층은 네트워크 상에서 패킷의 이동을 다룹니다. 패킷이란 전송하는 데이터의 최소 단위입니다. 이 계층에서는 어떠한 경로를 거쳐 상대의 컴퓨터까지 패킷을 보낼지을 결정하기도 합니다.

인터넷의 경우 상대 컴퓨터에 도달하는 동안 여러대의 컴퓨터랑 네트워크 기기를 거쳐서 상대방에게 전송됩니다. 그러한 여러가지 선택지 중에서 하나의 길을 결정하는 것이 네트워크 계층의 역할입니다.

 

링크 계층은 네트워크에 접속하는 하드웨어적인 면을 다룹니다. 운영체제가 하드웨어를 제어하기 때문에 디바이스 드라이버랑 네트워크 인터페이스 카드를 포함합니다. 그리고 케이블 등과 같이 물리적으로 보이는 부분도 포함합니다.

하드웨어적 측면은 모두 링크계층의 역할입니다.

 

TCP/IP 통신의 흐름

애플리케이션 → 트랜스포트 → 네트워크 → 링크 → 링크 → 네트워크 → 트랜스포트 → 애플리케이션

 

예를 들면 HTTP(애플리케이션)에서 어느 웹 페이지를 보고싶다라는 HTTP 리퀘스트를 지시합니다.

 

그 다음 TCP(트랜스포트)에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호를 붙여 네트워크 계층에 전달 합니다.

 

IP(네트워크)에서는 수신지 MAC 주소를 추가해 링크 계층에 전달합니다.

 

이로써 네트워크를 통해 송신할 준비가 되었습니다.

 

수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달합니다. 애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 리퀘스트 내용을 수신할 수 있습니다.

 

각 계층을 거칠 때는 반드시 헤더로 불려지는 해당 계층마다 해당 계층에 필요한 정보를 추가합니다.

반대로 수신측에서는 각 계층을 거칠 때마다 반드시 해당 계층마다 사용한 헤더를 삭제합니다.

'Web' 카테고리의 다른 글

상태코드 간략한 정리  (0) 2020.09.24
Request와 Response의 구성  (0) 2020.09.23
URI와 URL 차이  (0) 2020.09.23
HTTP와 관계가 깊은 프로토콜들  (0) 2020.09.23
MSA 간략 정리  (0) 2020.09.23
'Web' 카테고리의 다른 글
  • Request와 Response의 구성
  • URI와 URL 차이
  • HTTP와 관계가 깊은 프로토콜들
  • MSA 간략 정리
마술사의 수습생
마술사의 수습생
언젠간 당신처럼 되고 싶어요.
  • 마술사의 수습생
    개발 기록 블로그
    마술사의 수습생
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Web (50)
      • 일기 (2)
      • 잡담 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
마술사의 수습생
HTTP
상단으로

티스토리툴바