Think of the supporting structure of a building. It sets out the skeleton and imposes certain limits to the shape of the finished house, but it leaves you free to furnish it to your liking and give it a personal touch. In the software field, a framework is like this supporting structure.
A framework is a logical architecture, in other words we could define it as a software that allows you to develop other software, offering developers the tools and procedures that are useful to organise their work and manage programming language. Frameworks simplify the work, automatise certain long and repetitive procedures and have control systems that reduce programming errors.
There are many different types of frameworks, optimised to manage specific needs, whether they are related to frontend, backend or other kinds of development. A framework can be destined for web programming, but there are also other fields of application that do not regard Internet.