<<

JIMS 8i-International Journal of Informasi, Komunikasi dan Teknologi Komputasi (IJICCT)

Python sebagai Alat Web Server Pengembangan Aplikasi

Sheetal Taneja 1, Pratibha R. Gupta 2

permintaan khusus, ada program yang berjalan pada akhir server yang ABSTRAK melakukan tugas ini. program tersebut adalah aplikasi Web diistilahkan [2]. Dengan demikian, aplikasi web adalah program yang berjalan di server aplikasi Dengan evolusi web, beberapa bahasa kompetitif seperti , PHP, Python, dan dipanggil menggunakan browser melalui Internet. Ruby yang menangkap perhatian para pengembang. Baru-baru Python telah muncul sebagai populer dan bahasa pemrograman web yang lebih disukai, karena kemudahannya untuk kode dan kemudahan belajar. Menjadi bahasa Aplikasi web menawarkan beberapa keuntungan atas aplikasi tradisional yang yang fleksibel, diperlukan untuk diinstal pada setiap komputer host yang ingin ia menawarkan perkembangan cepat berbasis web menggunakannya [3]. aplikasi web tidak dikenakan penerbitan dan distribusi aplikasi. Ini menawarkan pengembangan menggunakan CGI dan WSGI. biaya yang bertentangan dengan aplikasi tradisional di mana perangkat lunak pengembangan web dengan Python dibantu oleh kerangka kerja yang kuat seperti (aplikasi) diterbitkan dengan menggunakan CD dan didistribusikan. Mereka , , Piramida, dan yang mendukung Python. Jadi Python tidak perlu diinstal pada setiap client host; bukan mereka ditempatkan di berjanji untuk muncul sebagai salah satu bahasa pilihan yang lebih disukai untuk server pusat dan diakses oleh sejumlah besar klien. Sejak aplikasi web aplikasi web. dikelola secara terpusat, update aplikasi dan backup data dapat dilakukan dengan mudah. Aplikasi web yang mudah terlepas diakses dari batas-batas KATA KUNCI ruang dan waktu. Karena, mereka diakses melalui browser, platform tertentu Python, Web server pengembangan aplikasi, kerangka kerja, WSGI, CGI, mengakses mereka tidak masalah, dan dengan demikian mereka PHP, Ruby menyediakan kompatibilitas cross-platform. Meskipun di atas kelebihan yang disebutkan, aplikasi web memiliki beberapa keterbatasan. konektivitas internet 1. PERKENALAN dan ketersediaan server diperlukan untuk mengakses aplikasi web melalui browser. Namun, mengakses mereka melalui Internet my mengambil lebih

Web adalah gudang berkembang pesat sumber daya. Internet digunakan sebagai media untuk banyak waktu dibandingkan dengan aplikasi yang terinstal pada sistem host. mengakses sumber daya tersebut. arsitektur web terutama terdiri dari dua entitas, yaitu client dan Juga, aplikasi web memerlukan browser web yang kompatibel. Karena server [1]. Web client adalah sebuah aplikasi (browser) pada mesin host yang mendesak sumber daya mereka dikerahkan di web, mereka rentan terhadap beberapa serangan ini, dan web server adalah mesin di web yang bertanggung jawab untuk memenuhi permintaan yang Internet. dikeluarkan oleh klien. Hypertext Transfer Protocol (HTTP) adalah yang paling protokol populer yang digunakan oleh klien dan server untuk komunikasi web. Dalam web statis, masalah browser permintaan

HTTP ke server HTTP, yang pencarian untuk sumber daya yang diperlukan dalam database-nya dan kembali sebagai respon HTTP. Untuk menghindari masalah kompatibilitas, setiap permintaan yang dikeluarkan oleh browser dalam bentuk URL (Uniform Resource Locator). Protokol URL mendefinisikan Python telah menemukan penggunaannya dalam berbagai aplikasi karena aturan untuk komunikasi antara client dan server. Ini terdiri dari nama host (alamat IP) yang membantu kesederhanaannya. Kini telah muncul sebagai bahasa pemrograman web populer dalam mengidentifikasi sistem server di web, nomor port yang menentukan layanan (misalnya, FTP, karena fungsionalitas yang ditawarkan oleh itu. Menjadi bahasa yang fleksibel, itu layanan email) pada server yang harus merespon permintaan, dan jalan akses dari sumber daya adalah mendapatkan perhatian dari pengembang web. Python memudahkan tugas

(halaman web) pada server. Web di mana tanggapan yang sudah disimpan dalam database server pemrograman web dengan menawarkan kerangka web yang membantu dalam dalam bentuk halaman web statis disebut web statis. Namun, respon dikembalikan oleh server ke klien pengembangan web yang cepat di mana pengembang tidak perlu program dari awal dapat dihasilkan dengan cepat tergantung pada permintaan klien. Sebagai contoh, query disediakan [4]. Sementara beberapa dari kerangka kerja ini memberikan dukungan untuk setiap untuk google search engine secara dinamis akan menghasilkan halaman web dari hasil diindeks. web komponen bangunan, yang lain menyediakan fungsionalitas yang diperlukan minimal. seperti ini disebut web dinamis. Sejak untuk menghasilkan balasan, server perlu proses user- yang layanan email) pada server yang harus menanggapi permintaan, dan jalan akses dari sumber daya

