Ketika Anda mengetik www.google.com di browser web Anda, itu membuka koneksi pada port default 80 ke server Google (melalui pencarian DNS untuk melihat apa alamat IP www.google.com) dan meminta halaman web. Server Google merespons dengan halaman web yang digambarkan oleh browser Anda di layar (biasanya dengan melakukan panggilan lebih lanjut untuk gambar, CSS, dan JavaScript).
Ketika Anda pergi ke localhost: 8080 itu adalah hal yang persis sama. Nama server Localhost selalu memutuskan untuk mesin yang Anda jalankan dan menggunakan alamat IP palsu 127.0.0.1 (komputer Anda akan memiliki dua alamat IP - ini palsu yang dimiliki setiap komputer dan yang asli). Jadi, Anda harus memiliki instance Tomcat yang berjalan secara lokal mendengarkan koneksi pada port 8080.
Mengapa port 8080 daripada http port 80 default? Nah itu kalau-kalau Anda sudah memiliki server web.
Biasanya Anda memiliki server web dan server aplikasi.
Server web (seperti Apache httpd) menyajikan halaman statis. Akibatnya itu seperti server FTP satu arah yang mewah. Anda membuka koneksi TCP dan meminta file menggunakan perintah HTTP (biasanya GET). Server web mengembalikan file HTML dan browser Anda mengunduhnya dan mem-parsingnya, melihatnya memerlukan gambar lain dan meminta itu. Server web sangat cepat tetapi pada dasarnya mengangkat file dari disk lokal dan mengembalikannya.
Server Aplikasi (seperti Tomcat atau JBoss) serupa kecuali ia biasanya menjalankan kode untuk "membuat" halaman yang Anda minta, alih-alih mengangkatnya langsung dari disk. Apa yang dilakukan untuk membuat halaman itu terserah aplikasi Anda. Itu bisa terhubung ke database, menjalankan program, secara acak melayani halaman ... Dll. Ketika Anda masuk ke perbankan online Anda misalnya, server aplikasi mengatur sesi untuk Anda, mengembalikan id sesi itu dalam cookie yang Anda Browser mengirim kembali setiap kali Anda membuat permintaan sampai Anda keluar. Jadi jika Anda meminta halaman "saldo saya" maka bank mencari siapa Anda berdasarkan id sesi Anda, kemudian pergi ke database-nya untuk mendapatkan nama dan saldo bank Anda, kemudian buat halaman yang mengatakan "Hai John Smith, saldo Anda adalah € 100. " Server aplikasi biasanya lebih lambat, tetapi lebih fleksibel daripada server Web.
Banyak tempat memiliki WebServer yang berjalan di port default 80, dan kemudian AppServer berjalan pada port sekunder (seperti 8080). Jadi halaman statis dilayani dengan cepat dan ketika pengguna mengklik tautan yang membawa mereka ke halaman dinamis, tautan tersebut menuju ke 8080 (yang ditanggapi oleh server aplikasi) atau server web diatur untuk meneruskan permintaan tertentu ke server aplikasi (di yang masih terlihat seperti port default 80 dan jadi terlihat lebih bagus untuk pengguna).
Tentu saja ini adalah gambaran level yang sangat tinggi dan tidak ada yang hitam dan putih. Sebagian besar Webservers dapat membuat beberapa konten dinamis dengan menjalankan skrip (biasanya CGI via skrip dia akan menggunakan perl atau PHP) dan sebagian besar server aplikasi juga dapat menyajikan file biasa seperti server web. Bahkan dimungkinkan untuk hanya menjalankan server aplikasi dan mengubah nomor port kucing jantan dari 8080 menjadi 80.
Akhirnya banyak aplikasi yang beralih dari melayani halaman HTML lengkap untuk setiap permintaan ke server aplikasi (yang terlihat lambat dan tidak efisien) dan malah merespons dengan hanya potongan data menggunakan AJAX untuk mengirim JSON atau XML. Kembali ke www.google.com asli yang Anda gunakan untuk mengetik permintaan pencarian Anda, tekan Search dan dapatkan halaman hasil Anda. Alih-alih sekarang, saat Anda mengetik, browser Anda terus mengirim permintaan AJAX ke Google yang merespons dengan hasil pencarian terkini berdasarkan apa yang Anda ketikkan sejauh ini dan kemudian browser Anda memperbarui halaman. Ini berarti tidak perlu menunggu pengguna untuk mengirimkan halaman sehingga lebih cepat dan lebih dinamis kepada pengguna (seperti aplikasi desktop jadul).