본문 바로가기
IT 공부

HTTP vs Socket

by dantriss 2022. 10. 17.

HTTP (HyperText Transfer Protocol) 란 ?

1. HTML파일을 전송하는 프로토콜이라는 의미, 웹브라우저에서 통신이 일어나며, 초기에는 HTML파일을 전송하려는 목적이였지만, 현재는 JSON,Image파일 등 또한 전송한다

 

2. HTTP 통신의 통신 방식 

2-1) 클라이언트에서 서버로 요쳥을 보내고 서버가 응답하는 방식으로 통신이 이루어진다. 응답에는 클라이언트의 요청에 따른 결과를 반환한다.(클라이언트의 요청이 있을 때만 서버가 응답하는 방식. "단방향 통신")

2-2) 서버의 응답에는 응답코드가 같이 전송되며, 사용자는 응답코드와 메세지 응답으로부터 오는 메세지 바디를 통해 요청 값을 받는다

2-3) 초기에는 서버는 응답한 후 클라이언트(사용자)의  conneciton을 곧바로 끊어버렸음, 최근에는 성능상의 이유(connection을 끊고 맺는 비용이 비싸다)로 keep alive옵션을 통해 일정기간 동안 클라이언트와 connection을 유지하는 방식으로 통신이 가능

 

3, 실시간이 아니라 필요한 경우에만 server로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이 ex) 블로그에 들어오는 상황

 

 

소켓(Socket) 통신이란?

1. 소켓이란 서버와 클라이언트 양방향 연결이 이루어지는 통신으로, 클라이언트도 서버로 요청을 보낼 수 있고, 서버도 클라이언트로 요청을 보낼 수 있는 통신으로 다음과 같은 특성을 가진다(클라이언트와 서버 양쪽 서로에게 데이터를 전달하는 방식의 "양방향통신")

1-1) 자주 데이터를 주고 받는 환경이 아닌 경우 HTTP 통신을 통해 받는 것이 유리하다

1-2) 자주 데이터를 주고 받아야하는 환경에서는 소켓통신이 유리하다

1-3) HTTP통신은 사용자가 서버에 요청을 보내는 단방향 통신인 반면, 소켓 통신은 양방향 통신이다

 

2. HTTP통신은 소켓통신의 일종이지만, 소켓통신은 HTTP  통신은 아니다

3. 계속 연결을 유지하는 연결지향형 통신이라 실시간통신이 필요한 경우에 자주 사용(client가 서버에 동영상을 요청하고, 동영상이 종료되는 순간까지도 통신을 해야하기 때문에) ex) 실시간 스트리밍중계나 실시간 채팅

 

 

 

출처 : 

https://kotlinworld.com/m/75/comments

https://pearlluck.tistory.com/m/335

'IT 공부' 카테고리의 다른 글

JDK 버전 바꾸기(Mac)  (0) 2023.04.06
Service_DAO 패턴  (0) 2022.05.31

댓글