1) Client - Server: 클라이언트 - 서버 관계는 항상 존재하며, 이 두가지 시스템은 그들이 어떻게 운영되는지에 대한 boundaries 가 꼭 필요하다. Request (클라이언트) 는 누가 하며, called (서버) 되는 것은 무엇 인가? 에 대한 규정
2) Stateless: 서버는 수신하는 메세지들을 처리 할 수 있어야 한다. 이를 위해서, 서버가 수신하는 모든 request는 서버가 작동되는데 필요한 모든 필수 정보들을 담고 있어야 한다.
3) Uniform Interface: 비슷한 용어와 리소스의 사용은 API 표준화에 도움이 된다. 이 principle 에 따르면, 다음과 같은 HTTP 동사들이 사용된다: GET, PUT, POST & DELETE. 리소스들은 항상 URI(Uniform Resource Identifier)를 가리킨다. HTTP 응답은 항상 status 와 body 와 함께 딸려온다.
4) Cacheable: 클라이언트는 representations를 cache 할 수 있어야 한다. Statelessness 때문에 RESTful API 에서 이를 가능케 한다.