Apa perbedaan antara server aplikasi dan server web?

761

Apa perbedaan antara server aplikasi dan server web?

TwiggedHari ini
sumber
kinerja bijaksana yang lebih baik server aplikasi atau server web
kavya

Jawaban:

620

Sebagian besar istilah-istilah ini Server Web dan server Aplikasi digunakan secara bergantian.

Berikut adalah beberapa perbedaan utama dalam fitur-fitur Web Server dan Application Server:

  • Server Web dirancang untuk menyajikan Konten HTTP. App Server juga dapat menyajikan Konten HTTP tetapi tidak terbatas hanya pada HTTP. Ini dapat diberikan dukungan protokol lain seperti RMI / RPC
  • Server Web sebagian besar dirancang untuk menyajikan konten statis, meskipun sebagian besar Server Web memiliki plugin untuk mendukung bahasa scripting seperti Perl, PHP, ASP, JSP dll. Melalui server ini dapat menghasilkan konten HTTP dinamis.
  • Sebagian besar server aplikasi memiliki Web Server sebagai bagian integral dari mereka, itu berarti App Server dapat melakukan apa pun yang mampu dilakukan oleh Server Web. Selain itu, App Server memiliki komponen dan fitur untuk mendukung layanan tingkat Aplikasi seperti Connection Pooling, Object Pooling, Dukungan Transaksi, layanan Pesan, dll.
  • Karena server web sangat cocok untuk konten statis dan server aplikasi untuk konten dinamis, sebagian besar lingkungan produksi memiliki server web yang bertindak sebagai proxy terbalik ke server aplikasi. Itu berarti saat melayani permintaan halaman, konten statis (seperti gambar / HTML Statis) dilayani oleh server web yang menginterpretasikan permintaan tersebut. Menggunakan semacam teknik penyaringan (sebagian besar ekstensi sumber daya yang diminta) server web mengidentifikasi permintaan konten dinamis dan meneruskan secara transparan ke server aplikasi

Contoh konfigurasi tersebut adalah Apache Tomcat HTTP Server dan Oracle (sebelumnya BEA) WebLogic Server. Apache Tomcat HTTP Server adalah Web Server dan Oracle WebLogic adalah Application Server.

Dalam beberapa kasus, server terintegrasi secara ketat seperti IIS dan .NET Runtime. IIS adalah server web. Ketika dilengkapi dengan lingkungan .NET runtime, IIS mampu menyediakan layanan aplikasi.

Rutesh Makhijani
sumber
18
JBoss (sekarang WildFly) juga merupakan contoh terkenal dari server Aplikasi: D
KNU
4
Penjelasan yang bagus, karena kita dapat menggunakan server aplikasi daripada server web apa keuntungan memiliki server web dan server aplikasi baik untuk satu aplikasi? Dan kinerja bijaksana apa pilihan terbaik?
Lalinda Sampath
33
"Apache Tomcat HTTP Server adalah Web Server dan Oracle WebLogic adalah Application Server." Jadi pertama-tama, Apache Tomcat dan Apache HTTP server adalah 2 produk yang berbeda. Dan itu bukan pernyataan yang akurat. Apache Tomcat adalah server aplikasi. Tentu, itu dapat melayani halaman web juga, tetapi ini adalah server aplikasi untuk menggunakan Java. Saya menyadari banyak menggunakan istilah "server web" secara longgar. Tapi itu hanya membingungkan orang.
ironarm
18
Apache Tomcat bukan server web, ini adalah server aplikasi yang menjalankan servelet Java. Server HTTP Apache adalah server web. Tidak ada server bernama Apache Tomcat HTTP server.
Abhishek Pathak
3
-1 untuk membingungkan Apache Tomcat dan Apache HTTPD. stackoverflow.com/questions/30632/…
Bacon Bits
154

Ini adalah jawaban terinci dengan beberapa skenario untuk memahami dengan jelas perbedaan, kesamaan dan bagaimana keduanya bisa bekerja bersama dan semuanya

Server Aplikasi adalah istilah yang terkadang dicampur dengan server web . Sementara server web menangani terutama protokol HTTP , server aplikasi berurusan dengan beberapa protokol yang berbeda, termasuk, tetapi tidak terbatas, untuk HTTP .

Pekerjaan utama server Web adalah untuk menampilkan konten situs dan server aplikasi bertanggung jawab atas logika , interaksi antara pengguna dan konten yang ditampilkan. Server aplikasi bekerja bersama dengan server web, tempat satu menampilkan dan yang lainnya berinteraksi.

Informasi yang bergerak bolak-balik antara server dan kliennya tidak terbatas pada tampilan markup sederhana, tetapi untuk interaksi antara keduanya.

Dalam kebanyakan kasus, server membuat interaksi ini melalui API komponen , seperti J2EE (Java 2 Platform) , EJB (Enterprise JavaBean) dan model perangkat lunak aplikasi lain yang berbeda.

masukkan deskripsi gambar di sini

Sebuah contoh:

