Today I leaned..
[Today I learned] 2024.03.14.목: HTTP 통신과 소켓통신
Jenny Noh
2024. 3. 14. 18:54
📌 HTTP 통신과 소켓통신
HTTP 통신
HTTP 통신은 Request와 Response로 이루어진 통신방식이다. 클라이언트가 서버에 응답으로 요청(request)하면 서버가 그에 대한 응답(response)을 보내는 방식이다.
HTTP 방식은 단발적으로 요청이 수신되었을 때만 연결을 허가하고 응답이 마무리되면 연결을 해제한다. 그렇기 때문에 소규모의 정보 전달이 여러번 발생할 경우에는 연결을 생성하고 해제하는 과정이 반복되기 때문에 낭비가 된다. 그리고 클라이언트의 요청이 없으면 서버에서 클라이언트에 연결을 먼저 시도하는 것이 불가능하다.
소켓통신
이러한 단점을 보완하기 위해 사용되는 통신방식이 소켓통신이다. 소켓통신은 클라이언트와 서버가 특정한 port를 통해 실시간으로 양방향 통신을 가능하게 만든 통신이다. HTTP 통신처럼 요청-응답의 사이클로 이루어지지는 않고 클라이언트와 서버가 단방향 통신을 주고 받음으로써 통신이 일어난다.
소켓통신은 HTTP 요청에서 연결을 Socket으로 업그레이드한다는 요청을 보냄으로써 시작한다. 클라이언트와 서버가 모두 이 요청에 동의하면 소켓을 '여는' 작업과 열린 소켓에 '연결'하는 작업을 수행한다. 이 최초의 요청-응답 방식을 handshake 방식이라고 하고 이후에 websocket 통신이 열리게 된다.