지금까지 진행했던 프로젝트들에는 소켓통신을 활용한 채팅프로그램도 있고,
숙소 임대 서비스를 하는 웹사이트를 만들기도 하였다.
두 가지 프로젝트에서 Server 와 Client 간 통신 방식에는 차이가 있었는데 바로
Sokcet 통신과 Http 통신간의 차이였다.
그렇다면 이 두 통신방식의 차이는 구체적으로 어떻게 설명될 수 있을까?
우선, 소켓통신 에 대해서 간단히 알아보도록 하자.
자바에서 소켓통신을 활용하려면, 우선 서버와 클라이언트에 각각 소켓을 생성하고 두 소켓을 서로 연결시킨다.
(((( 소켓은 ip, port 와같은 정보를 가지고있으며 서버 소켓의 경우 클라이언트로부터 연결 요청이 들어오면 클라이언트와 연결을 맺고, 다른 소켓을 생성하게 되고 클아이언트 소켓은 서버 아이피 주소와 포트번호를 이용해 생성된 뒤 해당 아이피와 포트번호를 가진 서버 소켓과 연결 요청을 한다 ))))
이렇게 연결이 되면 연결을 끊기 전까지 계속 연결된 상태를 유지하게 된다. 즉, 소켓통신은 연결지향형 통신이고 이는 실시간 통신에 유용하게 사용될 수 있다.
다음으로, Http 통신 에 대해서 간단히 알아보자
Http 는 HyperTextTransferProtocol의 약자로 말그대로 HyperText를 주고받기 위한 프로토콜이라고 할 수 있다.
그런데 Http 통신과 Sokcet 통신에는 큰 차이가 있는데 그것은 바로, Http 통신은 비연결을 지향한다는 것이다. 즉, 클라이언트가 서버측에 Request(요청) 을 보내면 서버는 그에 상응하는 Response(응답)을 한 뒤에 서버와 클라이언트간의 연결은 끊기게 된다. 이런 비연결지향은 무의미한 연결에 대한 부하를 제거할 수 있는 장점을 가지고 있다.
한 줄로, 두 통신간의 차이점을 요약하자면....
Socket통신은 연결지향적인 통신이고, Http 통신은 비연결지향적 통신이다.