Menggunakan Python Embedded Web Server untuk mencoba kode HTML

Pada saat kita belajar menggunakan HTML untuk membuat website, terkadang kita tidak bisa langsung membuat file .html, meletakkannya di file system, kemudian mengisinya dengan kode HTML dan berikutnya menggunakan fasilitas file->open di browser untuk melihat hasilnya.

Pada saat berada di lingkungan production, ketika browser berada di tempat yang berbeda dengan object HTTP, tentu saja browser tidak bisa menggunakan cara yang sama ketika kita meletakkan object di file system

Oleh karena itu, kita memerlukan sebuah lingkungan development yang paling tidak mirip dengan lingkungan production, yaitu adanya http server atau yang lazim disebut dengan web server

Beberapa menilai bahwa instalasi web server membutuhkan waktu dan pengetahuan khusus. Hal itu memang benar adanya, jika digunakan untuk lingkungan production yang tujuannya untuk melayani request dalam jumlah yang besar. akan tetapi untuk development, kita bisa memanfaatkan web server yang tinggal pakai seperti yang dimiliki oleh bahasa python.

Hal ini akan sangat berguna misalkan kita menjumpai sepotong kode html dan kita ingin mencobanya, maka kita bisa langsung gunakan dan melihat hasilnya seperti ketika kita gunakan lingkungan production

python memiliki modul yang bernama http.server yang siap digunakan kapan saja, bahkan ketika kita tidak paham python pun kita dapat menggunakannya

Dalam contoh ini, saya menggunakan linux sebagai lingkungan development saya untuk membuat sebuah halaman .html

Sebagai contoh, saya mempunyai halaman html, dengan nama file index.html seperti berikut ini

<DOCTYPE html>
<BODY>
<h1> Hello </h1>
Hello, saya belajar HTML code disini
</BODY>

setelah itu buatlah sebuah direktori/folder , saya akan gunakan home directory saya untuk keperluan ini, nantinya lingkungan development adalah di directory belajar_html

$ mkdir belajar_html
$ cd belajar_html

kita cek directory dimana kita berada

$ pwd
/home/royyana/belajar_html

saat ini kita sudah berada di dalam directory belajar_html, copykan file index.html ke dalam directory ini. setelah index.html berada di directory ini, maka struktur nya akan seperti ini

$ tree
.
└── index.html

kita lihat hanya satu file index.html

Berikutnya kita jalankan webserver dengan satu command line saja, yaitu

$ python3 -m http.server

akan memunculkan bahwa kita sudah menjalankan http server di port 8000

$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …

port 8000 merupakan port default yang bisa kita ganti dengan port berapapun yang kita inginkan. saran saya gunakan port diatas 1024. misalkan, kita gunakan port 8899, caranya adalah

$ python3 -m http.server 8899
Serving HTTP on 0.0.0.0 port 8899 (http://0.0.0.0:8899/) …

pada saat ini webserver sudah siap menerima request dari browser. dalam hal ini kita akan menggunakan browser chrome untuk mengakses halaman index.html yang berada di server di port 8899

akseslah url http://localhost:8899/index.html dengan browser chrome, kita lihat di sisi server akan memperlihatkan rekaman akses dari browser

$ python3 -m http.server 8899
Serving HTTP on 0.0.0.0 port 8899 (http://0.0.0.0:8899/) …
127.0.0.1 - - [18/Jun/2020 22:19:05] "GET /index.html HTTP/1.1" 200 -
127.0.0.1 - - [18/Jun/2020 22:19:07] "GET /index.html HTTP/1.1" 304 -
127.0.0.1 - - [18/Jun/2020 22:19:25] "GET /index.html HTTP/1.1" 304 -

chrome browser akan menunjukkan

gambar chrome browser mengakses ke python web server di port 8899 untuk meminta object index.html

Kita bisa menambahkan file file html yang lain di directory yang sama dan mengaksesnya dengan cara yang sama dengan index.html ini

Posting ini telah membahas bagaimana menggunakan python builtin web server untuk menyediakan lingkungan cepat dalam mencoba-coba kode html

Post Disclaimer

The information contained in this post is for general information purposes only. The information is provided by Menggunakan Python Embedded Web Server untuk mencoba kode HTML and while we endeavour to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the post for any purpose.