'모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 보고 정리하였습니다.
영한님의 스프링 MVC 강의를 듣기 시작했습니다. 그런데 강의 초반부에 영한님께서 HTTP를 공부한 후에 듣는 것이 좋다고 하셔서, 빠르게 HTTP를 공부해 보려고 합니다. 🤓
인터넷 네트워크란 ?
통신할 컴퓨터끼리 가까이 있으면 케이블로 연결해서 쉽게 통신할 수 있습니다. 하지만 통신해야 할 컴퓨터끼리 멀리 떨어져 있는 게 보통입니다. 그래서 필요한 것이 바로 인터넷 망입니다. 우리는 이 인터넷 망을 통해 멀리 떨어져 있는 컴퓨터와 통신할 수 있게 됩니다.
인터넷 망은 수많은 노드들과 규칙들로 복잡하게 이루어져 있습니다. 이 복잡한 규칙 속에서 어떻게 안전하게 데이터를 주고받을 수 있는 걸까요 ? 이를 알기 위해서는 먼저 IP(Internet Protocol)에 대해 이해해야 합니다.
* 프로토콜(Protocol)이란 ? 컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약을 말합니다.
IP(Internet Protocol)
우리가 미국에 있는 친구에게 편지를 보낸다고 가정해 보겠습니다. 편지지에는 전하고 싶은 말을 쓰고, 편지 봉투에는 보내는 사람의 주소와 받는 사람의 주소를 적어 편지지를 담아 보냅니다. 그러면 복잡한 우체국 시스템으로 여러 집배원분들의 손을 거쳐 제 편지가 미국에 있는 친구한테 전해지겠죠 ? 📬 그러면 다시 미국에 있는 친구가 저한테 답장을 보낼 것입니다.
IP 통신 과정도 위 과정과 똑같습니다 !
IP의 역할
- IP 주소로 지정된 곳에 데이터를 전송한다.
- 패킷(Packet)이라는 통신 단위로 데이터를 전송한다.

전송할 데이터(전하고 싶은 말, Hello, World!)를 패킷(편지봉투)으로 감쌉니다. 패킷에 출발지 IP 주소(보내는 사람의 주소, 100.100.100.1), 도착지 IP 주소(받는 사람의 주소, 200.200.200.2)를 적어 보냅니다. 그러면 수많은 노드(집배원)들을 거쳐 도착지로 전송됩니다.

패킷이 도착지에 성공적으로 전송되면, 성공적으로 전달받았다는 메시지를 전송해야 합니다.
위 과정과 똑같이 전송할 데이터(답장, OK)를 패킷(편지봉투)으로 감쌉니다. 패킷에 출발지 IP 주소(보내는 사람의 주소, 200.200.200.2), 도착지 IP 주소(받는 사람의 주소, 100.100.100.1)를 적어 보냅니다. 그러면 다시 수많은 노드(집배원)들을 거쳐 도착지로 전송됩니다.
그런데, 이 IP 주소만으로 통신하는 데에는 한계가 있습니다.
1. 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 그대로 전송한다. (비연결성)
이미 주소를 다 적어 편지를 보냈는데, 알고 보니 미국에 있는 친구가 그 주소에 살고 있지 않을 때 ! 편지가 어디로 갔는지 알 수 없다는 문제가 발생합니다.
2. 중간에 패킷이 소실되어도 알 수 없다. (비신뢰성)
중간에 서버가 고장 나거나 꺼지면 그 패킷이 유실되는 문제가 발생합니다.
3. 패킷이 순서대로 안 올 수도 있다. (비신뢰성)
전송하려고 하는 데이터의 크기가 크면 쪼개서 보냅니다. 1. Hello, 2. World! 순서로 보냈는데 이 두 개의 패킷이 다른 노드를 타게 되어 2. World!, 1. Hello 순으로 도착할 수 있는 위험이 있습니다.
4. 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 두 개 이상일 때 문제가 발생한다. (프로그램 구분)
컴퓨터 한 대당 IP 주소 하나를 할당받습니다. 우리는 컴퓨터 한 대로 인터넷 브라우저도 여는 동시에 노래도 들어야 할 수 있습니다. 그런데 IP 주소 하나만으로는 여러 클라이언트와 통신하기 어렵다는 문제점이 있습니다.
이 문제들을 해결하기 위해 나온 것이 바로 TCP입니다. 다음 포스팅에는 TCP에 대해 정리해 보도록 하겠습니다. 😊
'HTTP' 카테고리의 다른 글
[HTTP] 2-2. 웹 브라우저 요청 흐름 (0) | 2025.02.22 |
---|---|
[HTTP] 2-1. URI (0) | 2025.02.20 |
[HTTP] 1-5. DNS (0) | 2025.02.19 |
[HTTP] 1-4. PORT (0) | 2025.02.19 |
[HTTP] 1-3. TCP, UDP (0) | 2025.02.19 |
'모든 개발자를 위한 HTTP 웹 기본 지식' 강의를 보고 정리하였습니다.
영한님의 스프링 MVC 강의를 듣기 시작했습니다. 그런데 강의 초반부에 영한님께서 HTTP를 공부한 후에 듣는 것이 좋다고 하셔서, 빠르게 HTTP를 공부해 보려고 합니다. 🤓
인터넷 네트워크란 ?
통신할 컴퓨터끼리 가까이 있으면 케이블로 연결해서 쉽게 통신할 수 있습니다. 하지만 통신해야 할 컴퓨터끼리 멀리 떨어져 있는 게 보통입니다. 그래서 필요한 것이 바로 인터넷 망입니다. 우리는 이 인터넷 망을 통해 멀리 떨어져 있는 컴퓨터와 통신할 수 있게 됩니다.
인터넷 망은 수많은 노드들과 규칙들로 복잡하게 이루어져 있습니다. 이 복잡한 규칙 속에서 어떻게 안전하게 데이터를 주고받을 수 있는 걸까요 ? 이를 알기 위해서는 먼저 IP(Internet Protocol)에 대해 이해해야 합니다.
* 프로토콜(Protocol)이란 ? 컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약을 말합니다.
IP(Internet Protocol)
우리가 미국에 있는 친구에게 편지를 보낸다고 가정해 보겠습니다. 편지지에는 전하고 싶은 말을 쓰고, 편지 봉투에는 보내는 사람의 주소와 받는 사람의 주소를 적어 편지지를 담아 보냅니다. 그러면 복잡한 우체국 시스템으로 여러 집배원분들의 손을 거쳐 제 편지가 미국에 있는 친구한테 전해지겠죠 ? 📬 그러면 다시 미국에 있는 친구가 저한테 답장을 보낼 것입니다.
IP 통신 과정도 위 과정과 똑같습니다 !
IP의 역할
- IP 주소로 지정된 곳에 데이터를 전송한다.
- 패킷(Packet)이라는 통신 단위로 데이터를 전송한다.

