What is the difference of message status (sent /delivered /read)?

What is the difference of message status (sent /delivered /read)?

sent
  1. Message sent by your business was received by the server.

delivered
  1. Message sent by your business was delivered to the user's device.

read
  1. Message sent by your business was read by the user.
  2. read notifications will only be available for those users that have read receipts enabled. For users that do not have it enabled, you will only receive the delivered notification.
  3. For a status to be read, it must have been delivered. In some scenarios, such as when a user is in the chat screen and a message arrives, the message is delivered and read almost simultaneously. In this or other similar scenarios, the delivered notification will not be sent back, as it is implied that a message has been delivered if it has been read. The reason for this behavior is internal optimization.