(halaman web) pada server. Web di mana tanggapan yang sudah disimpan dalam database server dalam bentuk halaman web statis disebut web statis. Namun, respon dikembalikan oleh server ke klien Karena perkembangan internet, web berkembang dengan beberapa aplikasi web dapat dihasilkan dengan cepat tergantung pada permintaan klien. Sebagai contoh, query disediakan katering untuk kebutuhan sejumlah besar pengguna. Beberapa aplikasi web yang untuk google search engine secara dinamis akan menghasilkan halaman web dari hasil diindeks. web umum digunakan adalah webmail, Wikipedia, Google Apps, dan Microsoft Office seperti ini disebut web dinamis. Sejak untuk menghasilkan balasan, server perlu proses user- yang Live. Beberapa perusahaan besar seperti Google, Microsoft, Facebook, Twitter, layanan email) pada server yang harus menanggapi permintaan, dan jalan akses dari sumber daya Youtube, dan Amazon sangat bergantung pada aplikasi web. arsitektur aplikasi (halaman web) pada server. Web di mana tanggapan yang sudah disimpan dalam database server Web adalah arsitektur tiga-tier [5] seperti yang ditunjukkan pada Gambar 1. Tingkat dalam bentuk halaman web statis disebut web statis. Namun, respon dikembalikan oleh server ke klien pertama adalah klien dapat dihasilkan dengan cepat tergantung pada permintaan klien. Sebagai contoh, query disediakan untuk google search engine secara dinamis akan menghasilkan halaman web dari hasil diindeks. web seperti ini disebut web dinamis. Sejak untuk menghasilkan balasan, server perlu proses user- yang respon dikembalikan oleh server ke klien dapat dihasilkan dengan cepat tergantung pada permintaan klien. Sebagai contoh, query disediakan untuk google search engine secara dinamis akan menghasilkan halaman web dari hasil diindeks. web seperti ini disebut web dinamis. Sejak untuk menghasilkan balasan, server perlu proses user- yang respon dikembalikan oleh server ke klien dapat dihasilkan dengan cepat tergantung pada permintaan klien. Sebagai contoh, query disediakan untuk google search engine secara dinamis akan menghasilkan halaman web dari hasil diindeks. web seperti ini disebut web dinamis. Sejak untuk menghasilkan balasan, server perlu proses user- yang

______1 Dyal Singh College, Departemen Ilmu Komputer, Universitas Delhi 2 Sri Aurobindo College,

Departemen Ilmu Komputer, Universitas Delhi Email: 1 [email protected] , . 2 [email protected]

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 77

jurnal ini dikutip sebagai: JIMS 8i-Int'l J. dari Inf. Comm. & Computing Technology (IJICCT) JIMS 8i-International Journal of Informasi, Komunikasi dan Teknologi Komputasi (IJICCT)

yang merupakan browser web yang menerjemahkan konten statis / dinamis HTTPServer tersedia di dalamnya. Dalam modul yang sama, handler dasar dikembalikan oleh server, tingkat menengah adalah server yang menggunakan bahasa disebut BASEHTTPRequestHandler tersedia tetapi hanya menawarkan fungsi web dinamis dan alat-alat seperti Python, PHP, Ruby, ASP.NET untuk pengembangan untuk mengambil input client. SimpleHTTPRequestHandler ditemukan di aplikasi web yang menangani permintaan pengguna tertentu, dan mengembalikan data. SimpleHTTPServer penawaran modul fungsi GET tambahan [7]. Metode GET tingkat ketiga adalah database yang menyediakan sarana penyimpanan. digunakan untuk mengambil dokumen yang diperlukan dari database. Parameter metode GET adalah bagian dari URL. Mirip dengan GET metode adalah metode POST yang digunakan untuk memperbarui data. parameter POST termasuk dalam tubuh dokumen [8]. CGIHTTPRequestHandler ditemukan di CGIHTTPServer modul mengambil SimpleHTTPRequestHandler Permintaan HTTP dan menyediakan fungsionalitas tambahan dari metode POST [7]. Data

HTTP Balas

