Saya telah membaca tentang WebSockets dan saya bertanya-tanya mengapa browser tidak bisa begitu saja membuka koneksi TCP sepele dan berkomunikasi dengan server seperti aplikasi desktop lainnya. Dan mengapa komunikasi ini dimungkinkan melalui soket web?
167
80
. Menurut definisi satu port HANYA dapat melampirkan ke satu aplikasi . Jadi bagaimana jika klien ingin menggunakan layanan, selain web (HTTP) tetapi hanya ada satu port yang tersedia? Voila! Soket web!Jawaban:
Lebih mudah untuk berkomunikasi melalui soket TCP ketika Anda bekerja di dalam batas intranet, karena Anda mungkin memiliki kendali atas mesin-mesin di jaringan itu dan dapat membuka port yang sesuai untuk membuat koneksi TCP.
Melalui internet, Anda berkomunikasi dengan server orang lain di ujung lainnya. Mereka sangat tidak mungkin memiliki soket lama terbuka untuk koneksi. Biasanya mereka hanya memiliki beberapa yang standar seperti port 80 untuk HTTP atau 443 untuk HTTPS. Jadi, untuk berkomunikasi dengan server Anda wajib terhubung menggunakan salah satu port tersebut.
Karena ini adalah port standar untuk server web yang umumnya berbicara HTTP, Anda wajib mematuhi protokol HTTP, jika tidak server tidak akan berbicara kepada Anda. Tujuan dari soket web adalah untuk memungkinkan Anda memulai koneksi melalui HTTP, tetapi kemudian bernegosiasi untuk menggunakan protokol soket web (dengan asumsi server mampu melakukannya) untuk memungkinkan aliran komunikasi yang lebih mirip "TCP TCP".
sumber
Browser web beroperasi pada lapisan Aplikasi, sedangkan TCP beroperasi pada Transport Layer. Sebagai pengembang aplikasi web, lebih mudah untuk mengirim pesan melalui kabel melalui Layer Aplikasi daripada byte mentah di Transport Layer.
WebSockets yang mendasari adalah TCP, itu hanya disarikan untuk kesederhanaan.
sumber
Websocket adalah protokol lapisan aplikasi sedangkan TCP adalah protokol lapisan transportasi. Pada layer transport, kita biasanya memiliki protokol TCP dan UDP. Setiap pesan dari lapisan aplikasi harus melalui lapisan transportasi untuk dikirim ke mesin lain. Oleh karena itu, websocket dan tcp memiliki hubungan satu sama lain dan tidak dapat dibandingkan.
sumber
Untuk membuatnya sederhana, komunikasi websocket dilakukan melalui TCP port nomor 80 (atau 443 dalam kasus koneksi terenkripsi TLS), yang bermanfaat bagi lingkungan yang memblokir koneksi internet non-web menggunakan firewall .
Apakah Anda ingin menggunakan port TCP yang ada atau membuka port TCP baru yang mungkin diblokir oleh firewall?
sumber