Difference between functional and non-functional requirements in software

Functional Requirements

Functional requirements capture the intended behavior of the system. This behavior may be expressed as
services, tasks, or functions the system is required to perform.

Non-Functional Requirements

A non-functional requirement is a specification that describes the system’s operational capabilities and constraints that enhance its functionality. These may be speed, security, reliability, extensibility, flexibility, etc.