카테고리 없음

HTTP 통신 (+Socket 통신)

Gyuri 2022. 8. 31. 00:32

HTTP 통신?

HyperText Transfer Protocol의 약자로,

HTML 파일을 전송하는 프로토콜이라는 의미를 가진다!

웹브라우저에서 통신이 일어나며, 초기엔 HTML 파일을 전송하려는 목적으로 만들어졌으나

현재는 json, image 파일 등 또한 전송한다.

 

HTTP 통신은

클라이언트 -> 서버로 요청 보내고, 서버가 응답하는 방식으로 통신 이뤄짐

 

즉, 클라이언트의 요청이 있을 때 서버가 응답하는 방식. "단방향 통신"

 

서버의 응답엔 응답 코드가 같이 전송되고,

사용자는 응답 코드와 메세지 응답으로부터 오는 메세지 body를 통해 요청 값을 전달 받음.

 

초기에는 서버가 응답하고 클라이언트의 Connection을 바로 끊어버렸으나, 

최근에는 Connection을 맺고 끊는 비용이 비싸다는 이유로

Keep Alive 옵션을 통해 일정 기간 동안 클라이언트와 Connection을 유지하는 방식으로 통신이 가능해짐.

 

HTTP 메소드란?

HTTP 메소드는 "클라이언트가 웹 서버에 사용자 요청의 목적/종류를 알리는 수단" 이다.

최초의 HTTP 에선 GET 메소드만 존재했지만, 이후에 다양한 메소드들이 생겨났다.

 

HTTP 메소드 종류와 특징

  • GET (조회) : 데이터 조회
  • POST (등록) : 데이터 추가
  • PUT (수정) : 데이터 갱신
  • DELETE (삭제) : 데이터 삭제
  • PATCH : 리소스의 일부분 수정

각 메소드의 역할에 대한 자세한 포스팅 : https://gr616.tistory.com/304

 

Socket 통신?

소켓(socket)이란, 두 프로그램이 서로 데이터를 주고받을 수 있도록 양쪽 (두 프로그램 모두)에 생성되는 통신 단자.

 

소켓 통신은 서버와 클라이언트 양방향 연결이 이뤄지는 통신으로,

클라이언트 또한 서버로 요청을 보낼 수 있고 서버 또한 클라이언트로 요청을 보낼 수 있다!

스트리밍이나 실시간 채팅 등 실시간으로 데이터를 주고 받는 경우엔

Connection을 자주 맺고 끊는 HTTP 통신보다는 소켓 통신이 적합하다!

소켓 통신은 Connection을 게속 들고있기 때문에, HTTP 통신에 비해 많은 리소스가 소모된다.