In general, a Content Management System (CMS) is a system that manages work flow, usually in a collaborative environment. This system is a collection of procedures that simplify some complex or repetitive tasks. These procedures can be manual or computer-based. Website management is one of the tasks that needs some system to create, edit and manage content. Web pages are a typical example of content. You need some editor to create pages, some database to store them and some system to generate and retrieve pages when they are needed.
Web content management systems use a database to store content, metadata, or additional data that might be needed by the system. A web CMS usually contains a presentation layer which displays the content to web-site visitors based on a set of templates. A template is a basic page layout that contains content place holders, page styles and other page data that does not change.
Most web CMS applications use server side caching to boost performance. This works best when the web content is not changed often but visits happen on a regular basis. Administration of web CMS is typically done through web-based interfaces, but some systems require the use of a desktop client. A web CMS typically requires an experienced administrator to set up and add features, but is primarily a Web-site maintenance tool for non-technical administrators. It allows non-technical users to easily make changes to a website with little or no training.
There are many open-source web Content Management Systems you can download and use for free. Some well known free CMS systems are WordPress, Joomla, and Drupal to mention only the most popular. Those mentioned are based on PHP scripting language. There are also other CMS applications based on other languages like.NET, ASP.NET, Java, Java Bundle, Perl, Python, Ruby on Rails, etc.