DATABASE KLIEN SERVER Ketika web server menerima permintaan klien melalui metode GET atau POST, itu memanggil aplikasi web, dan kembali halaman HTML yang Gambar 1 Arsitektur Aplikasi Web dihasilkan secara dinamis ke klien. Proses ini terjadi melalui CGI. CGI adalah Common Gateway Interface, yang bertindak sebagai antarmuka antara server Web Development melibatkan pemrograman baik klien dan sisi server. dan program aplikasi [7] [9] [10]. Gambar 2 menyajikan ikhtisar dari kerja CGI Pemrograman di sisi server dikaitkan dengan aplikasi web menulis, [7]. aplikasi CGI digambarkan dalam Gambar dapat menggunakan database menyediakan situs web, halaman web, dll pemrograman di sisi client dikaitkan untuk penyimpanan data dan tujuan pengambilan. dengan mengembangkan alat atau interface untuk mengakses ini web aplikasi, situs atau halaman. Server bahasa pemrograman sisi termasuk Python, PHP, Ruby, ASP.NET, Java, CGI (C, ). Klien bahasa pemrograman sisi termasuk HTML, CSS, dan Javascript [6]. Permintaan HTTP Memohon (Lengkap CGI Bentuk) CGI Aplikasi Sisa kertas dibagi menjadi tiga bagian. Bagian pengembangan web 2 membahas HTTP Balas menggunakan Python melalui CGI, WSGI, dan kerangka kerja Python. Bagian 3 (CGI membandingkan Python dengan bahasa pemrograman web populer, PHP dan CLIENT (aplikasi CGI aplikasi balasan) CGI Ruby. Bagian 4 menyimpulkan kertas dengan memberikan ringkasan. balasan)

SERVER

2. WEB DEVELOPMENT SERVER APLIKASI Gambar 2 Kerja CGI

SEBUAH. CGI dan WSGI - Web Server Pengembangan Aplikasi Gambar 3 menggambarkan bentuk HTML (Form.html) yang petunjuknya yang menggunakan Python Standard Library pemakai untuk itu memasukkan. Python CGI naskah (CGIFormResponse.py) dipanggil setelah mengirimkan formulir. Perlu dicatat A.1 CGI bahwa server mendengarkan permintaan pengguna harus berjalan sepanjang waktu. Untuk mencapai hal ini, Anda mungkin menjalankan server untuk versi Dalam web statis, dokumen (halaman web statis) melalui web dapat dikembalikan Python2.x dengan mengeksekusi CGIHTTPServer.py terdaftar di Lib direktori dengan mudah ke klien pada permintaannya. Namun, web dinamis melibatkan folder Python2x dari command prompt. Sebagai contoh, menghasilkan jawaban dengan cepat berdasarkan input pengguna (seperti input dalam bentuk a). Sejak, server memiliki kemampuan untuk hanya mengambil permintaan pengguna dan untuk kembali respon; tidak dapat menangani data pengguna tertentu C: \ Python27 \ Lib> CGIHTTPServer.py Melayani dan menghasilkan respon. Jadi, menggunakan aplikasi web untuk respon pembangkit HTTP pada 0.0.0.0 port 8000 ... dinamis.

Dapat dicatat bahwa pernyataan di atas akan berjalan HTTP server pada nomor port 8000. Namun, Anda juga dapat menjalankan CGIHTTPServer pada port Penciptaan web server membutuhkan server basis dan handler. Server basis tertentu. Server yang paling umum digunakan adalah Apache. Seperti yang bertanggung jawab untuk melaksanakan HTTP ditentukan, modul CGIHTTPServer komunikasi antara klien dan server, sedangkan handler bertanggung jawab termasuk a CGIHTTPRequestHandler kelas untuk memproses permintaan dan kembali hasilnya dalam bentuk halaman memperluas kelas handler modul SimpleHTTPServer. Modul ini menangani web atau dokumen [7]. Modul BaseHTTPServer memiliki kelas server dasar permintaan pengguna dengan forking proses dan menyediakan implementasi umum untuk GET dan metode POST.

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 78 Python sebagai Alat Web Server Pengembangan Aplikasi

bentuk HTML yang disajikan kepada pengguna untuk memberikan masukan CGI menyediakan dukungan untuk penggunaan cookies menggunakan server yang harus ditempatkan dalam folder yang sama di mana server berjalan (Lib). menyimpan data pada sisi klien. Ini juga mendukung pengolahan dari beberapa Dalam folder itu, folder lain dibuat dengan nama cgi-bin, dan file py input disediakan untuk lapangan, misalnya menggunakan kotak centang [7]. ditempatkan di sana. Dapat dicatat dari file Form.html pada Gambar 3 bahwa pemrograman web menggunakan CGI tidak disukai karena untuk setiap permintaan setelah mengirimkan formulir, CGIFormResponse.py dipanggil untuk klien, server garpu proses program CGI python. Hal ini akan menyebabkan memproses input sebagai juga digambarkan melalui URL dalam browser. CGI pemborosan waktu sejak python interpreter akan dimulai untuk setiap permintaan. modul impor skrip python cgi yang berisi kelas FieldStorage [7] [11]. Kelas ini Untuk sejumlah besar permintaan, ini dapat membawa server untuk berhenti. diperlukan untuk membaca data yang diterima dari web client melalui web Masalah yang terkait dengan CGI dapat diatasi dengan menggunakan dua modes- server. Ketika script python dipanggil, sebuah instance dari kelas ini dibuat. Ini tertanam atau daemon [4]. modus tertanam menghilangkan kebutuhan untuk garpu contoh kelas terdiri dari pasangan kunci-nilai yang membentuk kamus. Kunci proses untuk setiap permintaan klien dengan mengintegrasikan penafsir dalam adalah nama-nama field input pada form dan nilai-nilai mengacu pada input server, misalnya - mod_wsgi dan mod_python. Dalam mode daemon, web server yang diberikan oleh pengguna untuk bidang-bidang. berkomunikasi dengan panjang menjalankan proses latar belakang disebut daemon untuk memproses permintaan, misalnya - mod_wsgi dan mod_fastcgi. Hal ini menghemat waktu yang terlibat dalam pemijahan proses untuk setiap permintaan.

