Application layer is the layer that provides the interface between the applications we use to communicate and the underlying network over which our messages are transmitted.
Application layer protocols are used to exchange data between programs running on the source and destination hosts.
Application layer protocols specify the format and control information necessary for many of the common Internet communication functions e.g. DNS, HTTP, SMTP