Mengenal Protokol POP
Widjil Widodo
Saat ini di kalangan masyarakat pengguna internet, POP bukanlah suatu barang baru. Dengan menggunakan POP, seseorang mendapat kemudahan untuk mendapatkan mail miliknya dari sebuah mail server, tanpa perlu koneksi yang lama dengan internet yang tentu saja memakan biaya.
Dibawah ini, penulis akan sedikit menerangkan tentang cara kerja dari POP.
Pada tulisan ini, akan banyak ditemui istilah client dan server. Client dan server merupakan bagian dari arsitektur yang banyak digunakan pada implementasi layanan internet. Arsitektur ini biasa disebut sebagai client/server architecture. Pengertian client pada pembahasan tentang POP3 ini adalah pihak yang menggunakan layanan POP3 dan server adalah pihak yang menyediakan layanannya
Apakah POP itu ?
POP atau Post Office Protocol, sesuai dengan namanya merupakan protokol yang digunakan untuk pengelolaan mail. POP yang sekarang lebih umum dikenal dengan POP3 (POP - Version 3), dimaksudkan untuk mengizinkan client untuk mengakses secara dinamis mail yang masih ada di POP3 server. POP3 menawarkan pada user untuk meninggalkan mail-nya di POP3 server, dan mengambil mail-nya tersebut dari sejumlah sistem sebarang.
Untuk mengambil mail dengan menggunakan POP3 dari suatu client, banyak pilihan yang dapat digunakan seperti :
- Sun Microsystem Inc.'s Mailtool,
- QualComm Inc.'s Eudora,
- Netscape Comm. Corp.'s
- Netscape Mail dan
- Microsoft Corp.'s Outlook Express.
POP3 tidak dimaksudkan untuk menyediakan operasi manipulasi mail yang ada di server secara luas.
Pada POP3, mail diambil dari server dan kemudian dihapus (bisa juga tidak dihapus). Segala sesuatu tentang protokol POP3 ini dibahas dalam RFC (Request For Comment) 1725. Protokol yang lebih tinggi dan lebih kompleks, yaitu IMAP4, dibahas dalam RFC 1730.
Mode POP3
Ada dua jenis mode pada POP3 yaitu mode offline dan mode inline.
Pada mode offline, POP3 mengambil dan kemudian menghapus mail yang tersimpan dari server.
POP3 bekerja dengan baik pada mode ini, karena terutama memang didisain untuk berlaku sebagai sebuah sistem mail yang memiliki sifat "store-and-forward". Server, pada mode offline, berlaku seperti sebuah tempat penampungan yang menyimpan mail sampai user memintanya.
Pada mode inline, POP3 akan mengambil mail dari server tanpa menghapus mail yang sudah diambil tersebut.
Mode ini lebih disukai oleh user yang sering berpindah tempat (nomadic user) karena memungkinkan mereka untuk melihat mail yang sama dari tempat atau komputer yang berbeda.
Akan tetapi untuk nomadic user yang selalu bekerja dan bepergian dengan selalu membawa notebook, dan tetap menginginkan agar mail miliknya yang ada di server tidak dihapus, tentu saja menginginkan agar setiap kali mengambil mail tidak semua mail yang akan terambil, tapi hanya mail yang belum pernah dia lihat saja yang akan diambil.
Keinginan user seperti ini dapat dipenuhi dengan menggunakan informasi pada client yang memungkinkan untuk memberi tanda mail yang sudah pernah dilihat. Setiap client layanan POP3 yang mendukung mode inline akan menyimpan informasi ini dalam sebuah file. Pada user yang menggunakan Netscape Mail, file yang menyimpan informasi ini adalah file popstate.dat, yang biasanya terdapat di /Program Files/Netscape/Users/Mail. File tersebut memberi tahu mail yang mana saja yang sudah diambil sehingga tidak perlu diambil lagi. Jika file ini dihapus maka tentu saja pada pengambilan mail berikutnya semua mail akan terambil.
Contoh isi file popstate.dat untuk seorang user yang memiliki login misalnya 'wandi' di POP3 server students.itb.ac.id adalah sebagai berikut :
# Netscape POP3 State File
# This is a generated file! Do not edit.
*students.itb.ac.id wandi
k c67ee091087ed814337b4cb31e0d488c
k 8541822a98e890b88d8299d034993f61
k 652e17a1c984e610e4e55257c07b6ff4
Pada file ini kode dibelakang huruf k merupakan unique-id.
Unique-id ini secara unik mengidentifikasi sebuah mail dalam maildrop sehingga masing-masing mail memiliki unique-id yang berbeda.
Jika misalnya mail kita yang berada di komputer lokal sudah terhapus sedangkan kita ingin membacanya lagi, maka sebelum kita mengambil maildrop dari server, file popstate.dat ini harus dihapus terlebih dahulu. Apabila kita belum menghapus file tersebut maka akan ada pesan : " no new messages on server ", yang diberikan oleh Netscape Mail. Untuk pemakai Eudora, file yang menyimpan informasi ini adalah file lmos.dat, sedangkan untuk pengguna Outlook Express biasanya menggunakan file pop3uidl.dat.
Operasi Dasar POP3
Pada awalnya, server memulai layanan POP3 dengan mendengarkan permintaan pada TCP port 110.
Ketika sebuah client meminta layanan tersebut, maka terjadilah hubungan TCP dengan server. Pada saat hubungan dimulai, POP3 server mengirim greeting (kata pembuka). Setelah itu client akan memberikan command (perintah) ke server dan POP3 server akan memberikan response (jawaban) sampai hubungan ditutup atau digagalkan. Perlu diingat bahwa user tidak memasukkan perintah ini, tapi software dari client-lah yang mengirim perintah ini ke server.
Perintah-perintah di POP3 terdiri dari sebuah keyword yang tidak case sensitive (tidak mempersoalkan huruf kapital ataupun tidak), yang dapat diikuti oleh satu atau lebih argument.
Keyword dan argument masing-masing dipisahkan oleh karakter SPACE (spasi). Keyword terdiri dari tiga atau empat karakter, sedangkan tiap argument dapat mencapai 40 karakter. Jawaban di POP3 terdiri dari sebuah indikator status dan sebuah keyword yang dapat diikuti oleh informasi tambahan. Ada dua indikator status : positif ("+OK") dan negatif ("-ERR"). Server harus memberikan jawaban +OK dan -ERR dalam huruf kapital. Pada perintah tertentu, server akan memberikan jawaban yang terdiri dari beberapa baris.
Sebuah sesi hubungan POP3 dibangun melalui tiga tahap, yaitu tahap authorization, transaction dan update.
Sekali hubungan TCP dimulai dan POP3 server telah mengirimkan greeting , maka sesi hubungan telah memasuki tahap authorization.
Pada tahap ini client mengirim nama dan password user ke server untuk membuktian keaslian user tersebut agar dapat mengambil mail-nya.
Ketika client telah berhasil membuktikan identitas dirinya, server akan memperoleh informasi yang berhubungan dengan mail yang dimiliki client tersebut, dan sesi kini memasuki tahap transaction.
Pada tahap inilah terjadi proses penerimaan mail, penandaan mail untuk penghapusan, pembatalan penandaan untuk penghapusan, penampilan statistik mail atau perincian identitas mail.
Pada saat client telah memberikan perintah quit untuk mengakhiri hubungan, maka sesi memasuki tahap update.
Pada tahap inilah server akan menjalankan semua perintah yang diperoleh selama tahap transaction dan menutup sesi dan selanjutnya hubungan TCP ditutup.
Sebuah server harus menjawab perintah yang tidak dikenal, tidak diimplementasi, atau tidak sesuai dengan sintaksis dengan indikator status negatif. Server juga harus memberikan indikator status negatif, jika ada client yang memberikan perintah tidak pada tahap yang seharusnya. Tidak ada metoda umum yang dapat digunakan oleh client untuk membedakan antara server yang tidak mengimplementasikan perintah tambahan dengan server yang tidak dapat atau tidak bersedia memproses perintah tambahan tersebut.
Sebuah POP3 server mungkin memiliki autologout timer untuk client yang sedang tidak aktif dalam rentang waktu tertentu.
Timer seperti ini harus paling sedikit memiliki rentang waktu 10 menit. Jika sebuah server menerima sebarang perintah dari client didalam rentang waktu tersebut, maka hal ini sudah cukup untuk me-reset autologout timer tersebut. Ketika waktu rentang timer sudah habis, tanpa ada aktivitas dari client maka sesi hubungan tidak memasuki tahap UPDATE. Server akan menutup hubungan TCP tanpa menghapus mail atau mengirim jawaban ke client.