Cara terbaik untuk memahami perbedaan antara skenario di mana server aplikasi bekerja dengan server web versus skenario di mana tidak ada server aplikasi adalah melalui toko online.

Skenario 1: Server web tanpa server aplikasi

Anda memiliki toko online dengan hanya server web dan tidak ada server aplikasi. Situs ini akan menyediakan tampilan tempat Anda dapat memilih produk. Saat Anda mengirimkan kueri, situs melakukan pencarian dan mengembalikan hasil HTML kembali ke kliennya. Server web mengirimkan permintaan Anda langsung ke server database (bersabarlah, saya akan menjelaskan ini di nugget kami berikutnya) dan menunggu tanggapan. Setelah diterima, server web merumuskan respons ke dalam file HTML dan mengirimkannya ke browser web Anda. Komunikasi bolak-balik antara server dan server database ini terjadi setiap kali kueri dijalankan.

Skenario 2: Server web dengan server aplikasi

jika kueri yang ingin Anda jalankan sudah dilakukan sebelumnya dan tidak ada data yang berubah sejak saat itu, server akan menghasilkan hasilnya tanpa harus mengirim permintaan ke server database. Ini memungkinkan kueri real-time di mana klien kedua dapat mengakses info yang sama dan menerima informasi real-time dan andal tanpa mengirim kueri duplikat lain ke server database. Server pada dasarnya bertindak sebagai perantara antara server basis data dan server web. Hal ini memungkinkan informasi yang ditarik dapat digunakan kembali sementara dalam skenario pertama, karena info ini tertanam dalam halaman HTML khusus dan "disesuaikan", ini bukan proses yang dapat digunakan kembali. Klien kedua harus meminta info lagi dan menerima halaman HTML lainnya dengan info yang diminta - sangat tidak efisien.

Untuk mendukung berbagai tugas rumit ini, server ini harus memiliki redundansi, daya pemrosesan yang hebat, dan jumlah RAM yang tinggi untuk menangani semua data yang diambilnya secara real time.

Semoga ini membantu.

Durai Amuthan.H
sumber
10
Itu tidak akurat / membingungkan, bahkan untuk aplikasi web (yaitu istilah server aplikasi berlaku untuk aplikasi non-web). Mempertimbangkan hanya web: Server web menyertakan perangkat lunak (apache, nginx) untuk menangani permintaan web (http). Server aplikasi berisi / memaparkan aplikasi (mis. Kode php). Mereka mungkin mesin yang sama, mereka mungkin tidak - misalnya akan dianggap normal untuk memiliki nginx pada satu mesin (server web) meneruskan permintaan ke php-fpm pada mesin yang berbeda (server aplikasi) yang tidak dengan sendirinya memiliki Akses http (hanya mengekspos port untuk php-fpm itu sendiri).
AD7six
@ AD7six Server Web secara eksklusif menangani permintaan HTTP, sedangkan server aplikasi menangani logika bisnis untuk program aplikasi melalui sejumlah protokol termasuk HTTP.
Durai Amuthan.H
Maksud saya ada server aplikasi dapat menangani permintaan http, itu tidak berarti suatu persyaratan. the application server deals with several different protocols, including, but not limited, to HTTP<- yang mengatakan itu pasti menangani permintaan http - itu tidak akurat.
AD7six
6
Setelah membaca kembali contoh-contoh yang diberikan, saya tidak melihat kejelasan nyata di sini - deskripsi sebagian besar berkaitan dengan caching. Apa yang harus jelas adalah bahwa server web adalah perangkat lunak, aplikasi adalah perangkat lunak. jika mereka ditempatkan pada mesin yang sama mesin tersebut dapat dirujuk sesuka Anda. Jika mereka menggunakan mesin yang berbeda, itu normal untuk merujuk pada yang menjalankan server web sebagai server web, dan yang menjalankan aplikasi sebagai server aplikasi. Anda biasanya membagi berbagai hal sesuai dengan load dan load balancing. Secara keseluruhan saya menemukan jawaban ini tidak menambahkan sesuatu yang bermanfaat.
AD7six
@ AD7six Jawaban saya dimaksudkan untuk melengkapi jawaban lain yaitu jawaban orang lain sudah berarti apa yang Anda minta hanya merupakan perpanjangan untuk itu.
Durai Amuthan.H
136

Kedua istilah ini sangat umum, yang satu berisi yang lain dan sebaliknya dalam beberapa kasus.

  • Server web : menyajikan konten ke web menggunakan protokol http.

  • Server aplikasi : host dan memperlihatkan logika dan proses bisnis.

Saya pikir poin utamanya adalah server web memaparkan semuanya melalui protokol http, sedangkan server aplikasi tidak dibatasi untuk itu.

Yang mengatakan, dalam banyak skenario Anda akan menemukan bahwa server web sedang digunakan untuk membuat front-end dari server aplikasi, yaitu, memperlihatkan serangkaian halaman web yang memungkinkan pengguna untuk berinteraksi dengan aturan bisnis yang ditemukan dalam server aplikasi.