전송할 데이터(전하고 싶은 말, Hello, World!)를 패킷(편지봉투)으로 감쌉니다. 패킷에 출발지 IP 주소(보내는 사람의 주소, 100.100.100.1), 도착지 IP 주소(받는 사람의 주소, 200.200.200.2)를 적어 보냅니다. 그러면 수많은 노드(집배원)들을 거쳐 도착지로 전송됩니다.

패킷이 도착지에 성공적으로 전송되면, 성공적으로 전달받았다는 메시지를 전송해야 합니다.
위 과정과 똑같이 전송할 데이터(답장, OK)를 패킷(편지봉투)으로 감쌉니다. 패킷에 출발지 IP 주소(보내는 사람의 주소, 200.200.200.2), 도착지 IP 주소(받는 사람의 주소, 100.100.100.1)를 적어 보냅니다. 그러면 다시 수많은 노드(집배원)들을 거쳐 도착지로 전송됩니다.
그런데, 이 IP 주소만으로 통신하는 데에는 한계가 있습니다.
1. 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 그대로 전송한다. (비연결성)
이미 주소를 다 적어 편지를 보냈는데, 알고 보니 미국에 있는 친구가 그 주소에 살고 있지 않을 때 ! 편지가 어디로 갔는지 알 수 없다는 문제가 발생합니다.
2. 중간에 패킷이 소실되어도 알 수 없다. (비신뢰성)
중간에 서버가 고장 나거나 꺼지면 그 패킷이 유실되는 문제가 발생합니다.
3. 패킷이 순서대로 안 올 수도 있다. (비신뢰성)
전송하려고 하는 데이터의 크기가 크면 쪼개서 보냅니다. 1. Hello, 2. World! 순서로 보냈는데 이 두 개의 패킷이 다른 노드를 타게 되어 2. World!, 1. Hello 순으로 도착할 수 있는 위험이 있습니다.
4. 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 두 개 이상일 때 문제가 발생한다. (프로그램 구분)
컴퓨터 한 대당 IP 주소 하나를 할당받습니다. 우리는 컴퓨터 한 대로 인터넷 브라우저도 여는 동시에 노래도 들어야 할 수 있습니다. 그런데 IP 주소 하나만으로는 여러 클라이언트와 통신하기 어렵다는 문제점이 있습니다.
이 문제들을 해결하기 위해 나온 것이 바로 TCP입니다. 다음 포스팅에는 TCP에 대해 정리해 보도록 하겠습니다. 😊
'HTTP' 카테고리의 다른 글
[HTTP] 2-2. 웹 브라우저 요청 흐름 (0) | 2025.02.22 |
---|---|
[HTTP] 2-1. URI (0) | 2025.02.20 |
[HTTP] 1-5. DNS (0) | 2025.02.19 |
[HTTP] 1-4. PORT (0) | 2025.02.19 |
[HTTP] 1-3. TCP, UDP (0) | 2025.02.19 |