웹소켓
HTTP 통신을 이용하면 클라이언트에서 서버에 요청을 보내야만 서버에서 응답을 할 수 있습니다.
즉, 서버에서는 요청을 받지 않으면 클라이언트에 통신할 수 없는 것입니다.
이러한 문제점을 해결하기 위해서는 양방향으로 통신할 수 있는 웹 소켓 통신을 이용해야합니다.
웹 소켓 통신 연결은 아래 코드와 같은 방법으로 시작합니다.
let socket = new WebSocket("ws://chanstory.dev");
'http', 'https' 프로토콜과 다르게 'ws', 'wss' 프로토콜을 사용합니다.
'ws', 'wss'의 차이는 'http', 'https'와 같은 관계로 보안과 신뢰성에서 차이가 있습니다.
wss와 ws 차이점
"wss"와 "ws"는 모두 WebSocket 프로토콜을 사용하는 네트워크 프로토콜의 약어입니다.
그러나 이 둘은 암호화와 관련된 차이점이 있습니다.
"ws"는 WebSocket의 기본 프로토콜로, 웹 브라우저와 서버 사이의 데이터 통신을 암호화하지 않습니다. 이는 데이터가 제3자에게 노출될 가능성이 있으며, 보안적인 이슈가 발생할 수 있습니다.
반면에 "wss"는 WebSocket Secure의 약어로, SSL/TLS 프로토콜을 사용하여 데이터 통신을 암호화합니다.
따라서 "wss"는 "ws"보다 더 안전하며, 민감한 정보를 전송하는 애플리케이션에서 사용하는 것이 좋습니다.
요약하자면, "ws"는 보안이 필요하지 않은 경우에 사용하고, "wss"는 데이터 보호가 필요한 경우에 사용합니다.
wss 뒤에는 도메인 주소가 붙어야 한다
"wss"와 같은 보안 프로토콜은 SSL/TLS 인증서를 사용하여 서버 인증과 데이터 암호화를 수행합니다. 이 인증서는 웹 브라우저나 다른 클라이언트가 서버와 통신하는 동안 인증서의 정보를 사용하여 서버의 신원을 확인하고 데이터의 무결성과 보안을 보장합니다.
따라서 "wss"를 사용하는 클라이언트는 서버의 인증서가 신뢰할 수 있는 인증 기관에서 발급된 유효한 인증서임을 보장해야 합니다. 일반적으로 인증서를 발급하는 기관은 도메인 주소에 대한 인증서를 발급하며, 이 인증서는 해당 도메인에 대한 유효성을 검사한 후에 발급됩니다.
따라서, "wss" 뒤에 IP 주소를 사용하는 것은 보안상의 이유로 권장되지 않습니다. IP 주소를 사용하면 SSL/TLS 인증서가 유효한 도메인 주소에 대한 것인지 확인할 수 없습니다. 따라서, 인증서의 유효성 검사를 통해 서버의 신원을 확인하려면 도메인 주소를 사용해야 합니다.
'STUDY > JavaScript' 카테고리의 다른 글
[JS] canvas api - 오각형 육각형 그리기 (0) | 2023.06.21 |
---|---|
[JS] XMLHttpRequest return처리 (Callback) (0) | 2023.05.12 |
[JS] 스크롤바 맨 아래로 내리기 (0) | 2023.04.27 |
[JS] XMLHttpRequest (1) | 2023.04.19 |
[JS] URL생성자 기초 정리 (0) | 2023.04.12 |