Apakah Pengekodan Peratus (Percent-Encoding) dan Mengapa Ia Diperlukan?
Pengekodan peratus ialah tonggak asas infrastruktur web moden, yang menentukan bagaimana data dihantar melalui internet. Pada terasnya, internet bergantung pada Uniform Resource Identifiers (URI) untuk mencari sumber. Walau bagaimanapun, spesifikasi URI (RFC 3986) menghadkan aksara secara ketat yang boleh digunakan secara selamat dalam URL. Aksara yang dibenarkan, dikenali sebagai 'aksara tidak terhad', terhad kepada aksara alfanumerik huruf besar dan kecil (A-Z, a-z, 0-9), tanda sempang (-), titik (.), garis bawah (_), dan tilde (~). Setiap aksara lain dianggap 'tidak selamat' atau 'dihadkan' kerana ia mempunyai makna struktur khas dalam format URL. Contohnya, simbol ampersand (&) digunakan untuk memisahkan parameter pertanyaan, tanda sama dengan (=) menetapkan nilai, dan tanda garis miring (/) menentukan laluan direktori. Jika anda perlu menghantar aksara sebenar '&' sebagai sebahagian daripada muatan data bukannya pemisah struktur, ia mesti dikodkan peratus.
Apabila aksara perlu dikodkan peratus, ia terlebih dahulu ditukarkan kepada nilai bait yang sepadan mengikut piawaian pengekodan aksara UTF-8. Setiap bait kemudian diwakili oleh nombor heksadesimal dua digit, didahului oleh tanda peratus (%). Contohnya, aksara ruang (space) sepadan dengan nilai bait 32 dalam perpuluhan, atau 20 dalam heksadesimal. Oleh itu, ruang menjadi '%20'. Simbol 'at' (@) menjadi '%40', dan koma (,) menjadi '%2C'. Penukaran sistematik ini memastikan pelayan web, pengimbang beban, dan penyemak imbas boleh mentafsirkan sempadan URL secara sejagat tanpa sebarang kekeliruan atau kerosakan data. Tanpa pengekodan peratus, menghantar rentetan pertanyaan kompleks yang mengandungi input pengguna sewenang-wenangnya akan merosakkan struktur URL, membawa kepada ralat 400 Bad Request, pautan rosak, atau kerentanan keselamatan yang teruk seperti HTTP Parameter Pollution.
Secara sejarah, sistem yang berbeza mengendalikan pengekodan URL dalam pelbagai cara, kadang-kadang membawa kepada masalah keserasian. Contohnya, data borang yang dihantar melalui jenis kandungan application/x-www-form-urlencoded secara tradisional mengekodkan ruang sebagai tanda tambah (+), manakala RFC 3986 secara ketat mewajibkan '%20'. Rangka kerja dan bahasa pembangunan web moden umumnya mengabstrakkan perbezaan ini, tetapi mempunyai alat yang mantap, boleh dipercayai dan 100% Percuma untuk mengekod peratus rentetan secara manual kekal sebagai keperluan mutlak untuk penyahpepijatan, menguji API, dan membina pautan dalam (deep links) yang kompleks. Dengan memahami mekanik asas pengekodan peratus, pembangun boleh memastikan aplikasi mereka kukuh terhadap pelbagai input aksara, mengendalikan segala-galanya daripada teks ASCII piawai hingga emoji Unicode berbilang bait yang kompleks secara berkesan.