jmservera
sumber
66

Server web

Jalankan python -m 'SimpleHTTPServer'dan buka http: // localhost: 8080 . Apa yang Anda lihat adalah server web yang berfungsi. Server hanya melayani file melalui HTTP yang disimpan di komputer Anda. Poin kuncinya adalah semua ini dilakukan di atas protokol HTTP. Ada juga server FTP misalnya yang melakukan hal yang persis sama (melayani file yang disimpan) tetapi di atas protokol yang berbeda.

Server aplikasi

Katakanlah kita memiliki aplikasi kecil seperti di bawah ini (cuplikan dari Flask ).

@app.route('/')
def homepage():
    return '<html>My homepage</html>'

@app.route('/about')
def about():
    return '<html>My name is John</html>'

Program contoh kecil memetakan URL /ke fungsi homepage()dan /aboutke fungsi about().

Untuk menjalankan kode ini, kita memerlukan server aplikasi (mis. Gunicorn) - program atau modul yang dapat mendengarkan permintaan dari klien dan menggunakan kode kita, mengembalikan sesuatu secara dinamis. Dalam contoh ini kita hanya mengembalikan beberapa HTML yang sangat buruk.

Apa logika bisnis yang dibicarakan semua orang? Yah, karena URL memetakan ke suatu tempat khusus di basis kode kami, kami secara hipotesis menunjukkan beberapa logika tentang cara kerja program kami.


Rekap

server web - melayani file yang disimpan di suatu tempat (paling umum .css, .html, .js). Server web yang umum adalah Apache, Nginx atau bahkan SimpleHTTPServer Python.

server aplikasi - menyajikan file yang dihasilkan dengan cepat. Pada dasarnya sebagian besar server web memiliki semacam plugin atau bahkan datang dengan fungsi bawaan untuk melakukan itu. Ada juga server aplikasi yang ketat seperti Gunicorn (Python), Unicorn (Ruby), uWSGI (Python), dll.

Perhatikan bahwa Anda sebenarnya dapat membangun server web dengan kode dari server aplikasi. Ini dilakukan dalam beberapa kasus selama pengembangan di mana Anda tidak ingin memiliki trilyun server yang berbeda berjalan di komputer Anda.

Pithikos
sumber
Ini adalah jawaban terbaik dan paling ringkas. Saya bertanya-tanya apakah server web dapat dianggap sebagai bagian dari server aplikasi. Saat ini saya sedang memikirkannya sebagai server web seperti metode pengambil dan server aplikasi seperti metode pabrik (di mana URL adalah argumen konstruktor: D)
8
Uff .. Akhirnya, terima kasih telah memberikan perspektif Python. Bahasa agnostik seperti topik ini tampaknya, tidak. Seseorang yang belum pernah menggunakan EJB tidak akan memahami jawaban berorientasi Java dengan jelas.
Vikas
Terima kasih. "Untuk menjalankan kode ini, kami memerlukan server aplikasi", bisakah Anda menentukan server aplikasi untuk menjalankan program labu?
Tim
Ini adalah jawaban yang hampir sempurna
Ramy Farid
65

Seperti yang ditunjukkan Rutesh dan jmservera, perbedaannya adalah kabur. Secara historis, mereka berbeda, tetapi melalui 90-an dua kategori yang sebelumnya berbeda ini menggabungkan fitur dan secara efektif bergabung. Pada titik ini mungkin yang terbaik untuk membayangkan bahwa kategori produk "App Server" adalah superset ketat dari kategori "server web".

Beberapa sejarah. Pada hari-hari awal browser Mosaic dan konten hyperlink, di sana berkembang hal ini disebut "server web" yang melayani konten halaman web dan gambar melalui HTTP. Sebagian besar konten bersifat statis, dan protokol HTTP 1.0 hanyalah cara untuk mengirim file. Dengan cepat kategori "server web" berkembang untuk memasukkan kemampuan CGI - secara efektif meluncurkan proses pada setiap permintaan web untuk menghasilkan konten dinamis. HTTP juga semakin matang dan produk menjadi lebih canggih, dengan fitur caching, keamanan, dan manajemen. Seiring dengan perkembangan teknologi, kami mendapatkan teknologi server-side berbasis Java dari Kiva dan NetDynamics, yang akhirnya bergabung menjadi JSP. Microsoft menambahkan ASP, saya pikir pada tahun 1996, ke Windows NT 4.0. Server web statis telah mempelajari beberapa trik baru, sehingga itu efektif "

