When you make a web application, you usually don't do (or at least - you shouldn't do) everything from scratch. Some parts of the code are very similar across the application, and you can see that you write many things in a very similar way. If you take this "shared" code and design concepts you are using and make a reusable library from it, you get a framework. Then you can put it into your new project and speed up it, because many parts are already done and ready to use. Of course, most of such home-made frameworks will simply suck, especially if you have no experience, but technically speaking they are still frameworks.
The idea of "professional" frameworks is similar, but of course they are well-designed, well-tested, flexible and provide lots of features for different purposes. They give you pieces of a complete code, tools, automatic code generators and some techniques and you build a web application using them, just like building a house from ready bricks.
PS. I would not recommend Zend Framework if you are a beginner. It's quite complex and requires much more from the programmer to set up the basic application structure.