Langsung ke konten utama

Algoritma Web Server Statis dengan Python

Bagaimana Skema Connection ?

    Dikarenakan untuk komunikasi data kita menggunakan standard Socket (RFC 1928) dan protokol yang digunakan adalah TCP, maka skema connection ini tentunya mengikuti skema socket berbasis TCP. Silahkan diamati ilustrasi gambar diatas ya..

    Untuk pengembangan aplikasi web, konsentrasi kita adalah bagaimana membuat program server, atau kita istilahkan web server. Bagaimana dengan program client (browser)? Untuk sementara kita memanfaatkan browser yang sudah ada saja, seperti misalnya Google Chrome, Mozilla Firefox, Internet Explorer atau web browser lainnya.

    Dari skema diatas, untuk bagian TCP Server bisa kita susun algoritma pemrogramannya seperti yang terlihat pada ilustrasi gambar berikut ini. Untuk keperluan pengembangan aplikasi, tentunya kita belum butuh komputer server yang sesungguhnya. Tetapi dikarenakan aplikasi web server dan client ini butuh IP Address, maka kita bisa menggunakan IP Address localhost atau 127.0.0.1. Sedangkan untuk konfigurasi Port, kita bebas menggunakan port berapapun asalkan port tadi tidak digunakan oleh aplikasi lainnya. Contoh port yang jarang digunakan aplikasi lain adalah port 8080.

Uniform Resource Locator (URL)

    Agar program client bisa terhubung dengan program server, atau istilahnya adalah membangun koneksi (establish connection), maka perlu ada standar khusus yang mengatur tentang hal itu. Standar yang dimaksud tertuang dalam RFC 1738 yang berisi standar Uniform Resource Locator atau disingkat URL. Dalam penggunaan kesehariannya, biasanya kita mengetikkan URL ini pada address bar pada browser kita.
    Adapun aturan penulisan URL menurut RFC 1738 itu, khusus untuk protokol HTTP adalah seperti berikut ini.

Contoh :

  • https://www.google.com/index.html
  • https://www.facebook.com/index.php?groups=2920223131408328
  • https://www.google.com/search?q=rfc+2068&sxsrf=ALeKk00
  • http://www.localhost:8080/index.html
  • http://www.127.0.0.1/index.html?nama=hadi&alamat=banyuwangi
    Jika pada penulisan URL port tidak didefinikan, maka otomatis port akan terisi 80. Karena dalam konsensus protokol http, port yang digunakan adalah 80. Hanya untuk keperluan pengembangan aplikasi, kita bisa menggunakan port berapapun asalkan tidak bentrok dengan aplikasi lainnya. Nanti setelah aplikasinya dipasang di server yang sesungguhnya, maka port aplikasi harus dirubah menjadi 80.

Request Message (Pesan Permintaan)

    Setelah program client dan server terhubung, maka langkah pertama adalah program client mengirimkan pesan (request message) ke program server. Isi dari pesan permintaan (request message) ini sudah diatur pada RFC 2068 section 5. Ini saya contohkan isi pesan permintaan.

    Dari contoh diatas, aturan penulisan isi pesan permintaan (request message) yang ditetapkan pada RFC 2616 terdapat 2 bagian pokok yaitu :
  1. Request-line
  2. Request Header Fields
    Baris ke 0 yaitu “GET /index.html HTTP/1.1” disebut Request-line. Dimana pada bagian request-line ini terbagi menjadi 3 bagian seperti gambar berikut ini

Berikut ini adalah algoritma untuk menangani request (handle request).

Response

    Setelah server menerima dan menafsirkan pesan permintaan (request message), maka server merespon client dengan pesan respons HTTP (HTTP Response Message). Pada intinya isi dari response message itu adalah 

Response = status-line CRLF header CRLF message body

Contoh :

Baik kita fokus ke response status-line dulu ya.
    Response status-line terdiri dari 3 bagian yaitu : HTTP version, status code dan reason phrase. Ilustrasi ke-3 bagian itu seperti gambar berikut ini

    Oke, setelah paham mengenai konsep dari respon message, maka kita akan belajar bagaimana menangani respon (handle response) itu tadi. Berikut ini saya tunjukkan sebuah iluastrasi yang menggambarkan algoritma handle method GET.

Flowchart Web Server Statis

Berikut ini merupakan flowchart dari code program web server statis (artikel sebelumnya) 

Komentar

Postingan populer dari blog ini

Cara Kerja Komputer dan Assembler Menggunanakan NASM

Mempelahjari Bagaimana Cara Kerja Komputer dan Belajar Assembler Menggunanakan NASM      Komputer merupakan perangkat listrik dimana kosakata bahasanya hanya ON yang dilambangkan angka 1 dan OFF yang dilambangkan angka 0. Dimana angka biner 0 artinya arus listrik diputus, sedangkan 1 artinya arus listrik tersambung.      Jaman dahulu, pada saat komputer generasi awal dibuat, teknologinya yang ada masih menggunakan tabung vakum. Sehingga 1 unit komputer merk Electronic Numerical Integrator and Computer (ENIAC), dibuat dari 18.000 tabung vakum, 70.000 resistor dan 5 juta titik solder. Komputer ENIAC ini setidaknya butuh ruang 500 meter persegi atau hampir seluas lapangan sepak bola. berbeda dengan saat ini yang ukurannya sudah sangat kecil. Bagaimana Cara Kerja Komputer?      Komputer tidak menyimpan karakter sebagai karakternya sendiri, juga tidak ada gambar dan huruf yang tersimpan di harddisk komputer kita. Sebaliknya, setiap karakter ...

Membuat Form Login dengan Metode Monolitik, Ajax, dan JQuery

  Monolitik Monolitik adalah sebuah pendekatan tradisional pada pembangunan sebuah aplikasi. Aplikasi monolitik terbentuk menjadi satu kesatuan kode yg nir bisa dipisahkan satu & lainnya.  Salah satu karakter sistem arsitektur monolitik merupakan ketika pemrogram ingin melakukan perubahan dalam sistem monolitik, pemrogram wajib  mengganti satu kesatuan kode secara menyeluruh & bersamaan. yuk kita bedah kodenya. Pertama buat file html biasa menggunakan nama login1.html , pada body kita membuat form dan button untuk mengirimkan data. <! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta http-equiv = "X-UA-Compatible" content = "IE=edge" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title > Login </ title > </ head > < body > < h1 > Web Monolitik </ h1 > <...

Membuat Halaman CheckOut Dengan NextJS & Bulma

Apa itu Next.js?  Next.js merupakan sebuah React framework yang dibentuk buat mengatasi kasus client-side rendering yang dimiliki React. Sebuah halaman website yang dibentuk memakai React ‘terasa ringan’ lantaran tampilan website sangat interaktif.  Selain itu, ketika data berubah, React menggunakan efisien akan mengupdate bagian menurut halaman website yang memang perlu diupdate tanpa perlu reload satu halaman penuh.  Untuk menerima itu seluruh, client wajib load seluruh file JavaScript sebelum konten halaman ditampilkan. apabila file JS relatif akbar maka ketika yang diperlukan buat load pertama kali pula sebagai lebih lama.  Masalah lain menurut client-side rendering merupakan SEO, terdapat kemungkinan web crawler berusaha mengindex halaman yang belum terselesaikan dirender sepenuhnya (lantaran ketika load yang lama). Dan menduga web tadi blank.  Kedua kasus diatas bisa diselesaikan menggunakan teknik pre-rendering. Yaitu halaman HTML dan file JavaScript pada...