Dalam kategori paralel, server aplikasi telah berevolusi dan ada sejak lama. perusahaan mengirimkan produk untuk Unix seperti Tuxedo, TopEnd, Encina yang secara filosofis berasal dari manajemen aplikasi Mainframe dan lingkungan pemantauan seperti IMS dan CICS. Penawaran Microsoft adalah Microsoft Transaction Server (MTS), yang kemudian berkembang menjadi COM +. Sebagian besar produk ini menetapkan protokol komunikasi khusus produk "tertutup" untuk menghubungkan klien "gemuk" ke server. (Untuk Encina, protokol komunikasi adalah DCE RPC; untuk MTS itu adalah DCOM; dll.) Pada 1995/96, produk server aplikasi tradisional ini mulai menanamkan kemampuan komunikasi HTTP dasar, pada awalnya melalui gateway. Dan garis-garis itu mulai kabur.

Server web menjadi semakin dewasa sehubungan dengan penanganan beban yang lebih tinggi, lebih banyak konkurensi, dan fitur yang lebih baik. Server aplikasi memberikan semakin banyak kemampuan komunikasi berbasis HTTP.

Pada titik ini garis antara "server aplikasi" dan "server web" adalah yang kabur. Tetapi orang terus menggunakan istilah secara berbeda, sebagai masalah penekanan. Ketika seseorang mengatakan "server web" Anda sering berpikir HTTP-centric, UI web, aplikasi yang berorientasi. Ketika seseorang mengatakan "Server aplikasi" Anda mungkin berpikir "beban lebih berat, fitur perusahaan, transaksi dan antrian, komunikasi multi-saluran (HTTP + lebih). Tetapi sering kali itu adalah produk yang sama yang melayani kedua set persyaratan beban kerja.

  • WebSphere, "server aplikasi" IBM memiliki server web yang dibundel sendiri.
  • WebLogic, server aplikasi tradisional lainnya, juga.
  • Windows, yang merupakan Server Aplikasi Microsoft (selain sebagai File & Print Server, Media Server, dll.), Bundel IIS.
Cheeso
sumber
Jawabannya sangat jelas. Tetapi bisakah Anda menguraikan sedikit lebih banyak tentang 'trik baru' yang memungkinkan server web tampil sebagai server aplikasi.
Quazi Irfan
3
"Trik baru" menyiratkan, menjalankan logika sisi server. Logika skrip seperti ASP atau lainnya. "Server web" asli baru saja mengembalikan konten statis, dari sistem file. Kita sudah jauh dari itu, sekarang.
Cheeso
36

Seperti yang banyak dikatakan sebelumnya, server web menangani petisi HTTP, sementara server aplikasi menangani petisi untuk komponen yang didistribusikan. Jadi, mungkin cara termudah untuk memahami perbedaannya adalah dengan membandingkan kedua produk dalam hal lingkungan pemrograman yang mereka tawarkan.

Server Web -> Lingkungan Pemrograman

IIS: ASP (.NET)

Tomcat: Servlet

Jetty: Servlet

Apache: Php, CGI

Server Aplikasi -> Lingkungan Pemrograman

MTS: COM +

WS: EJB

JBoss: EJB

Server Aplikasi WebLogic: EJB

Perbedaan penting adalah bahwa server aplikasi mendukung beberapa teknologi komponen terdistribusi , menyediakan fitur seperti pemanggilan jarak jauh dan transaksi terdistribusi, seperti EJB di dunia Java atau COM + pada platform Microsoft. Server Http sering mendukung beberapa lingkungan pemrograman yang lebih sederhana, sering scripting, seperti ASP (.NET) dalam kasus berbasis Microsoft atau Servlet, termasuk JSP dan banyak lainnya dalam kasus Java atau PHP dan CGI dalam kasus Apache.

Kemampuan lain seperti load-balancing, clustering, sesi-failover, koneksi dll koneksi yang dulu berada di ranah server aplikasi, menjadi tersedia di server web juga secara langsung atau melalui beberapa produk pihak ketiga.

Akhirnya, perlu dicatat bahwa gambar lebih jauh terdistorsi dengan "wadah ringan" seperti Spring Framework, yang sering melengkapi tujuan server aplikasi dengan cara yang lebih sederhana dan tanpa infrastruktur server aplikasi. Dan karena aspek distribusi dalam aplikasi bergerak dari komponen terdistribusi ke paradigma layanan dan arsitektur SOA, semakin sedikit ruang yang tersisa untuk server aplikasi tradisional.

Dan
sumber
Bisakah salah satu server aplikasi yang Anda daftarkan digunakan sebagai server web http seperti apache http?
LearningMath
22

Perbedaan utama antara server Web dan server aplikasi adalah bahwa server web dimaksudkan untuk melayani halaman statis misalnya HTML dan CSS, sedangkan Server Aplikasi bertanggung jawab untuk menghasilkan konten dinamis dengan mengeksekusi kode sisi server misalnya JSP, Servlet atau EJB.

Mana yang harus saya gunakan?
Setelah Anda mengetahui perbedaan antara server web dan aplikasi dan wadah web, mudah untuk mengetahui kapan menggunakannya. Anda memerlukan web serverApache HTTPD seperti jika Anda melayani halaman web statis. Jika Anda memiliki aplikasi Java hanya dengan JSP dan Servlet untuk menghasilkan konten dinamis maka Anda perlu web containersseperti Tomcat atau Jetty. Sementara, jika Anda memiliki aplikasi Java EE menggunakan EJB, transaksi terdistribusi, pengiriman pesan, dan fitur mewah lainnya daripada yang Anda perlukan lengkap application serverseperti JBoss, WebSphere atau Oracle WebLogic.

