Pengepala HTTP dalam API Klien WebSocket
Secara umum diketahui bahawa menyesuaikan pengepala HTTP boleh dicapai dengan klien pengepala HTTP yang menyokong ciri ini. Tetapi bagaimana anda melakukannya secara khusus dengan API WebSocket dalam platform web?
Adakah Mungkin?
Ringkasnya, jawapannya ialah tidak. Hanya laluan dan medan protokol boleh ditentukan.
Penjelasan Lebih Panjang
Tiada kaedah terbina dalam dalam JavaScript WebSocket API untuk menetapkan pengepala tambahan. Walau bagaimanapun, anda boleh menentukan laluan HTTP ("GET /xyz") dan pengepala protokol ("Sec-WebSocket-Protocol") semasa pemula pembina WebSocket.
Pengepala Sec-WebSocket-Protocol, yang boleh digunakan untuk pengesahan khusus soket web, diperoleh daripada hujah kedua pilihan bagi pembina:
var ws = new WebSocket("ws://example.com/path", "protocol"); var ws = new WebSocket("ws://example.com/path", ["protocol1", "protocol2"]);
Penyelesaian Kemungkinan
Pendekatan biasa untuk mengendalikan pengesahan/keizinan WebSocket adalah melalui sistem tiket. Di sini, halaman yang mengehos klien WebSocket meminta tiket daripada pelayan dan memasukkannya dalam persediaan sambungan (cth., dalam rentetan URL/pertanyaan, medan protokol atau sebagai mesej pertama selepas mewujudkan sambungan). Pelayan kemudian mengesahkan tiket untuk kesahihan dan membenarkan sambungan jika ia lulus.
Atas ialah kandungan terperinci Bolehkah saya Menyesuaikan Pengepala HTTP dalam API WebSocket?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!