When a software developer begins with a project, he needs to establish objectives. Some of them are client requirements. These can be classified as functional or nonfunctional. And no, nonfunctional does not mean they are useless or not that important.
A requirement is functional when it must do something. It’s not a static requirement. Example: the product must include an automatic backup tool.
On the other hand, a requirement turns out to be nonfunctional when it’s not precisely a function of the program, but rather a characteristic of it. Example: the product must have SSL.
An easier way to understand this is by taking the OOP focus: functional requirements are the same as methods, as well as nonfunctional requirements are the same as properties.