Wadah web adalah bagian dari Server Web dan Server Web adalah bagian dari Server Aplikasi.

Server Aplikasi

Server Web terdiri dari wadah web, sedangkan Server Aplikasi terdiri dari wadah web serta wadah EJB.

Arun Raaj
sumber
"Web Server terdiri dari wadah web": sesuai youtu.be/ATObcDPLa40 video ini, itu salah
Vyshnav Ramesh Thrissur
20

Singkatnya server web adalah server yang melayani halaman web untuk pengguna melalui http. Sebuah server aplikasi adalah server yang host logika bisnis untuk sistem. Ini sering menjadi tuan rumah baik proses batch / berjalan lama dan / atau layanan interop tidak dimaksudkan untuk konsumsi manusia (layanan REST / JSON, SOAP, RPC, dll).

C. Ross
sumber
2
Apa arti istilah 'host logika bisnis'? Bagaimana cara kerjanya?
TwiggedToday
Apakah logika bisnis terpapar ke klien melalui layanan web?
TwiggedToday
Ini dapat dilayani melalui layanan web, atau dapat dilayani oleh antarmuka lain (TCP, MQ, file flat pada share (saya tidak merekomendasikan yang terakhir)).
C. Ross
Ini bisa menyesatkan. Server aplikasi tidak meng-host apa pun. Kode Anda meng-host logika bisnis dan server aplikasi berfungsi sebagai perekat antara itu dan halaman web yang diminta pengguna.
Pithikos
18

Server Web secara eksklusif menangani permintaan HTTP / HTTPS. Ini melayani konten ke web menggunakan protokol HTTP / HTTPS.

Server aplikasi menyajikan logika bisnis ke program aplikasi melalui sejumlah protokol, mungkin termasuk HTTP. Program aplikasi dapat menggunakan logika ini seperti halnya memanggil metode pada objek. Dalam kebanyakan kasus, server mengekspos logika bisnis ini melalui API komponen, seperti model komponen EJB (Enterprise JavaBean) yang ditemukan di server aplikasi Java EE (Java Platform, Enterprise Edition). Poin utama adalah bahwa server web memaparkan semuanya melalui protokol http, sedangkan server aplikasi tidak dibatasi untuk itu. Server aplikasi dengan demikian menawarkan lebih banyak layanan daripada server web yang biasanya meliputi:

  • API (milik atau tidak)
  • Load balancing, fail over ...
  • Manajemen siklus hidup objek
  • Manajemen negara (sesi)
  • Manajemen sumber daya (mis. Kumpulan koneksi ke basis data)

Sebagian besar server aplikasi memiliki Web Server sebagai bagian integral dari mereka, itu berarti App Server dapat melakukan apa pun yang mampu dilakukan oleh Server Web. Selain itu, App Server memiliki komponen dan fitur untuk mendukung layanan tingkat Aplikasi seperti Connection Pooling, Object Pooling, Dukungan Transaksi, layanan Pesan, dll.

Server aplikasi dapat (tetapi tidak selalu) berjalan di server web untuk menjalankan logika program, yang hasilnya kemudian dapat disampaikan oleh server web. Itu salah satu contoh skenario server web / server aplikasi. Contoh yang baik di dunia Microsoft adalah hubungan Internet Information Server / SharePoint Server. IIS adalah server web; SharePoint adalah server aplikasi. SharePoint duduk "di atas" IIS, mengeksekusi logika spesifik, dan menyajikan hasilnya melalui IIS. Di dunia Java, ada skenario yang mirip dengan Apache dan Tomcat, misalnya.

Karena server web sangat cocok untuk konten statis dan server aplikasi untuk konten dinamis, sebagian besar lingkungan produksi memiliki server web yang bertindak sebagai proxy terbalik ke server aplikasi. Itu berarti saat melayani permintaan halaman, konten statis seperti gambar / html statis dilayani oleh server web yang menginterpretasikan permintaan tersebut. Menggunakan semacam teknik penyaringan (sebagian besar ekstensi sumber daya yang diminta) server web mengidentifikasi permintaan konten dinamis dan secara transparan meneruskan ke server aplikasi.

Contoh konfigurasi tersebut adalah Apache HTTP Server dan BEA WebLogic Server. Apache HTTP Server adalah Web Server dan BEA WebLogic adalah Application Server. Dalam beberapa kasus, server terintegrasi secara ketat seperti IIS dan .NET Runtime. IIS adalah server web. ketika dilengkapi dengan lingkungan .NET runtime IIS mampu menyediakan layanan aplikasi


Web Server                               Programming Environment
Apache                                   PHP, CGI
IIS (Internet Information Server)        ASP (.NET)
Tomcat                                   Servlet
Jetty                                    Servlet