A.2 WSGI

Web Server Gateway Interface (WSGI) adalah standar yang memfasilitasi interaksi antara server dan aplikasi dengan bertindak sebagai antarmuka [4]. Saat ini antarmuka yang lebih disukai yang paling untuk pemrograman python web. Gambar 4 menyajikan ikhtisar dari kerja WSGI.

Memohon WSGI App Permintaan HTTP WSGI Aplikasi

HTTP Balas (WSGI KLIEN aplikasi WSGI balasan) SERVER

Gambar 4 Kerja WSGI

Sebuah aplikasi WSGI adalah sebuah aplikasi invokable yang mengambil dua parameter [12]. Parameter pertama adalah jenis kamus yang terdiri dari variabel lingkungan seperti HTTP_HOST, SERVER_PROTOCOL dan nilai-nilai mereka [7]. parameter kedua adalah fungsi callable yang harus dijalankan untuk memulai respon ke klien. Tanggapan disiapkan berisi kode respon yang menunjukkan status respon yang terdiri dari kode status dan frase alasan (200 OK, 302 Ditemukan, 403 Forbidden, 500 Server Error). HTTP respon mungkin juga mengandung HTTP header seperti Tanggal (tanggal dan waktu inisiasi pesan), Server (perangkat lunak server dan versi), Content-Type (jenis konten dalam tubuh respon)

dan Content-Length (ukuran isi dalam tubuh respon) [13]. Gambar 3 Web Aplikasi berbasis pada aplikasi CGI WSGI disebut dari sisi server dan dua

argumen yang diperlukan dilewatkan untuk itu. Hasil dikembalikan oleh

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 79 JIMS8i-International Journal of Informasi, Komunikasi dan Teknologi Komputasi (IJICCT)

Aplikasi dikirim kembali ke klien. Ini mungkin memperhatikan bahwa WSGI B. Web Server Pengembangan Aplikasi menggunakan Python web bertindak sebagai antarmuka antara aplikasi dan server. Program di sisi server Frameworks aplikasi memanggil WSGI baik dapat ditulis oleh pengembang atau dia dapat menggunakan python disediakan referensi server yang tersedia di pemrograman web menggunakan CGI dan WSGI membutuhkan membangun wsgiref.simple_server.WSGIServer perpustakaan [7]. Dengan demikian, aplikasi web dari awal dengan menggunakan Python perpustakaan standar. Python menggunakan WSGI satu dapat menerapkan kedua sisi antarmuka, server menyediakan dengan web kerangka kerja [15] [4] dalam bentuk paket / modul yang serta aplikasi. menyederhanakan tugas menulis program aplikasi. kerangka kerja ini meringankan pekerjaan membosankan pengembang. Mereka mendukung server dan pemrograman sisi klien dengan menyediakan dukungan untuk beberapa kegiatan Gambar 5 menunjukkan WSGI.py dimana metode make_server dari seperti permintaan interpretasi (mendapatkan parameter bentuk, penanganan simple_server modul menciptakan mendengarkan server pada localhost tuan cookie dan sesi), rumah di port 8000, yang bertanggung jawab untuk memanggil fungsi wsgiApp. generasi respon Server ini dibuat untuk menjalankan dalam infinite loop menggunakan metode (Menghasilkan data dalam format HTML atau lainnya seperti pdf, excel), dan serve_forever. inisiasi fungsi wsgiApp HTTP respon ke klien dengan menetapkan menyimpan data. Kerangka web lebih dikategorikan sebagai full-stack dan status '200 OK' dan header 'Content-type' untuk 'text / html'. Header non-full-tumpukan kerangka [15]. kerangka penuh tumpukan menyediakan 'Content-type' membantu klien dalam menentukan bagaimana menafsirkan komponen untuk setiap fase pemrograman berbeda dengan kerangka respon server. Setelah memulai respon, fungsi wsgiApp mengembalikan konten non-full-stack. ke klien.

