Tomcat by itself is a web server. This means that you can use Tomcat to service HTTP requests for servlets, as well as static files (HTML, image files, and so on). In practice, however, since it is faster for non-servlet, non-JSP requests, Tomcat normally is used as a module with another more robust web server, such as Apache web server or Microsoft Internet Information Server.
Only requests for servlets or JSP pages are passed to Tomcat.
Problem Statement according to the above lines from a book:
It is not clear, if request for servlets and jsp pages are passed to tomcat than how does it process to the non-servlet and no-jsp request and for the static files as well? If http request is not used in this case than how it is processed and how it fast for the same i.e. for the static content and for the non-jsp and non-servlet request?
Why Http protocol is preffered to the request and response of jsp and servlet pages?
Your question doesn't make much sense. It all uses HTTP.
That quote (which I put into a quote block, by the way, to make it clear that it's not your writing) is just saying that some HTTP requests a handled by Apache or IIS while other are routed to Tomcat. It's all still HTTP.
This is only, of course, if configured as such. Tomcat is perfectly capable of handling all requests.
How old is your book? It has been a VERY LONG time since static content (non servlet/JSP) was recommended to be sent by something other than Tomcat. The only reasons that you need to pair Tomcat with a non-J2EE webserver these days are if you want a single point to server both J2EE and non-J2EE (cgi, php, and so forth). OR if you want to avoid running Tomcat as a privileged user (root) and still have it handle requests for ports 80 and 443.
Tomcat's static delivery has been perfectly acceptable for well over 10 years now.
Customer surveys are for companies who didn't pay proper attention to begin with.