Application Server                       Programming Environment
WAS (IBM's WebSphere Application Server) EJB
WebLogic Application Server (Oracle's)   EJB
JBoss AS                                 EJB
MTS                                      COM+
Parv
sumber
2
Ada beberapa yang menyebutkan hal-hal lain, Tapi banyak yang kelihatannya seperti penjiplakan bagi saya. Suka daftar di bagian akhir, seolah disalin dari pos Dan. Dan "... membalikkan proxy ke server aplikasi ..." Juga berpisah menggunakan HTTP Server dan BEA WebLogic Server sebagai contoh di akhir yang hampir sama dengan yang ditulis Rutesh Makhijani.
bocor
11

Perbatasan antara keduanya semakin tipis.

Server aplikasi memaparkan logika bisnis kepada klien. Itu berarti server aplikasi terdiri dari sekumpulan metode (tidak hanya secara eksklusif, bahkan dapat berupa komputer jaringan yang memungkinkan banyak orang untuk menjalankan perangkat lunak di dalamnya) untuk melakukan logika bisnis. Jadi itu hanya akan menampilkan hasil yang diinginkan, bukan konten HTML. (mirip dengan pemanggilan metode). Jadi tidak sepenuhnya berbasis HTTP.

Tetapi server web meneruskan konten HTML ke browser web (Berbasis HTTP ketat). Server web hanya mampu menangani sumber daya web statis, tetapi kemunculan skrip sisi server memungkinkan server web untuk menangani konten dinamis juga. Di mana server web menerima permintaan dan mengarahkannya ke skrip yang relevan (PHP, JSP, skrip CGI, dll.) Untuk MENCIPTAKAN konten HTML yang akan dikirim ke klien. Setelah konten diterima, server web akan mengirim halaman HTML ke klien.

Namun, saat ini kedua server ini digunakan bersama. Di mana server web menerima permintaan dan kemudian memanggil skrip untuk membuat konten HTML. Kemudian, skrip akan kembali memanggil LOGIC server aplikasi (mis. Ambil detail transaksi) untuk mengisi konten HTML.

Jadi kedua server digunakan secara efektif.

Oleh karena itu .... Kita dapat dengan aman mengatakan bahwa saat ini, dalam sebagian besar kasus, server web digunakan sebagai bagian dari server aplikasi. TAPI secara teatrik BUKAN demikian.

Saya telah membaca banyak artikel tentang topik ini dan menemukan artikel ini cukup berguna.

Dilruk
sumber
10

Server aplikasi biasanya dirancang dan digunakan untuk memfasilitasi proses yang berjalan lebih lama yang juga akan lebih intensif sumber daya.

Server web digunakan untuk semburan singkat yang tidak padat sumber daya, umumnya. Ini sebagian besar untuk memfasilitasi melayani lalu lintas berbasis web.

Yusuf
sumber
9

Dalam istilah Java, ada satu lagi: wadah web (atau lebih tepatnya, wadah servlet). Ini, katakanlah, di antara server web dan server aplikasi.

Wadah web dalam istilah Java adalah server aplikasi yang pada dasarnya hanya mengimplementasikan bagian JSP / Servlet dari Java EE dan tidak memiliki beberapa bagian inti Java EE, seperti dukungan EJB. Contohnya adalah Apache Tomcat.

BalusC
sumber
8

Server aplikasi adalah mesin (proses yang dapat dieksekusi berjalan pada beberapa mesin, sebenarnya) yang "mendengarkan" (pada saluran apa pun, menggunakan protokol apa pun), untuk permintaan dari klien untuk layanan apa pun yang disediakannya, dan kemudian melakukan sesuatu berdasarkan permintaan tersebut. (mungkin atau mungkin tidak melibatkan istirahat kepada klien)

Server Web adalah proses yang berjalan pada mesin yang "mendengarkan" secara khusus pada Saluran TCP / IP menggunakan salah satu protokol "internet", (http, https, ftp, dll.) Dan melakukan apa pun yang dilakukannya berdasarkan permintaan yang masuk tersebut. .. Secara umum, (seperti yang didefinisikan sebelumnya), ia mengambil / membuat dan mengembalikan halaman web html ke klien, baik diambil dari file html statis di server, atau dibuat secara dinamis berdasarkan parameter dalam permintaan klien yang masuk.

Charles Bretana
sumber
3
dapatkah Anda memberikan contoh untuk tempat mandi.
frewper
Bisakah Anda memberikan contoh keduanya? Terima kasih.
LearningMath
8

Server web menjalankan protokol HTTP untuk melayani halaman web. Server aplikasi dapat (tetapi tidak selalu) berjalan di server web untuk menjalankan logika program, yang hasilnya kemudian dapat disampaikan oleh server web. Itu salah satu contoh skenario server web / server aplikasi.

Contoh yang baik di dunia Microsoft adalah hubungan Internet Information Server / SharePoint Server. IIS adalah server web; SharePoint adalah server aplikasi. SharePoint duduk "di atas" IIS, mengeksekusi logika spesifik, dan menyajikan hasilnya melalui IIS.

Di dunia Java, ada skenario yang mirip dengan Apache dan Tomcat, misalnya.

Robert S.
sumber
8

Di sisi pertama, server web menyajikan konten web (konten HTML dan statis) melalui protokol HTTP. Di sisi lain, server aplikasi adalah wadah di mana Anda dapat membangun dan mengekspos logika bisnis dan proses ke aplikasi klien melalui berbagai protokol termasuk HTTP dalam arsitektur n-tier.

Server aplikasi dengan demikian menawarkan lebih banyak layanan daripada server web yang biasanya meliputi:

  • API (milik atau tidak)
  • Manajemen siklus hidup objek,
  • Manajemen negara (sesi),
  • Manajemen sumber daya (mis. Kumpulan koneksi ke basis data),
  • Load balancing, fail over ...

AFAIK, ATG Dynamo adalah salah satu server aplikasi pertama di akhir 90-an (sesuai dengan definisi di atas). Pada awal 2000, itu adalah pemerintahan beberapa server aplikasi berpemilik seperti ColdFusion (CFML AS), BroadVision (Server-side JavaScript AS), dll. Tetapi tidak ada yang benar-benar selamat dari era server aplikasi Java.

Thivent Pascal
sumber
6

Pemahaman dasar:

Dalam arsitektur server klien

Server:> Yang melayani permintaan.

Klien:> Yang mengkonsumsi layanan.

Server web & Server aplikasi adalah aplikasi perangkat lunak yang berfungsi sebagai server untuk klien mereka.

Mereka mendapatkan nama mereka berdasarkan tempat penggunaan mereka.

Web server :> serve web content
           :> Like Html components
           :> Like Javascript components
           :> Other web components like images,resource files
           :> Supports mainly web protocols like http,https.
           :> Supports web Request & Response formats.

Penggunaan -

      we require low processing rates,

      regular processing practices involves.

Misalnya: Semua server flat umumnya tersedia yang siap pakai yang hanya menyajikan konten berbasis web.

Application server :> Serve application content/component data(Business data).
                   :> These are special kind which are custom written 
                      designed/engineered for specific
                      purpose.some times fully unique in 
                      their way and stands out of the crowd. 

                   :> As these serves different types of data/response contents
                   :> So we can utilize these services for mobile client,web 
                      clients,intranet clients. 
                   :> Usually application servers are services offered on different 
                      protocols.    
                   :> Supports different Request& Response formats.

Penggunaan -

      we require multi point processing,

      specialized processing techniques involves like for AI.

Misalnya: Google memetakan server, server pencarian Google, server Google docs, server Microsoft 365, server visi komputer Microsoft untuk AI.

Kita dapat menganggap mereka sebagai tingkatan / Hierarki dalam arsitektur 4-tier / n-tier.

 So they can provide 
                    load balancing,
                    multiple security levels,
                    multiple active points,
                    even they can provide different request processing environments.

Silakan ikuti tautan ini untuk analogi arsitektur standar:

https://docs.microsoft.com/en-us/previous-versions/msp-np/ee658120(v%3dpandp.10)

chandra rv
sumber
5

Perbedaan terbesar adalah Server Web menangani permintaan HTTP, sementara server Aplikasi akan menjalankan logika bisnis pada sejumlah protokol.

MarkPowell
sumber
5

Sebenarnya Apache adalah server web dan Tomcat adalah server aplikasi. Ketika permintaan HTTP datang ke server web. Kemudian konten statis dikirim kembali ke browser oleh server web. Apakah ada dan logika dilakukan, maka permintaan itu kirim ke server aplikasi. setelah memproses logika maka respons kirim ke server web dan kirim ke klien.

Amila
sumber
4

Semua hal di atas hanya menyulitkan sesuatu yang sangat sederhana. Server aplikasi berisi server web, server aplikasi hanya memiliki beberapa tambahan / ekstensi daripada server web standar. Jika Anda melihat TomEE sebagai contoh:

CDI - Apache OpenWebBeans
EJB - Apache OpenEJB
JPA - Apache OpenJPA
JSF - Apache MyFaces
JSP - Apache Tomcat
JSTL - Apache Tomcat
JTA - Apache Geronimo Transaction
Servlet - Apache Tomcat
Javamail - Apache Geronimo JavaMail
Bean Validation - Apache BVal

Anda akan melihat bahwa Tomcat (Web container / server) hanyalah alat lain di gudang aplikasi server. Anda bisa mendapatkan JPA dan teknologi lainnya di server web juga jika Anda mau, tetapi server aplikasi hanya mengemas semua hal ini untuk kenyamanan Anda. Untuk sepenuhnya diklasifikasikan sebagai server aplikasi, Anda pada dasarnya harus mematuhi daftar alat yang ditetapkan oleh beberapa standar.

Gerrit Brink
sumber
2

Tidak perlu garis pemisah yang jelas. Saat ini, banyak program menggabungkan elemen dari keduanya - melayani permintaan http (server web) dan menangani logika bisnis (server aplikasi)

Peter Recore
sumber
2

Dari https://en.wikipedia.org/wiki/Web_server

Sebuah web server adalah sebuah sistem komputer yang proses permintaan melalui HTTP, protokol jaringan dasar yang digunakan untuk mendistribusikan informasi di World Wide Web. Istilah ini dapat merujuk ke seluruh sistem, atau khusus untuk perangkat lunak yang menerima dan mengawasi permintaan HTTP .

Dari https://en.wikipedia.org/wiki/Application_server#Application_Server_definition

Server aplikasi berjalan di belakang Server web (mis. Apache atau Microsoft Internet Information Services (IIS)) dan (hampir selalu) di depan database SQL (misalnya PostgreSQL, MySQL, atau Oracle).

Aplikasi web adalah kode komputer yang dijalankan di atas server aplikasi dan ditulis dalam bahasa yang didukung server aplikasi dan memanggil pustaka runtime dan komponen yang ditawarkan server aplikasi .

Manohar Reddy Poreddy
sumber
2

Server aplikasi dan server web keduanya digunakan untuk meng-host aplikasi web. Web Server berurusan dengan wadah web di sisi lain Application Server berurusan dengan wadah web serta wadah EJB (Enterprise JavaBean) atau wadah COM + untuk Microsoft dot Net.

Web Server dirancang untuk menyajikan Konten statis HTTP seperti HTML, gambar, dll. Dan untuk konten dinamis, ada plugin untuk mendukung bahasa scripting seperti Perl, PHP, ASP, JSP dll dan terbatas pada protokol HTTP. Server di bawah ini dapat menghasilkan konten HTTP dinamis.

Lingkungan Pemrograman Server Web:

IIS: ASP (.NET)

Apache Tomcat: Servlet

Jetty: Servlet

Apache: Php, CGI

Application Server dapat melakukan apa pun yang mampu dilakukan oleh Server Web dan mendengarkan menggunakan protokol apa pun serta App Server memiliki komponen dan fitur untuk mendukung layanan tingkat Aplikasi seperti Connection Pooling, Objecting Pooling, Dukungan Transaksi, Layanan Pesan, dll.

Lingkungan Pemrograman Aplikasi Server:

MTS: COM +

WS: EJB

JBoss: EJB

Server Aplikasi WebLogic: EJB

Bablu Ahmed
sumber
1

Meskipun mungkin ada tumpang tindih antara keduanya (beberapa server web bahkan dapat digunakan sebagai server aplikasi) perbedaan terbesar IMHO adalah dalam model pemrosesan dan manajemen sesi:

Dalam model pemrosesan server Web, fokusnya adalah pada penanganan permintaan; gagasan "sesi" cukup virtual. Dengan kata lain "sesi" disimulasikan dengan mentransfer representasi keadaan antara klien dan server (karenanya REST) ​​dan / atau membuat serialisasi ke penyimpanan persisten eksternal (SQL Server, Memcached dll).

Dalam server Aplikasi, sesi biasanya lebih eksplisit dan sering mengambil bentuk objek yang hidup dalam memori server aplikasi untuk seluruh durasi "sesi".

zvolkov
sumber
0

Itu tergantung pada arsitektur spesifik. Beberapa server aplikasi mungkin menggunakan protokol web secara asli (XML / RPC / SOAP melalui HTTP), jadi ada sedikit perbedaan teknis. Biasanya server web menghadap pengguna, melayani berbagai konten melalui HTTP / HTTPS, sementara server aplikasi tidak menghadap pengguna dan dapat menggunakan protokol non-standar atau non-routable. Tentu saja dengan RIA / AJAX, perbedaannya dapat dikaburkan lebih lanjut, hanya melayani konten non-HTML (JSON / XML) untuk klien yang memompa layanan akses jarak jauh tertentu.

Cade Roux
sumber
0

IMO, sebagian besar tentang memisahkan masalah.

Dari sudut pandang teknis murni, Anda dapat melakukan segalanya (konten web + logika bisnis) dalam satu server web. Jika Anda melakukan itu, maka informasi yang akan tertanam di dalamnya meminta konten HTML. Apa dampaknya?

Misalnya, bayangkan Anda memiliki 2 aplikasi berbeda yang merender konten HTML yang sama sekali berbeda di browser. Jika Anda ingin memisahkan logika bisnis menjadi server aplikasi daripada Anda dapat menyediakan server web yang berbeda mencari data yang sama di server aplikasi melalui skrip. Namun, Jika Anda tidak akan memisahkan logika dan menyimpannya di server-web, setiap kali Anda mengubah model bisnis Anda, Anda akhirnya akan mengubahnya di setiap server-server tunggal yang Anda miliki yang akan membutuhkan waktu lebih lama, kurang dapat diandalkan dan rawan kesalahan.

stdout
sumber