HTTP 프로그래밍과 Socket 프로그래밍

ejoo·2024년 5월 6일

HTTP 프로그래밍

  • Client의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
  • 웹에서 데이터를 교환하는 데 사용되는 프로토콜
  • 주로 웹 브라우저와 서버 간의 통신에 사용되며, 웹 페이지와 관련 자원(이미지, 비디오, 스크립트 등)을 요청하고 전송하는 데 적합하다.

특징

상태 비저장 (Stateless): 각 요청은 독립적이며, 서버는 이전 요청의 상태를 기억하지 않는다.
비연결성 (Connectionless): 기본적으로 클라이언트가 요청을 하고 서버가 응답을 한 후 연결이 종료된다.
표준화된 메소드 사용: GET, POST, PUT, DELETE 등과 같은 메소드를 사용하여 리소스를 요청하고 조작한다.

용도

  • 웹 사이트와 어플리케이션에 접근하여 문서, 이미지 등을 요청하고 서버로부터 받는다.
  • RESTful API 개발에 널리 사용되어 서버와 클라이언트 간 데이터를 교환하며, 서비스를 제공한다.
  • 웹 기반 통신, 특히 상태가 필요하지 않은 요청과 응답 패턴에 적합하다.

Socket 프로그래밍

  • Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식
  • 네트워크 상에서 두 프로그램이 데이터를 주고받을 수 있게 하는 저수준의 프로그래밍 인터페이스
  • TCP/IP 및 UDP 프로토콜을 사용하여 실시간 데이터 전송에 적합하다.

특징

저수준 프로그래밍 인터페이스: 네트워크 계층에 직접 접근하여 통신을 구현한다.
양방향 통신: 데이터를 양방향으로 전송할 수 있으며, 연결 기반(TCP) 또는 비연결 기반(UDP)의 소켓을 생성할 수 있다.
포트와 IP 주소 사용: 특정 IP 주소와 포트에 바인드되어 데이터를 전송하고 수신합니다.

용도

  • 네트워크 게임, 실시간 시스템, P2P 어플리케이션 등과 같이 지속적인 데이터 교환을 요구하는 어플리케이션에 사용된다.
  • 서버와 클라이언트 간의 지속적인 데이터 스트림을 요구하는 상황에서 사용된다.
  • 보다 낮은 수준에서의 통신을 가능하게 하며, 실시간 데이터 교환과 지속적인 연결이 요구되는 어플리케이션에 적합하다.

참고
[네트워크 프로그래밍] Http 프로그래밍과 Socket 프로그래밍 차이

profile
안녕하세요

0개의 댓글