Pemrograman
128 Artikel tersedia
18 Download File
Download File
Selain upload file, kita juga perlu atau membutuhkan halaman yang bisa melakukan download file atau sesuatu yang ada pada website kita. Pada library Golang sudah disediakan yaitu FileServer
dan ServeFile
. Jika kita ingin memaksa file di download tanpa harus di render oleh browser maka kita bisa menggunakan header Content-Disposition
. Lebih lengkapnya bisa dilihat di halaman ini https://developer.mozilla.org/en-US/docs/Web/Headers/Content-Disposition.
17 Upload File
Upload File
Selain menerima input data berupa form dan query params, biasanya kita juga membutuhkan input data berupa file dari pengguna kita. Golang sebenarnya sudah memiliki fitur tersebut untuk menangani management upload file tersebut. Hal ini lebih memudahkan kita jika kita membuat web yang bisa menerima input file.
16 HTML Web Redirect
Redirect
Pada saat kita membuat sebuah website, jika pengguna melakukan akses ke berbagai halaman dengan sembarang maka akan terjadi halaman tidak ditemukan. Maka kita perlu membuat redirect
sebuah halaman jika pengguna melakukan suatu aksi pada halaman website kita. Misalkan setelah selesai login, maka kita akan lakukan redirect
ke halaman dashbard. Redirect
itu sendiri sebenarnya sudah standard dalam HTTP dan bisa melihat di halaman website https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections. Kita hanya perlu membuat response code 3xx dan menambahkan header location yang akan dituju. Untungnya pada Golang ada fungsi yang bisa kita gunakan untuk mempermudah ini.
15 Web XSS (Cross Site Scripting)
Pengenalan XSS (Cross Site Scripting)
XSS adalah salah satu security issue yang biasa terjadi ketika membuat web. XSS biasanya terdapat celah keamanan dimana orang bisa secara sengaja memasukkan parameter yang mengandung script atau Javascript agar bisa di render oleh halaman website. Tujuan dari XSS ini adalah untuk mencuri cookie browser pengguna yang sedang mengakses website dan bisa menyebabkan akun pengguna bisa diambil alih jika kita sebagai pemilik website tidak menanganinya dengan baik.
14 HTML Template Cache
Pengenalan Template Cache
Pada kode-kode program sebelumnya yang sudah kita pelajari secara praktik itu tidak efisien. Kenapa seperti itu? karena setiap diakses maka akan memanggil fungsi dan menjabarkan data yang dikirim ke dalam template tersebut sehingga prosesnya pun membutuhkan eksekusi yang tinggi. Setiap handler dipanggil kita akan selalu parsing ulang template-nya. Maka idealnya template hanya melakukan parsing satu kali saja diawal ketika aplikasi akan berjalan maka selanjutnya data template saja yang di caching (disimpan memory) sehingga tidak perlu akses data dan melakukan parsing lagi agar website kita yang kita buat itu bisa semakin cepat.
13 HTML Template Function
Pengenalan Template Function
Selain mengakses field
dalam template, kita juga bisa melakukan akses terhadap suatu fungsi atau function
dalam golang. Cara untuk mengakses function sama seperti halnya mengakses field
namun jika fungsi tersebut memiliki parameter maka kita bisa gunakan tambahan parameter yang dikirim ketika memanggil fungsi di template-nya tersebut.
12 HTML Template Layout
Pengenalan Template Layout
Saat kita membuat halaman website ada beberapa bagian yang selalu sama pada tiap halaman misalnya yaitu header
dan footer
, maka jika terdapat bagian yang sama itu disarankan untuk disimpan pada template yang terpisah agar bisa digunakan di template yang lain atau kadang kita sebut reusable
. Nah pada golang template iin sudah mendukung import dari template lain sehingga bisa kita gunakan untuk mempermudah pembuatan website.
11 HTML Template Action
Pengenalan Template Action
Tidak hanya teks saja kita bisa render dalam template tetapi kita juga bisa mendukung perintah action seperti percabangan if
, perulangan for
dan lain-lain.
Contoh misalkan kita menggunakan percabangan if
seperti ini
10 HTML Template Data
Pengenalan Template Data
Jika Anda sudah mempelajari HTML Template pada artikel sebelumnya, maka kita akan lanjutkam mengenai template data dimana data ini bisa kita tampilkan secara dinamis dengan cara menggunakan data struct ataupun map. Namun perlu diketahui perubahan di dalam text template kita perlu tahu nama field
atau key
yang akan kita gunakan untuk mengisi data dinamis tdi template. Kita bisa menyebutkan nama field
atau key
tersebut seperti contoh {{.NamaField}}
.
09 Mengenal HTML Template
Web Dinamis menggunakan Template
Pada postingan sebelumnya kita telah membahas web dinamis tetapi dengan menggunakan respon string yang terdapat pada statik file. Maka pada kesempatan kali ini kita akan mencoba mengenal templating pada golang dimana halaman katakanlah html tersebut akan dinamis dan bisa berubah-ubah dengan data yang diakses oleh user.
08 Memahami File Server
Pengenalan File Server
Pada Golang memiliki sebuah fitur yang bernama FileServer. Dengan ini kita bisa membuat Handler di Golang Web yang telah kita gunakan itu sebagai static file server dan FileServer ini tidak perlu manual melakukan load lagi. Sehingga kita bisa tambahkan ke dalam http.Server
atau http.ServeMux
.
07 Memahami Cookie
Pengenalan Cookie
Sebelum ke pembahasan Cookie kita perlu ketahui bahwa HTTP merupakan stateless antara client dan server yang artinya server tidak menyimpan data apapun untuk mengingat setiap request dari client. Hal ini bertujuan agar mudah melakukan scalability dari server itu sendiri. Lalu bagaimana cara agar server bisa mengingat sebuah client? misalnya ketika kita sudah login di suatu website, secara otomatis server harus tahu jika client tersebut sudah login sehingga request selanjutnya tidak perlu lagi melakukan login. Hal seperti ini bisanya kita bisa memanfaatkan Cookie
.