HTTP
- HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 뜻
- 웹 브라우저에서 통신이 일어나고, 초기는 html 파일을 전송하려는 목적으로 만들어져쓰나 현재는 JSON, Image 파일 등도 전송.
- 초기에는 서버는 응답한 후 클라이언트(사용자)의 Connection을 곧바로 끊어버렸으나, 최근에는 성능상의 이유(Connection을 맺고 끊는 비용이 비싸다)로 Keep Alive 옵션을 통해 일정 기간 동안 클라이언트와 Connection을 유지하는 방식으로 통신이 가능해짐.
통신방식
- 클라이언트에서 서버로 요청을 보내고 서버가 응답하는 방식으로 통신이 이루어짐.
- 응답에는 클라이언트의 요청에 따른 결과를 반환
-> 클라이언트의 요청이 있을 때 서버가 응답하는 방식. 단방향 통신.
소켓 통신과의 차이
- 소켓이란 두 프로그램이 서로 데이터를 주고 받을 수 있도록 양쪽에 생성되는 통신단자.
- 소켓은 서버와 클라이언트 양방향 연결이 이루어짐 (클라이언트가 서버로 요청 가능, 서버도 클라이언트로 요청 가능함)
- 따라서 스트리밍이나 실시간 채팅 등 실시간으로 데이터 주고 받는 경우 소켓통신이 적합.
- 소켓통신은 계속해서 connection을 들고 있으므로 http 통신에 비해 많은 리소스가 소모됨.
정리
- 자주 데이터를 주고 받지 않는 환경 -> http
- 자주 데이터를 주고 받는 환경 -> 소켓 통신
- http 통신은 사용자가 서버에 요청을 보내는 단방향 통신. 소켓통신은 양방향 통신
출처
https://kotlinworld.com/75
IT 좀 아는 사람이라는 책에서 읽었던 거 같아요. 한 수 배우고 갑니다!