Semua kerangka kerja termasuk template dan data ketekunan sebagai bahan utama untuk membangun web [4]. Template yang digunakan untuk menghindari kode yang kompleks bahwa hasil ketika HTML dan Python kode dicampur dalam satu file. Template adalah file HTML dengan placeholder untuk data tergantung pada input pengguna. penawaran Data ketekunan dengan menyimpan dan mengambil data dan menjaga konsistensi. Data dapat disimpan dan dipelihara menggunakan file teks biasa, mesin database relasional seperti MYSQL, Oracle, atau beberapa database berorientasi objek. Kerangka web yang menyediakan dukungan untuk WSGI harus lebih disukai [4]. Hal ini membuat penggelaran aplikasi lebih mudah.

Dalam paragraf berikut, kita secara singkat menjelaskan beberapa kerangka web populer:

Full-Stack Frameworks

Sebuah. Django

Menjadi kerangka tumpukan penuh, Django mendukung pengembangan aplikasi web cepat membutuhkan inti yang lebih rendah harus dilakukan. Hal ini dikenal sebagai “kerangka web untuk perfeksionis dengan tenggat waktu” [16]. Ini memberikan kemudahan dalam membuat aplikasi web dengan lebih sedikit baris kode dan scalable [17]. Ini termasuk built-in server yang dapat digunakan untuk mengembangkan dan menguji aplikasi. Kerangka kerja ini datang dengan komprehensif, dokumentasi yang ditulis dengan baik. Fitur kerangka ini termasuk template, Gambar 5 Aplikasi Web berdasarkan WSGI dukung untuk model database relasional (Database termasuk MySQL, SQLite, Oracle, dan PostgreSQL), Kadang-kadang permintaan diberikan kepada aplikasi WSGI mungkin memerlukan keamanan yang komprehensif, dll Hal ini wellsuited untuk aplikasi beberapa pra-pengolahan seperti memodifikasi parameter permintaan atau database driven. Kerangka ini didasarkan pada prinsip usabilitas kode mengarahkan permintaan itu. Juga, hasil yang dikembalikan oleh aplikasi WSGI dan nonredundancy informasi. Contoh aplikasi dibangun dengan mungkin perlu lebih pasca-pengolahan seperti memformat hasil. Pra-pengolahan menggunakan kerangka kerja ini termasuk Pinterest, Instagram, Mozilla, dan pasca-pengolahan terlibat dengan aplikasi WSGI dapat dicapai melalui fungsi The Onion. pembungkus tambahan dalam bentuk lapisan disebut sebagai middleware [4] [14].

b. TurboGears

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 80 Python sebagai Alat Web Server Pengembangan Aplikasi

TurboGears Kerangka menggabungkan SQLAlchemy, Built-in server CherryPy menawarkan lingkungan multi-berulir [27]. Tiang, Genshi, Repoze, dan Tosca Widget. Kerangka kerja ini termasuk membangun menggunakan kerangka kerja ini termasuk Netflix, 1.x dan 2.x seri di mana terdiri 2.x serangkaian semua komponen yang Urbanility, CherryMusic, Learnit Pelatihan [26]. ditentukan di atas. Namun, 1.x seri terdiri dari SQLAlchemy, Genshi, CherryPy, dan MonchKit. Ini mendukung kedua klien dan server pemrograman web side. Menawarkan desainer ramah sistem template c. Labu [18]. Telah ditemukan penggunaannya terutama untuk menawarkan Kerangka labu didasarkan pada Werkzeug, dan Jinja 2, dan intensions solusi untuk masalah industri dengan kompleksitas yang tinggi. baik [28]. Kerangka kerja ini tidak memiliki dependensi selain Python Kerangka kerja ini mendukung beberapa database di antaranya Standard Library. Flask tidak termasuk komponen yang membutuhkan SQLAlchemy dianggap sistem manajemen database yang paling kuat dukungan pihak ketiga seperti memvalidasi bentuk atau menyediakan [19]. Kerangka ini digunakan oleh SourceForge, Fedora Community, sarana komunikasi antara aplikasi dan database. Namun, fitur tersebut TavolaClandestina, Glossom, ShowMeDo, dll dapat ditambahkan dengan menggunakan ekstensi. Layanan yang ditawarkan oleh kerangka ini termasuk built-in server HTTP, dukungan untuk , dan layanan web tenang [29]. Aplikasi yang dibangun menggunakan kerangka kerja ini adalah minitwit, flaskr, flask.pocoo.org c. web2py dll Kerangka mendukung perkembangan cepat terukur, aplikasi web aman dan portable [20] [21]. Ini tidak memerlukan instalasi dan dapat dijalankan melalui USB drive. Kerangka kerja ini tidak memiliki . Piramida dependensi. Aplikasi web2py itu sendiri bertindak sebagai Integrated Piramida adalah yang cepat, handal, sederhana, dan kerangka Development Environment menawarkan semua kemampuan seperti pengembangan web Mini [30]. Kerangka kerja ini kompatibel dengan Python membuat aplikasi, debugging, dan pengujian. Ia datang dengan sistem 3. Menjadi kerangka sepenuhnya didokumentasikan, pengembang tiket yang membantu dalam pelacakan sumber kesalahan dengan menemukan awal yang mudah untuk mengembangkan aplikasi web. Ini menetapkan tiket ke pengguna [22]. Ini mendukung beberapa database mendukung beberapa database seperti SQLAlchemy, Object Database, seperti MySQL, PostgreSQL, SQLite, Oracle. Contoh aplikasi dibangun dan CouchDB. website dibangun dengan menggunakan kerangka kerja ini termasuk Movuca, Instant menggunakanini kerangka memasukkan Press, dan LinkFindr. newcars.com, SurveyMonkey, PwnedList.

