Client의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
Http통신은 client의 요청이 있을 때만 server가 응답하여 처리를 한 후 에 연결을 끊는 방식이다다. 이러한 연결 방식은 client가 요청을 보내는 경우에만 server가 응답하는 단방향적 통신 으로 server가 client로 요청을 보낼 수는 없다. 예를 들어서 특정 링크를 클릭할 시에 client(웹)은 server(웹서버)로 이글에 대한 내용을 보내달라고 요청을 한 것이다. 이 글에 대한 내용을 내 화면에 뜨게 되면 연결은 종료된다. 그렇기 때문에 요청을 보낼 때, 내용을 기다리는 시간과 함께 연결하는 시간이 들어간다. 이러한 Http 통신은 실시간 연결이 아닌, 필요한 경우에만 server로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이하다. 만약 게시물에 대한 내용을 요청하기 위해 실시간으로 연결을 유지하는 socket 통신을 사용하게 되면, 게시물을 받은 후에도 계속 통신을 위한 연결이 성립되어 부하가 걸리게 된다. 일반적으로 모바일 어플리케이션은 필요한 경우에만 server로 정보를 요청하는 경우가 많다. 이러한 web-server로 http 통신을 주로 사용하며 비용 및 유지보수 등 대부분의 방면에서 좋다.
Server와 client는 프로토콜이라는 정해진 규약에 따라 통신하는데, http는 html 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.
대표적인 Request method
- GET: 필요한 resource를 요청하여 받는 것으로 db에는 변동이 없다.
- POST: 서버에 resource를 보내면서 생성해 달라고 요청한다.
- PUT: 서버에게 resource의 업데이트나 resource가 없다면 resource를 생성해달라고 요청한다.
- DELETE: 서버에게 resource의 삭제 요청
서버는 클라이언트의 요청에 응답하면서 요청이 성공적으로 완료되었는지를 알려주는 상태코드를 함께 보낸다.
Server와 client가 특정 port를 통해 실시간으로 양방향 통신을 하는 방식
socket 통신은 http 통신과 달리 server와 client가 특정 port를 통해 연결을 성립하고 있어 실시간으로 양방향 통신을 하는 방식이다. client만 필요한 경우에 요청을 보내는 http 통신과 달리 socket 통신은 socket 통신은 server 역시 client로 요청을 보낼 수 있으며, 계속 연결을 유지하는 연결지향형 통신이기 때문에 실시간 통신이 필요한 경우에 자주 사용됩니다. 예를 들면, 실시간 streaming 중계나 실시간 채팅과 같이 즉각적으로 정보를 주고받는 경우에 사용한다.
[출처]