Ποια είναι η διαφορά όσον αφορά τη λειτουργικότητα μεταξύ του Apache HTTP Server και του Apache Tomcat;
Γνωρίζω ότι ο Tomcat είναι γραμμένος σε Java και ο HTTP Server σε C, αλλά εκτός από αυτό δεν ξέρω πραγματικά πώς διακρίνονται. Έχουν διαφορετική λειτουργικότητα;
Ο Apache Tomcat χρησιμοποιείται για την ανάπτυξη των Java Servlets και JSPs σας. Έτσι, στο Java project σας μπορείτε να δημιουργήσετε το αρχείο WAR (συντομογραφία για Web ARchive) και απλά να το τοποθετήσετε στον κατάλογο deploy του Tomcat.
Έτσι, βασικά ο Apache είναι ένας διακομιστής HTTP, που εξυπηρετεί το HTTP. Το Tomcat είναι ένας Servlet και JSP Server που εξυπηρετεί τεχνολογίες Java.
Το Tomcat περιλαμβάνει την Catalina, η οποία είναι ένας περιέκτης servlet. Ένα servlet, στο τέλος, είναι μια κλάση Java. Τα αρχεία JSP (τα οποία είναι παρόμοια με την PHP, και τα παλαιότερα αρχεία ASP) παράγονται σε κώδικα Java (HttpServlet), ο οποίος στη συνέχεια μεταγλωττίζεται σε αρχεία .class από τον διακομιστή και εκτελείται από την εικονική μηχανή Java.
Εκτός από τις καλές απαντήσεις παραπάνω, νομίζω ότι πρέπει να πούμε ότι ο Tomcat έχει ενσωματωμένο τον δικό του διακομιστή HTTP και είναι πλήρως λειτουργικός στην εξυπηρέτηση στατικού περιεχομένου. Ανάλογα με τη διαμόρφωση της εικονικής μηχανής java μπορεί στην πραγματικότητα να ξεπεράσει την απόδοση της μετάβασης μέσω των παραδοσιακών συνδέσμων στον apache, όπως το mod_proxy και το mod_jk.
Τούτου λεχθέντος, ένας πλήρως βελτιστοποιημένος διακομιστής Tomcat θα πρέπει να εξυπηρετεί στατικά αρχεία γρήγορα και αν έχετε servlets Java, JSPs και αρχεία ColdFusion εκτός από στατικό περιεχόμενο, μπορεί να διαπιστώσετε ότι ο tomcat κάνει εξαιρετική δουλειά από μόνος του.
Το Tomcat είναι πρωτίστως ένας διακομιστής εφαρμογών, ο οποίος εξυπηρετεί αιτήσεις σε προσαρμοσμένα servlets Java ή αρχεία JSP στον διακομιστή σας. Συνήθως χρησιμοποιείται σε συνδυασμό με τον διακομιστή HTTP του Apache (τουλάχιστον κατά την εμπειρία μου). Χρησιμοποιήστε το για να επεξεργάζεστε χειροκίνητα τις εισερχόμενες αιτήσεις.
Ο διακομιστής HTTP, από μόνος του, είναι καλύτερος για την εξυπηρέτηση στατικού περιεχομένου... αρχεία html, εικόνες, κ.λπ.