POST is typically used for creating new entities
- the server can determine if the entity should be created
- the client might ask for an entity to be created several times
PUT is typically used for updating existing entities - the server can determine if the entity exists before updating it - imagine where a record might be tried to update twice. you would expect the same output even if the input was used twice (think poor network connection without an ACK from the server back to the client, so the client retries)