What is the main differences between site definition and site template?

sharepoint

Solution

A site definition is the basic blueprint for a site, including how it looks, what lists it contains, default navigational structures, and so on. You normally create a site definition by hand-editing CAML.

A site template can be created from within the Sharepoint application, and is basically a "diff" between the site definition and any changes made since the site was created. A site template is based on the underlying site definition, which means that if you create a new site from a template, and later change the underlying site definition, you run the very real risk of irreversibly screwing up your site.

A best practice is to configure a minimal site definition that, once created, is never modified again, and use site templates to store reusable customizations.

Problem

What is the main differences between site definition and site template?

Original source