i am unable to get a clear picture of this like httpd is a deamon but we start it as a service say "service httpd start".
Aha! "service httpd start" means you are probably running Fedora, Redhat or CentOS. You should update your profile to indicate what distribution you are running. It makes it easier to understand the question posed.
So, you are speaking service in that context (my assumption when I answered earlier).
When httpd starts, it deamonizes itself. So it's started as a service, and is a daemon. If it was started from /etc/inittab (inadvisable), it would still be a daemon, but would not be considered a service.
tsg, not the same service abhinav4 is referring to.
schneidz, a daemon can do that, it doesn't necessarily have to. That is a common characteristic of many daemons, especially network related daemons that benefit from forking off a child process to handle a tcp/ip connection.
'chkconfig --list' will show you how all the services are configured in terms of starting and stopping.
Look at the service 'network', /etc/rc.d/init.d/network. It is a service, starts at the run levels indicated in the chkconfig --list. It does a lot of configuration and setup of the network interfaces, but (at least on my systems) starts no daemons.
Both terms, service and daemon, are often used pretty loosely and interchangeably which causes confusion.
btw, you can look at the 'service' command, as it is a Bourne shell, /sbin/service (at least on Fedora/Redhat/CentOS). It is a shell script for manually starting a service. In SuSE there is no service command and you would instead issue the command '/etc/rc.init/httpd start' to manually start httpd (if that's what the Apache service is called there).