영어권에선 soket은 "전구(電球) 따위를 끼워 넣어 전선과 접속되게 하는 기구" 로 자주 사용되어집니다.
그렇다면 컴퓨터 공학에서의 소켓은 어떤의미일까요?
두 호스트 사이에 데이터를 주고받기위해 사용되는 양끝점 "endpoint" 를 의미 합니다
제가 여태 배웠던 방식은 HTTP 통신 방식이었는데요. 해당 방식은 "클라이언트가 데이터 요청을 하지 않으면 서버는 데이터를 먼저 보낼수 없고 한 번의 요청과 응답을 주고 받은 후 연결을 유지 하지 않는다는" 단점 가지고 있었습니다
클라이언트와 서버는 언제든지 데이터를 보낼수있습니다
핸드쉐이크로 한번 연결된 http는 연결이 끊어 질때까지 유지 됩니다
최초 연결이후엔 http 헤더 없이 데이터를 주고 받기에 통신에 필요한 데이터 양이 적습니다.
서버에서 새로운 데이터가 생성되면 즉각 클라이언트에게 푸시할 수 있습니다
HTTP 가 하나의 약속인것 과 같이 웹소켓 또한 실시간 통신을 위한 하나의 약속입니다.
HTTP리퀘스트를 통해 웹소켓 연결이 이루어집니다.
정의 출처: Oxford Languages