Me sorprendió bastante que en mis experimentos, simplemente pudiera conectarme desde un sitio web a un servidor WebSocket en un par de dominio / puerto diferente. Investigaciones posteriores demostraron repetidamente que WebSockets no está incluido en la Política del mismo origen , por lo que esto tiene sentido.
Sin embargo, ¿por qué el estándar WebSocket se define de esta manera?
Parece que hay dos enfoques opuestos utilizados en la web:
-
HTTP: a menos que el servidor web tenga una configuración de CORS , ( ciertas) las solicitudes de origen cruzado son evitadas por el navegador, es decir, es una política de rechazo de inclusión voluntaria.
-
WS: a menos que el servidor WebSocket compruebe el encabezado de origen, las solicitudes de origen cruzado son posibles, es decir, es una opción de exclusión voluntaria, política de permisos.
Como WebSocket es más joven que HTTP, ¿es solo algo histórico y WS lo está haciendo correctamente? Si es así, ¿qué hay de subóptimo sobre CORS? O de lo contrario, ¿cuál fue la razón aquí?