.Asset vs .Prefab vs. .Unity3d ?

What's the difference between these 3? As far as I can tell, they're all archived, serialized Object hierarchies, and it's hard to know which one I should be using for design-time use.

.asset files contain all assets of your exe game and .unity3d files are packages of web player bilds. .prefab is the file extension to store prefabs. i am not sure if reference to meshes and textures of a .prefab file is inside a .asset file or not. i think .prefab and .unity just contain prefab and scene information and object trees but .asset files contain serialized Texture2D or Mesh classes. assemblies will compile in DLLs.