kerangka tumpukan penuh non lainnya termasuk Albatross, Aquarium, AppWsgi, BlueBream, Bobo, circuits.web, Divmod , G-WAN, Gunstar, kerangka penuh tumpukan lainnya termasuk CubicWeb, Django hotsauce, PyWebLib, , Spiked, Spinne, weblaver, WebStack, WSGIServlets [15]. Giotto, , tiang, Wheezy Web, Gizmo, Glashammer, Karrigell, Kiss.py, Lino, Nigare, Porcupine, Pylatte, QP, SkunkWeb, , Tipfy, , Watson, webapp2, WebBot, WebCore, Web.py, Webware, Werkzeung, dan Spesifikasi dari kerangka web populer yang disediakan pada Tabel 1 [31]. bau [15]. Semua kerangka web yang disebutkan di atas didasarkan pada MVC (Model View Controller) [32], arsitektur untuk aplikasi web. Ini terdiri dari tiga komponen: model, melihat, dan kontroler. Model terdiri dari data dan logika yaitu tindakan yang diperlukan yang akan dilakukan. Lihat mengacu pada Non-penuh Stack Frameworks antarmuka yang disajikan kepada pengguna. Kontroler kontrol baik model dan melihat dengan memanggil model tergantung pada input pengguna dan Sebuah. Botol menginstruksikan Model untuk memperbarui data atau mengubah keadaan Botol adalah kerangka kerja yang mudah dan sederhana yang digunakan untuk data. Berdasarkan hasil model dipanggil, kontroler menginstruksikan cepat membangun web-aplikasi kecil. Kerangka kerja ini tidak memiliki pandangan untuk mengubah tata letak yang disajikan. Misalnya, mengubah dependensi selain Python Standard Library [23] [24]. Hal ini telah built-in web tampilan berdasarkan input pengguna (seperti halaman atas dan halaman server yang dapat digunakan untuk menguji tujuan. Kerangka kerja ini kompatibel bawah). Tidak termasuk Botol dan Flask, semua kerangka yang disebutkan di dengan Python 3 [23]. Aplikasi yang dibangun menggunakan kerangka kerja ini atas memberikan Object Relational Mapping (ORM) [33] yang bertanggung termasuk Pasttle. jawab untuk pemetaan objek yang berisi informasi ke basis data relasional di mana kelas dan objek yang dipetakan ke hubungan dan tupel mereka. Jadi, ORM peta modifikasi dan sisipan untuk sebuah objek set untuk operasi b. cherryPy database relasional. CheeryPy adalah kerangka web HTTP berorientasi objek [25]. Kerangka kerja ini dikembangkan dengan tujuan memungkinkan pengguna untuk mengembangkan aplikasi sebagai program python biasa dengan garis-garis yang lebih rendah dari kode. Hal ini dianggap sebagai salah satu kerangka kerja minimal disediakan untuk Python [25]. Ini tidak memiliki sistem template.

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 81 JIMS8i-International Journal of Informasi, Komunikasi dan Teknologi Komputasi (IJICCT)

