Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP

Perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP

WBOY
WBOYasal
2023-10-15 09:55:521294semak imbas

Perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP

Perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP

Pengenalan:
Dengan populariti Internet, permintaan untuk aplikasi Web terus meningkat Untuk mencapai interaksi masa nyata dan fungsi tolak, protokol komunikasi baharu WebSocket wujud. Protokol HTTP tradisional digantikan secara beransur-ansur oleh WebSocket dalam proses ini. Artikel ini akan menumpukan pada perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP, dan memberikan contoh kod khusus.

1. Ciri-ciri protokol HTTP:
Protokol HTTP ialah protokol lapisan aplikasi, berdasarkan model permintaan-tindak balas. Permintaan HTTP adalah tanpa kewarganegaraan, iaitu, setiap permintaan adalah bebas dan pelayan tidak menyimpan maklumat keadaan klien. Pelanggan memperoleh data atau melengkapkan interaksi dengan menghantar permintaan HTTP kepada pelayan Selepas menerima permintaan, pelayan mengembalikan data dengan menghantar respons HTTP kepada klien. Mod ini sesuai untuk penyemakan imbas web tradisional, tetapi ia tidak berpengalaman untuk interaksi masa nyata dan fungsi tolak.

2. Ciri-ciri protokol WebSocket:

  1. Masa nyata: WebSocket boleh mencapai komunikasi dupleks penuh, mewujudkan sambungan komunikasi yang berterusan antara pelanggan dan pelayan, dan boleh menghantar data dalam kedua-dua arah dalam masa nyata, memberikan yang lebih baik masa nyata.
  2. Latensi rendah: Oleh kerana WebSocket menggunakan kaedah komunikasi dupleks penuh, berbanding dengan mod respons permintaan HTTP, ia mengelakkan proses mewujudkan sambungan dan menghantar pengepala beberapa kali, menjimatkan banyak kelewatan komunikasi.
  3. Kebolehpercayaan: Oleh kerana WebSocket menggunakan sambungan yang panjang, ia boleh mengekalkan status sambungan dan boleh menangani masalah seperti gangguan rangkaian dan kegagalan sambungan, memastikan penghantaran data yang boleh dipercayai.

3 Perbezaan antara WebSocket dan HTTP:

  1. Proses jabat tangan adalah berbeza: dalam protokol HTTP, pelanggan menghantar permintaan kepada pelayan, pelayan mengembalikan respons kepada klien, dan kemudian sambungan ditutup. ; semasa dalam protokol WebSocket , proses jabat tangan khas akan dilakukan antara klien dan pelayan Selepas sambungan berjaya diwujudkan, keadaan sambungan panjang boleh dikekalkan.
  2. Format penghantaran data yang berbeza: Protokol HTTP menggunakan teks biasa untuk menghantar data, manakala protokol WebSocket boleh memilih untuk menggunakan teks biasa atau format binari untuk menghantar data, memberikannya lebih fleksibiliti.
  3. Masa pengekalan sambungan adalah berbeza: protokol HTTP adalah permintaan-sambungan akan ditutup selepas respons, dan tiada ciri sambungan berterusan manakala protokol WebSocket mewujudkan sambungan yang panjang, mengekalkan sambungan berterusan untuk tempoh masa, dan menyediakan komunikasi masa nyata dan fungsi tolak .

4 Sambungan antara WebSocket dan HTTP:

  1. WebSocket adalah berdasarkan protokol HTTP: proses jabat tangan WebSocket menggunakan maklumat pengepala HTTP untuk menaik taraf protokol HTTP kepada protokol WebSocket, jadi WebSocket dilakukan pada. protokol HTTP Ia dilanjutkan dan mewarisi beberapa ciri HTTP.
  2. Kongsi port yang sama: WebSocket dan HTTP berkongsi port yang sama dan berkomunikasi melalui port 80 atau port 443, jadi perkhidmatan WebSocket dan HTTP boleh diakses melalui antara muka komunikasi yang sama.

Contoh Kod:
Berikut ialah contoh kod ringkas yang menggunakan protokol WebSocket untuk melaksanakan fungsi sembang masa nyata.

// 服务端代码
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws) {
  ws.on('message', function incoming(message) {
    console.log('received: %s', message);
    // 对收到的消息进行处理
    ws.send('Hello, ' + message);
  });
  
  ws.send('连接成功!');
});

// 客户端代码
const socket = new WebSocket('ws://localhost:8080');

socket.onopen = function() {
  console.log('WebSocket连接成功!');
};

socket.onmessage = function(event) {
  console.log('消息:' + event.data);
};

socket.send('Hello Server!');

Contoh ini menggunakan ws perpustakaan Node.js untuk melaksanakan pelayan dan pelanggan WebSocket yang mudah. Apabila klien menghantar mesej kepada pelayan, pelayan memproses mesej dan menghantar respons kepada klien. Pelanggan mencetak respons daripada pelayan apabila ia menerimanya. Melalui protokol WebSocket, komunikasi dua hala dan fungsi tolak masa nyata direalisasikan.

Kesimpulan:
Protokol WebSocket dan protokol HTTP sangat berbeza dalam mencapai interaksi masa nyata dan fungsi tolak. Protokol WebSocket mempunyai ciri-ciri masa nyata, kependaman rendah dan kebolehpercayaan, dan sesuai untuk senario aplikasi dengan interaksi masa nyata dan fungsi tolak. Protokol HTTP sesuai untuk mod tindak balas permintaan sekali sahaja. Tetapi WebSocket adalah sambungan berdasarkan protokol HTTP, dan kedua-duanya disambungkan dan saling melengkapi antara satu sama lain.

Rujukan:

  1. https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
  2. https://developer.mozilla.org/en-US/docs/Web/HTTP / Gambaran keseluruhan

Atas ialah kandungan terperinci Perbezaan dan sambungan antara protokol WebSocket dan protokol HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn