First distinction is authoritative vs caheing servers. They serve different purposes: the former holds the information regarding particular zone(s), and the latter is serving client requests for resolving ANY domain record for any domain, hence their second name - DNS resolvers.
In practice you can see that both these functions are combined, but in fact those are different ones and should not be confused.
As to secondary servers - you are right, those a slave servers that get the zone info from the primary server, and both secondary and primary type of servers are authoritative for a particular zone, that is able to serve requests.