REST represents an architectural style that will set some constraints on interfaces to achieve the desired goal. By using REST, we will enforce a server model where the client wants to gain information and act on some data that would be managed by the server. The very same server then sends a message to the client about the provided resources by a communication between client and server that has got to be cacheable and stateless. All implementations of a REST architectural project are supposed to be RESTful.
RPC, which is defined as the Remote Procedure Call, is a mechanism that will provide you with the possibility of calling a procedure in another process and will exchange data by passing some messages. It will process data on the server-side and is sometimes used as one kind of an underlying protocol for message passing which is nothing like HTTP.