berbagai untuk mengurangi Terbaru langkah yang tepat [36] Kerangka Stabil Lisensi MVC ORM Python kerentanan. aplikasi berbasis PHP tidak di antara yang terbaik di penanganan Versi: kapan error. Juga, aplikasi berbasis PHP tertanam dalam server. Hal ini digunakan oleh perusahaan-perusahaan besar seperti Facebook, Yahoo, Wikipedia, dan Google. 1.6.5 2,7 & Django (Mei 14 BSD Iya Iya atas 2014) 2.3.2 Python dikembangkan oleh Guido van Rossum pada tahun 1991. Python menjadi 2.4 & TurboGears (8 Mar MIT Iya Iya atas bahasa pemrograman yang sederhana, alami cocok untuk menjadi pilihan yang 2014) lebih disukai untuk pemula. Menawarkan perkembangan cepat aplikasi berbasis 2.9.5 web yang memiliki garis-garis yang relatif lebih rendah dari kode [9]. Ini adalah (16 2.4 & web2py LGPL Iya Iya Maret atas bahasa pemrograman modular dan berorientasi objek. Ini adalah bahasa yang 2014) fleksibel karena ketersediaan besar dukungan pihak ketiga. Ini mengikuti lekukan 0.12.7 2,5 & yang ketat untuk menentukan blok kode. Ini digunakan oleh Botol (29 April MIT Iya Tidak atas perusahaan-perusahaan besar seperti Google, pinterest, Youtube, dan Instagram. 2014) 3.3.0 2.3 & cherryPy (April 17 BSD Iya Iya atas 2014) 0.10.1 2,5 & Ruby dikembangkan oleh Yukihiro Matsumoto pada tahun 1995. Hal ini juga sederhana Labu (Juni 14 BSD Iya Tidak atas untuk belajar, mudah dibaca, dipelihara, dan bahasa berorientasi objek murni. Salah satu 2013) yang paling kerangka web penting dari Ruby adalah yang menggunakan 1.4.6 2.6 & Piramida (Mei 31 BSD Iya Iya CGI sebagai gateway dan memiliki built-in web server [37]. Hal ini dapat digunakan untuk atas 2014) aplikasi scalable mana keamanan adalah salah satu perhatian utama. Hal ini digunakan oleh perusahaan-perusahaan besar seperti Github, Scribd, Twitter, dan Groupon. Tabel 1 Perbandingan Web Frameworks

Hampir semua kerangka web tujuh ditentukan di atas dukungan fitur seperti Tabel 2 membandingkan bahasa pemrograman web ini pada beberapa kriteria built-in server, internasionalisasi (membantu [38] [39] [40]. dalam menambahkan bahasa dan mereka terjemahan), otentikasi dan otorisasi dari pengguna akhir, caching, debugging, kesalahan logging (bantuan dalam melacak kesalahan terjadi bersama dengan deskripsi Perbandingan mereka, dan waktu), routing permintaan ke URL lain, dan mengelola sesi. ular sanca PHP Rubi kriteria Tujuan Umum jaringan Umum . Populer di kalangan pengembang

menurut TIOBE Februari 8 th pangkat 7 th pangkat 14 th pangkat 3. BAHASA PENGEMBANGAN WEB DIBANDINGKAN indeks 2014 Kemudahan Belajar termudah Mudah Sulit

Ada beberapa bahasa pengembangan web yang tersedia di pasar yang waktu pengembangan lebih cepat Cepat Tercepat eksekusi Kecepatan Al l sama-sama g ood digunakan oleh para pengembang. Bahasa ini dapat dikategorikan sebagai Penanganan Exception Terbaik Lebih buruk Terbaik sisi server dan client bahasa scripting sisi. teknologi sisi server termasuk CGI, Keamanan Terbaik Lebih buruk Terbaik Java, ASP.NET, Ruby, Python, dan PHP, sedangkan teknologi sisi klien R eadable dan Maintainable Terbaik Lebih buruk Lebih buruk termasuk HTML, CSS, Javascript, dan Java Applet. Bagian ini akan kesegaran Terbaik Lebih buruk Lebih baik membahas tiga kebanyakan bahasa pengembangan web populer, Python, PHP, dan Ruby, yang merupakan pilihan yang lebih disukai untuk Tabel 2 Perbandingan Web Development Bahasa pengembang. Semua bahasa ini bersifat dinamis dan open-source [34].

4. KESIMPULAN

PHP [35] dikembangkan oleh Rasmus Lerdforf pada tahun 1994. Ini adalah singkatan dari Meskipun ketersediaan begitu banyak bahasa pengembangan web, Python Hypertext Preprocessor. Hal ini didasarkan pada arsitektur MVC. Ada beberapa sistem berkembang sebagai bahasa populer di kalangan pengembang. pengembangan web manajemen konten yang ditulis menggunakan PHP yang membantu non- dengan Python dapat dilakukan dengan menggunakan CGI atau WSGI yang untuk membangun sebuah aplikasi. Contoh termasuk dan Wordpress. aplikasi menggunakan python perpustakaan standar. Namun, PHP dapat dengan mudah dikerahkan. Ini menawarkan dukungan yang besar untuk pembangunan tersebut membutuhkan membangun web ekstensi dan database. Selanjutnya, itu adalah platform independen. Hal ini tidak disukai aplikasi dari awal. Jadi, Python menyediakan kerangka kerja pengembangan jika keamanan adalah perhatian utama. Namun, salah satu mungkin masih web seperti Django, Pyramid, web2py yang membantu dalam pengembangan menggabungkan keamanan menggunakan aplikasi web. Ini membantu

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 82 Python sebagai Alat Web Server Pengembangan Aplikasi

pengembang dalam melakukan inti yang diperlukan minimal yang diperlukan untuk [22] Di Pierro, Massimo. "Manual web2py." 3 ed. Lulu. com. [23] membangun aplikasi. "Botol: Python ." REFERENSI http://bottlepy.org/docs/dev/index.html. [24] "Full Stack Python. Botol." http://www.fullstackpython.com/bottle.html. [25] [1] Berson, Alex. "Arsitektur Client-server." Tidak IEEE-802. "CherryPy." http://cherrypy.org/. [26]

