You can just Google that and it would be instant answer to you. Also this link should help - http://www.mattcutts.com/blog/seo-advice-url-canonicalization/
When your home page opens with both "301" and "non 301" is known as canonical error. Sometime Canonical URL (best URL version) is also referred as "Preferred Domain". Canonicalization (Methods to set this problem) 1. Set your preferred domain (using webmaster tool) 2. Specify the canonical link for each version of the page PHP: For Example: link rel="canonical" href="URL" Add this extra information to the section of non-canonical URLs. 3. Indicate your canonical (preferred) URLs by including them in a Sitemap 4. Indicate how you would like Google to handle dynamic parameters. (by using Parameter Handling)
Cannonical error is nothing but for a website opening you need to make 301 redirection from one url to another as a permanent