apakah ada yang punya definisi yang baik tentang apa itu protokol biner? dan apa sebenarnya protokol teks itu? bagaimana ini dibandingkan satu sama lain dalam hal bit yang dikirim melalui kabel?
inilah yang wikipedia katakan tentang protokol biner:
Protokol biner adalah protokol yang dimaksudkan atau diharapkan untuk dibaca oleh mesin daripada manusia ( http://en.wikipedia.org/wiki/Binary_protocol )
Oh ayolah!
untuk lebih jelasnya, jika saya memiliki file jpg bagaimana itu akan dikirim melalui protokol biner dan bagaimana melalui teks? dalam hal bit / byte yang dikirim melalui kabel tentunya.
pada akhirnya jika Anda melihat sebuah string itu sendiri adalah sebuah array byte sehingga perbedaan antara 2 protokol harus bertumpu pada data aktual apa yang sedang dikirim pada kabel. dengan kata lain, tentang bagaimana data awal (file jpg) dikodekan sebelum dikirim.
Jawaban:
Protokol biner versus protokol teks tidak benar-benar tentang bagaimana gumpalan biner dikodekan. Perbedaan sebenarnya adalah apakah protokol berorientasi di sekitar struktur data atau di sekitar string teks. Izinkan saya memberi contoh: HTTP. HTTP adalah protokol teks, meskipun ketika mengirimkan gambar jpeg, ia hanya mengirim byte mentah, bukan teks yang mengkodekannya.
Tapi yang membuat HTTP menjadi protokol teks adalah pertukaran untuk mendapatkan jpg terlihat seperti ini:
Permintaan:
Tanggapan:
Perhatikan bahwa ini bisa dengan sangat mudah telah dikemas jauh lebih rapat ke dalam struktur yang akan terlihat (dalam C) seperti
Permintaan:
Tanggapan:
Di mana nama bidang tidak harus dikirim sama sekali, dan di mana, misalnya,
responseType
dalam struktur respons adalah int dengan nilai 200, bukan tiga karakter '2' '0' '0'. Itulah yang dimaksud dengan protokol berbasis teks: protokol yang dirancang untuk dikomunikasikan sebagai aliran datar baris teks (biasanya dapat dibaca manusia), bukan sebagai data terstruktur dari berbagai jenis.sumber
Berikut adalah definisi cop-out:
Ini adalah salah satu kasus di mana sangat sulit untuk menemukan definisi ringkas yang mencakup semua kasus sudut. Tapi itu juga salah satu kasus di mana kasus sudut sama sekali tidak relevan, karena tidak terjadi dalam kehidupan nyata.
Hampir semua protokol yang akan Anda temui dalam kehidupan nyata akan terlihat seperti ini:
[Bayangkan banyak omong kosong lain yang tidak bisa dicetak di sana. Salah satu tantangan dalam menyampaikan perbedaan antara teks dan biner adalah Anda harus melakukan penyampaian dalam teks :-)]
Atau seperti ini:
[Saya baru saja mengarangnya di tempat.]
Tidak ada banyak ambiguitas di sana.
Definisi lain yang terkadang saya dengar adalah
Mungkin saya menunjukkan kekonyolan saya di sini, tetapi saya sebenarnya telah menulis dan membaca email melalui SMTP dan POP3, membaca artikel usenet melalui NNTP dan melihat halaman web melalui HTTP menggunakan
telnet
, tidak ada alasan lain selain untuk melihat apakah itu benar-benar berfungsi.Sebenarnya, saat menulis ini, saya agak demam lagi:
Sial, sudah cukup lama sejak aku melakukan ini. Cukup banyak kesalahan di sana :-)
sumber
Contoh protokol biner: RTP , TCP , IP .
Contoh protokol teks: SMTP , HTTP , SIP .
Ini akan memungkinkan Anda untuk menggeneralisasi definisi yang wajar dari protokol biner vs teks.
Petunjuk: langsung saja ke bagian contoh, atau diagram. Mereka berfungsi untuk menggambarkan jawaban goyang Tyler .
sumber
Seperti yang disarankan sebagian besar dari Anda, kami tidak dapat membedakan apakah protokolnya Biner atau teks hanya dengan melihat konten di kawat
AFIK
Protokol biner - Bit adalah batas Urutan sangat penting
Misalnya, RTP
Dua bit pertama adalah versi Bit berikutnya adalah bit MarkUp
Protokol teks - Pembatas khusus untuk protokol Urutan bidang tidak penting
Misalnya, SIP
Satu lagi adalah, dalam protokol biner, kita dapat membagi satu byte, yaitu, satu bit mungkin memiliki arti individu tertentu; Sedangkan dalam protokol teks, unit yang berarti minimum adalah BYTE. Anda tidak dapat membagi satu byte pun.
sumber
Keduanya menggunakan kumpulan karakter yang berbeda, teks satu, menggunakan kumpulan karakter yang dikurangi, biner mencakup semua yang dapat dilakukannya, tidak hanya "huruf" dan "angka", (itulah mengapa wikipedia mengatakan "manusia")
Anda harus membaca Base64 ini
Saya pikir esensi untuk mempersempit charset, mempersempit kompleksitas, dan jangkauan portabilitas, kompatibilitas. Lebih sulit untuk mengatur dan setuju dengan banyak orang untuk menghormati rangkaian karakter yang luas, (atau apa pun yang luas). Alfabet Latin / Romawi dan angka Arab dikenal di seluruh dunia. (Tentu saja ada pertimbangan lain untuk mengurangi kode, tapi itu yang utama)
Katakanlah dalam protokol biner "kontrak" antara bagian-bagian adalah tentang bit, bit pertama berarti ini, kedua itu, dll .. atau bahkan byte (tetapi dengan kebebasan menggunakan charset tanpa memikirkan portabilitas) misalnya dalam sistem tertutup privat atau (mendekati standar perangkat keras), namun jika Anda merancang sistem terbuka, Anda harus memperhitungkan bagaimana kode Anda akan direpresentasikan dalam berbagai situasi, misalnya bagaimana kode tersebut akan ditampilkan dalam mesin di belahan dunia lain ?, jadi inilah protokol teks di mana kontrak akan menjadi standar mungkin. Saya telah merancang keduanya dan itulah alasannya, biner untuk solusi dan teks yang sangat khusus untuk sistem terbuka atau / dan portabel.
sumber
Bagaimana kami dapat mengirim file gambar dalam SOAP: Klik di sini
Ini menunjukkan bahwa data biner dilampirkan seperti [LAMPIRAN] dan referensinya disimpan dalam pesan SOAP.
Jadi, protokolnya berbasis teks dan data [Image] adalah lampiran biner yang pengkodeannya tidak relevan
Jadi, SOAP adalah protokol teks karena cara kami menentukan header Soap dan bukan data aktual yang dikodekan di dalamnya.
sumber
Saya pikir Anda salah. Bukan protokol yang menentukan bagaimana data terlihat di "kabel", tetapi tipe datanya yang menentukan protokol mana yang akan digunakan untuk mengirimkannya. Ambil soket tcp misalnya, file jpeg akan dikirim dan diterima dengan protokol biner karena itu adalah data biner (tidak dapat dibaca manusia, byte yang berada di antara kisaran 32-126 ascii), tetapi Anda dapat mengirim / menerima file teks dengan kedua protokol dan Anda tidak akan melihat perbedaannya.
sumber
Protokol teks bisa cukup jelas dan ekstensif. Cukup jelas karena pesan tersebut menyertakan nama kolom tepat di pesan itu sendiri. Anda tidak dapat memahami arti nilai dalam pesan protokol biner jika Anda tidak merujuk ke spesifikasi protokol.
Ini berarti HTTP sebagai protokol teks yang luas hanya membuat aturan sederhana tetapi Anda dapat memperluas struktur data dengan menambahkan header baru secara bebas atau dengan mengubah jenis konten untuk mengangkut muatan yang berbeda. Dan headernya adalah meta data dan memiliki kemampuan negosiasi dan adaptasi otomatis.
sumber