Functional requirements are specific features and functionality that an application should have, while non-functional requirements are broader characteristics of the application, such as security, performance, scalability, and usability.