1-2 네트워크 통신의 이해

HTTP 통신
홍윤's avatar
Aug 19, 2024
1-2 네트워크 통신의 이해

1.Stateless(무상태)

💡
HTTP의 Stateless 특성:
  • HTTP는 무상태(stateless) 프로토콜입니다. 각 HTTP 요청은 독립적으로 처리되며, 서버는 클라이언트의 이전 요청 상태를 기억하지 않습니다. 이를 이미지의 "가방"으로 비유할 수 있습니다. 클라이언트가 요청을 보낼 때, 필요한 모든 정보를 "가방"에 담아 서버로 보냅니다. 서버는 이 요청을 독립적으로 처리하고 응답을 반환하며, 이후 요청을 받을 때는 이전 요청의 맥락을 유지하지 않습니다.
UDP의 Stateless 특성:
  • UDP 또한 무상태(stateless) 프로토콜입니다. 각 데이터그램(패킷)은 독립적으로 처리되며, 송신자와 수신자 간의 연결 상태를 유지하지 않습니다. 데이터그램은 “가방”에 비유될 수 있으며, 각 데이터그램은 독립적으로 수신 측에서 처리됩니다. UDP는 데이터가 전송될 때마다 이전 상태를 기억하지 않기 때문에, 패킷이 손실되거나 순서가 바뀌더라도 이를 자동으로 처리하지 않습니다.
 

2.Stateful(상태 유지)

💡
상태 유지의 반대 개념:
  • TCP는 상태 유지(stateful) 프로토콜입니다. 송신자와 수신자 간에 연결이 형성되어, 데이터 전송 중에 상태를 계속해서 유지합니다. 이는 이미지의 "락커"와 비유할 수 있습니다. 연결이 형성되면, TCP는 송신자와 수신자 간의 세션 상태를 기억하여 데이터 전송의 일관성을 보장합니다. 클라이언트가 여러 요청을 보내는 동안, 서버는 클라이언트의 상태를 유지하고 다음 요청을 처리할 수 있습니다.
HTTP와 Stateful:
  • HTTP는 기본적으로 무상태이지만, 상태 유지를 위해 세션이나 쿠키와 같은 기술을 사용할 수 있습니다. 이를 통해 서버는 클라이언트의 상태를 "락커"처럼 기억할 수 있습니다. 예를 들어, 사용자가 로그인하면, 서버는 세션을 통해 로그인 상태를 유지합니다.
 

3. Request(요청)

💡
HTTP 요청:
  • HTTP에서 요청은 클라이언트가 서버에 보내는 메시지입니다. 이 요청은 "가방"에 비유될 수 있습니다. 클라이언트는 요청에 필요한 모든 정보를 "가방"에 담아 서버로 보냅니다. 이 "가방"에는 요청 메서드(GET, POST 등), 요청 URL, 헤더, 본문 데이터 등이 포함됩니다. 서버는 이 요청을 받고 처리한 후, 응답을 반환합니다.
UDP 요청:
  • UDP에서 요청은 데이터그램(패킷)입니다. 클라이언트가 서버로 보내는 데이터그램은 필요한 정보를 모두 포함하고 있으며, 이는 "가방"처럼 동작합니다. 서버는 데이터그램을 수신하여 처리하고 응답할 수 있습니다. UDP는 각 데이터그램이 독립적이므로, 요청과 응답은 서로 독립적으로 처리됩니다.
 

4.Session(세션)

💡
HTTP 세션:
  • HTTP는 무상태이지만, 세션을 통해 상태를 유지할 수 있습니다. 세션은 클라이언트와 서버 간의 상태 정보를 저장하여, 클라이언트가 여러 요청을 보내는 동안 서버가 클라이언트의 상태를 기억하도록 도와줍니다. 이는 이미지의 "락커"와 비유될 수 있습니다. 예를 들어, 로그인 상태를 유지하는 웹 애플리케이션은 세션을 사용하여 사용자의 상태를 기억합니다.
TCP 세션:
  • TCP는 연결 지향 프로토콜로, 데이터 전송 중에 클라이언트와 서버 간의 상태를 유지합니다. TCP 연결은 "락커"처럼 동작하여, 송신자와 수신자 간의 데이터 전송 상태를 지속적으로 관리합니다.
 

5.Simples(단방향)

💡
HTTP의 기본 통신 모델:
  • HTTP는 기본적으로 단방향(simplex) 통신 모델을 따릅니다. 클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 반환합니다. 클라이언트와 서버 간의 통신은 한 방향으로 진행되며, 클라이언트가 요청한 후 서버가 응답합니다. 요청과 응답은 서로 독립적이며, 요청 후에는 응답을 기다려야 합니다.
 

6.반이중(Half-Duplex)

💡
HTTP/1.1과의 연관성:
  • HTTP/1.1에서는 반이중(half-duplex) 통신 모델이 적용됩니다. 이는 클라이언트가 요청을 보내고, 서버가 응답을 반환할 때까지 기다려야 하는 구조입니다. 한 번에 하나의 요청/응답 쌍만 처리할 수 있으며, 동시에 여러 요청을 처리할 수 없습니다. 이는 물리적 반이중 통신의 예로, 예를 들어 무전기가 동시에 송신과 수신을 할 수 없듯이, HTTP/1.1에서도 한 방향으로만 통신할 수 있습니다.
 

7.전이중(Full-Duplex)

💡
HTTP/2와의 연관성:
  • HTTP/2는 전이중(full-duplex) 통신을 지원합니다. 이는 클라이언트와 서버가 동시에 여러 요청과 응답을 주고받을 수 있음을 의미합니다. 전이중 통신은 데이터가 양방향으로 동시에 흐를 수 있어, HTTP/2에서는 성능과 효율성이 크게 향상됩니다. 클라이언트와 서버 간의 데이터 전송이 더 원활하고 빠르게 진행됩니다.
—-
notion image

notion image

notion image
Share article

Uni