Khi bạn nhập www.google.com vào trình duyệt web, nó sẽ mở một kết nối trên cổng mặc định 80 đến máy chủ Google (thông qua tra cứu DNS để xem địa chỉ IP www.google.com là gì) và yêu cầu trang web. Máy chủ Google phản hồi với một trang web mà trình duyệt của bạn vẽ trên màn hình (thường bằng cách thực hiện các cuộc gọi tiếp theo cho hình ảnh, CSS và JavaScript).
Khi bạn truy cập localhost: 8080, đó chính là điều tương tự. Tên máy chủ Localhost luôn phân giải cho máy bạn đang chạy và sử dụng địa chỉ IP giả là 127.0.0.1 (máy tính của bạn sẽ có hai địa chỉ IP - địa chỉ giả này mà mọi máy tính đều có và địa chỉ thật). Vì vậy, bạn phải có một phiên bản Tomcat chạy cục bộ để nghe các kết nối trên cổng 8080.
Tại sao cổng 8080 thay vì cổng http mặc định 80? Vâng, đó là trong trường hợp bạn đã có một máy chủ web.
Thông thường bạn có máy chủ web và máy chủ ứng dụng.
Các máy chủ web (như Apache httpd) phục vụ các trang tĩnh. Trên thực tế, nó giống như một máy chủ FTP một chiều ưa thích. Bạn mở một kết nối TCP và yêu cầu một tệp bằng các lệnh HTTP (thường là GET). Máy chủ web trả về một tệp HTML và trình duyệt của bạn tải xuống và phân tích cú pháp, thấy nó cần các hình ảnh khác và yêu cầu chúng. Một máy chủ web rất nhanh nhưng về cơ bản sẽ nhấc các tệp ra khỏi đĩa cục bộ và trả lại chúng.
Máy chủ ứng dụng (như Tomcat hoặc JBoss) tương tự ngoại trừ nó thường chạy mã để "tạo" trang bạn đang yêu cầu, thay vì nhấc nó trực tiếp từ đĩa. Những gì nó làm để tạo ra trang đó là tùy thuộc vào ứng dụng của bạn. Nó có thể kết nối với cơ sở dữ liệu, chạy chương trình, phục vụ ngẫu nhiên một trang ... v.v. Khi bạn đăng nhập vào ngân hàng trực tuyến của mình, máy chủ ứng dụng sẽ thiết lập một phiên cho bạn, trả về id phiên đó trong cookie mà bạn trình duyệt gửi lại mỗi lần bạn thực hiện yêu cầu cho đến khi bạn đăng xuất. Vì vậy, nếu bạn yêu cầu trang "số dư của tôi" thì ngân hàng sẽ tìm kiếm bạn là ai dựa trên id phiên của bạn, sau đó truy cập cơ sở dữ liệu để lấy tên và số dư ngân hàng của bạn, sau đó tạo một trang có nội dung "Xin chào John Smith, số dư của bạn là € 100. " Máy chủ ứng dụng thường chậm hơn, nhưng linh hoạt hơn so với Máy chủ web.
Nhiều nơi có Máy chủ Web chạy trong cổng mặc định là 80 và sau đó AppServer chạy trên cổng phụ (như 8080). Vì vậy, các trang tĩnh được phục vụ nhanh và khi người dùng nhấp vào liên kết đưa họ đến trang động, liên kết sẽ chuyển đến 8080 (máy chủ ứng dụng phản hồi) hoặc máy chủ web được thiết lập để chuyển tiếp một số yêu cầu đến máy chủ ứng dụng (trong trong trường hợp đó, nó vẫn giống như cổng 80 mặc định và do đó người dùng sẽ trông đẹp hơn một chút).
Tất nhiên đây là một tổng quan cấp độ rất cao và không có gì là đen trắng. Hầu hết các Máy chủ web có thể tạo một số nội dung động bằng cách chạy các tập lệnh (thường là CGI thông qua các tập lệnh bằng perl hoặc PHP) và hầu hết các máy chủ ứng dụng cũng có thể phục vụ các tệp đơn giản như máy chủ web. Trên thực tế, có thể chỉ cần chạy một máy chủ ứng dụng và thay đổi số cổng tomcat từ 8080 thành 80.
Cuối cùng, nhiều ứng dụng đang chuyển khỏi việc cung cấp các trang HTML đầy đủ cho mỗi yêu cầu đến máy chủ ứng dụng (được xem là chậm và không hiệu quả) và thay vào đó chỉ phản hồi bằng các đoạn dữ liệu bằng AJAX để gửi JSON hoặc XML. Quay lại www.google.com gốc mà bạn đã sử dụng để nhập truy vấn tìm kiếm của mình, nhấn Tìm kiếm và nhận trang kết quả của bạn. Bây giờ, thay vào đó, khi bạn nhập, trình duyệt của bạn liên tục gửi các yêu cầu AJAX tới Google, phản hồi với kết quả tìm kiếm cập nhật dựa trên những gì bạn đã nhập cho đến nay và sau đó trình duyệt của bạn cập nhật trang. Điều đó có nghĩa là không cần phải đợi người dùng gửi trang nhanh hơn và năng động hơn cho người dùng (giống như một ứng dụng máy tính để bàn cũ của trường học).