Difference between apex:pageMessage and apex:pageMessages

apex:pageMessage is used for displaying custom messages in the visualforce page using the Salesforce pattern for errors, warnings and other types of messages for a given severity.

apex:pageMessages displays all the messages that were generated for all components on the current visualforce page, presented using the Salesforce styling.