HTTP 통신이란 클라이언트의 요청이 있을 때만 데이터 응답을 전달한다. 불필요한 자원의 점유를 없애 다른 접속을 원활하게 하여 많은 데이터를 처리한다. 데이터 요청 후 응답이 오면 연결은 끊어진다. (Connectionless)
또한, 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다. (Stateless)
반대로, 소켓 통신은 접속을 계속 유지하여 데이터를 전달한다. 서버의 자원에 따라서 연결될 수 있는 클라이언트의 숫자가 한정된다. 실시간 정보 교환에 사용되며 HTTP보다 속도가 빠르다.
1) GET - 주소창에 파라미터가 노출되고 브라우저에서 주소에 대한 캐시가 이루어지므로 정보를 얻을 때 사용된다. 클라이언트에서 서버로 어떤 리소스로부터 정보를 요청하기 위해 사용하는 method이다.
-> ex) http://localhost:8080/api/getMultiParameter?account=abcd&email=study@gmail.com&page=10
2) POST - 주소창에 사용자의 요청사항이 노출되지 않는다. 브라우저가 주소 캐시를 하지 못한다.
리소스를 생성하기 위해 서버로 데이터를 보내기 위해 사용하는 method이다.
-> ex) http://localhost:8080/search
3) PUT/PATCH - POST와 마찬가지로 body에 데이터가 들어 있으며 주로 업데이트에 사용한다.
4) DELETE - GET과 마찬가지로 주소에 파라미터가 들어가며 데이터를 삭제할 때 주로 사용한다.
HTTP 프로토콜에 있는 Method를 활용한 아키텍처 스타일이다. HTTP Method를 통해서 Resource를 처리하고, CRUD를 통한 Resource를 조작할 때 사용한다.

*참고자료 - 패스트 캠퍼스 온라인 강의