McGraw-Hill, 1992 [2] "Website berjalan di atas CherryPy." Shklar, Leon, dan Richard Rosen. "Web arsitektur aplikasi:. https://cherrypy.readthedocs.org/en/3.3.0/appendix/ success.html Prinsip, Protokol dan Praktek" Editura Wiley (2009) [3] .. [27] Hellegouarch, Sylvain. "CherryPy Essentials:. Cepat Python Suh, Woojong, ed. "Rekayasa Web: prinsip-prinsip dan teknik." IGI Pengembangan Aplikasi Web" Packt Publishing Ltd, 2007. [28] Global, 2005. [4] Kubica, Marek. "Cara Gunakan Python di web." "Labu." http://flask.pocoo.org/. [29] https://docs.python.org/2/howto/webservers.html. [5] Grinberg, Miguel. Flask Web Development: Mengembangkan Grove, Ralph F. "Aplikasi Berbasis Web Aplikasi Web dengan Python "O'Reilly Media, Inc", 2014. [30]. Pembangunan." Jones & Bartlett Publishers, 2009 [6] Pratt, Terrence W., Marvin V. Zelkowitz, dan Tadepalli V. "Gopal "Piramida." http://pyramid.readthedocs.org/. [31] bahasa Pemrograman:. Desain dan implementasi." Englewood Cliffs: Indeks Paket. https://pypi.python.org/pypi/. [32] Prentice-Hall, 1984. [7] Deacon, John. "Model-view-controller (MVC) arsitektur." http: // www. JDL. bersama. Chun, Wesley J. "Aplikasi Inti Python Pemrograman." Prentice Hall uk / briefing / MVC.pdf (2009). [33] Press, 2012. [8] O'Neil, Elizabeth J. "Obyek / relasional pemetaan 2008: hibernate Huffman, Steve dan Bennett, Sean. "Web Development. Bagaimana dan model data entitas (edm)." Prosiding Membangun Blog". https://www.udacity.com/course/cs253. [9] Watters, 2008 ACM SIGMOD Aaron, James C. Ahlstrom, dan Guido Van konferensi internasional tentang Pengelolaan data. ACM, 2008. [34] Rossum. "Internet pemrograman dengan Python." Henry Holt and Sebesta, Robert W. "Pemrograman wide web dunia." Pearson Co., Inc., 1996. [10] Addison Wesley, 2008. [35] Ramu, Chenna, dan Christina Gemuend. "Cgimodel: Gerken, Till, dan Tobias Ratschiller. "Web pemrograman CGI dipermudah dengan Python." jurnal Linux Pengembangan Aplikasi dengan PHP." Riders New Publishing, 2000.75es (2000): 8. [11] 2000. [36] "Web Python". Shiflett, Chris. keamanan PHP penting. "O'Reilly Media, Inc", http://webpython.codepoint.net/cgi_tutorial. [12] 2006. [37] "PEP 333 - Python Web Server Gateway Interface v1.0." Viswanathan, Viswa. "Pengembangan aplikasi web cepat: Ruby Https://www.python.org/dev/peps/pep-0333/. [13] on Rails tutorial." , IEEE 25,6 (2008): 98-106. [38] "Hypertext Transfer Protokol." http://www.w3.org/Protocols/HTTP/1.0/spec.html. [14] Murni, Klaus. "PHP vs Python vs Ruby-web bahasa scripting baku Gardner, James. "The Web Server Gateway Interface (WSGI)." tembak." (2009). [39] Panduan pasti ke pylons (2009): 369-388. [15] Gaikwad HM, Artikel tentang Kode Wars: PHP vs Ruby vs bahasa Python [40]

"Web kerangka untuk Python." Hardy, Will. "Pengembangan web Membandingkan https://wiki.python.org/moin/WebFrameworks. [16] platform melalui mata profesional Forcier, Jeff, Paul Bissex, dan Wesley pengembang." Teknis melaporkan, institut bulu Chun. "Python jaringan pengembangan dengan Informatik, Freie Universität Berlin 2007. Django. "Addison-Wesley profesional, 2008. [17] "Django." https://www.djangoproject.com/. [18] "TurboGears." http://turbogears.org/. [19] Ramm, Menandai, Kevin Dangoor, dan Gigi Sayfan. "Cepat jaringan Aplikasi dengan TurboGears." Pearson Education, 2006. [20] Mulone, pablo Martin, dan Mariano Reingart. "web2py Aplikasi Pembangunan Cookbook." Packt Publishing Ltd, 2012. [21] "Web2py." http://web2py.com/.

Hak cipta © IJICCT, Vol II, Isu I (Jan-Jun2014): ISSN 2347-7202 83