WebSocket

Wonjun Hwang
Wonjun HwangCEO @Kit Works Inc. à Kit Works inc.
WebSocket
웹소켓및실시간서비스
서버와클라이언트가데이터를주고받기
http 요청
데이터
HTTP
요청에대한응답후
데이터
HTTP
실시간서비스
HTTP 반복요청
해결책
http 통신을종료하지않고계속유지
Server Sent Event
WebSocket
양방향통신
http 통신을종료하지않고계속유지
Server Sent Event
단점: 서버만일방적으로데이터를보냄
지속적으로수신만가능
양방향통신
WebSocket
TCP 연결기반으로양방향통신가능
WebSocket
WebSocket
채팅방연결예시
WebSocket
채팅방연결예시
WebSocket
채팅방연결예시
WebSocket
WebSocket
채팅방연결예시
WebSocket
WebSocket
채팅방연결예시
WebSocket
WebSocket
채팅방연결예시
WebSocket 이전의실시간통신방식
일정한주기로서버에요청(Request)을보내는방법
불필요한Request와Connection을생성하여서버에부담
‘일정주기마다' 요청을보내기때문에실시간이라고하기애매하다
HTTP 통신을하기때문에Request, Response 헤더가불필요하게크다
Polling 방식을선택하는경우
다수의사용자가동시에사용하는경우
응답을실시간으로받지않아도되는경우
HTTP Polling
WebSocket 이전의실시간통신방식
요청을보냈을때, 서버가응답을바로보내지않고
특정이벤트가발생했을때응답
불필요한요청을보내지않아Polling 보다좋아보이지만Long Polling도
동시다발적인요청과응답이생기면부하가발생
HTTP 통신을하기때문에Request, Response 헤더가불필요하게크다
LongPolling 방식을선택하는경우
응답을실시간으로받아야하는경우
적은수의사용자가동시에사용하는경우
HTTP Long Polling
WebSocket 이전의실시간통신방식
이벤트가발생했을때응답을내려주되,
응답을완료시키지않고계속연결유지
Long Polling에비해응답마다다시요청하지않아도되어효율적
연결시간이길어질수록연결유효성관리의부담이발생
HTTP 통신을하기때문에Request, Response 헤더가불필요하게크다
HTTP Streaming
WebSocket 동작과정
Opening Handshake
Data transfer
Closing Handshake
WebSocket 라이브러리
연결끊기면자동재접속기능
웹소켓접속자마다자동ID 부여
모든웹소켓유저에게전체메세지전송가능
웹소켓방생성가능
Socket.io
SocketJS
HTML5 이전의기술로구현된서비스에서웹소켓처럼사용할수있도록도와줌
브라우저와웹서버의종류와버전을파악하여가장적합한기술을선택하여사용
WebSocket, FlashSocket, AJAX Long Polling
AJAX Multi part Streaming, IFrame, JSONP Polling
Upgrade
프로토콜을전환하기위해사용하는헤더.
웹소켓요청시에는반스에websocket 이라는값을가짐
이값이없거나다른값이면cross-protocol attack 이라고간주하여
웹소켓접속을중지
Connection
현재의전송이완료된후네트워크접속을유지할것인가에대한정보
웹소켓요청시에는반드시Upgrade 라는값을가짐
Upgrade 와마찬가지로이값이없거나다른값이면웹소켓접속을중지
WebSocket 요청헤더
Sec-WebSocket-Key
유효한요청인지확인하기위해사용하는키값
Sec-WebSocket-Protocol
사용하고자하는하나이상의웹소켓프로토콜지정
필요한경우에만사용
Sec-WebSocket-Version
클라이언트가사용하고자하는웹소켓프로토콜버전
현재최신버전13
WebSocket 요청헤더
HTTP/1.1 101 Switching Protocols
101은HTTP에서WS로프로토콜전환이승인되었다는
응답코드
Sec-WebSocket-Accept
요청헤더의Sec-WebSocket-Key에유니크아이디를
더해서SHA-1로해싱한후base64로인코딩한결과
웹소켓연결이개시되었음을알림
WebSocket 요청헤더
1 sur 22

Recommandé

Comet par
CometComet
Cometknight1128
2.1K vues7 diapositives
Servlet3 par
Servlet3Servlet3
Servlet3Sukjin Yun
1.2K vues33 diapositives
Websocket.. whit http, tcp par
Websocket.. whit http, tcpWebsocket.. whit http, tcp
Websocket.. whit http, tcpdana238767
84 vues25 diapositives
HeadFisrt Servlet&JSP Chapter 1 par
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1J B
719 vues19 diapositives
Servlet&jsp 1장 par
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
494 vues19 diapositives
이승재, 실시간 HTTP 양방향 통신, NDC2012 par
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
11K vues57 diapositives

Contenu connexe

Similaire à WebSocket

WebRTC par
WebRTCWebRTC
WebRTCWonjun Hwang
22 vues18 diapositives
Websocket par
WebsocketWebsocket
Websocketdana238767
43 vues20 diapositives
웹소켓 (WebSocket) par
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)jeongseokoh
3K vues11 diapositives
WebRTC in 2014 par
WebRTC in 2014WebRTC in 2014
WebRTC in 2014Lee WonJae
6.5K vues45 diapositives
[NodeJS] - NET 모듈 소개 par
[NodeJS] - NET 모듈 소개[NodeJS] - NET 모듈 소개
[NodeJS] - NET 모듈 소개문학청년
7.5K vues35 diapositives
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료) par
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)KH Park (박경훈)
2.5K vues69 diapositives

Similaire à WebSocket(19)

WebRTC in 2014 par Lee WonJae
WebRTC in 2014WebRTC in 2014
WebRTC in 2014
Lee WonJae6.5K vues
[NodeJS] - NET 모듈 소개 par 문학청년
[NodeJS] - NET 모듈 소개[NodeJS] - NET 모듈 소개
[NodeJS] - NET 모듈 소개
문학청년7.5K vues
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료) par KH Park (박경훈)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
WebSocket 기반 쌍방향 메시징 par trustinlee
WebSocket 기반 쌍방향 메시징WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징
trustinlee7K vues
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for) par 진태 이
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
진태 이69 vues
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해) par DK Lee
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee11.2K vues
TCP echo 서버 및 클라이언트 예제 스터디 par quxn6
TCP echo 서버 및 클라이언트 예제 스터디TCP echo 서버 및 클라이언트 예제 스터디
TCP echo 서버 및 클라이언트 예제 스터디
quxn64K vues
HTTP 완벽가이드 4장 커넥션관리 par 박 민규
HTTP 완벽가이드 4장 커넥션관리HTTP 완벽가이드 4장 커넥션관리
HTTP 완벽가이드 4장 커넥션관리
박 민규2.1K vues
Http에 대해서 par suhalee
Http에 대해서Http에 대해서
Http에 대해서
suhalee18 vues
소켓프로그래밍 기초요약 par 세빈 정
소켓프로그래밍 기초요약소켓프로그래밍 기초요약
소켓프로그래밍 기초요약
세빈 정9.1K vues
JSP 프로그래밍 #03 서블릿 par Myungjin Lee
JSP 프로그래밍 #03 서블릿JSP 프로그래밍 #03 서블릿
JSP 프로그래밍 #03 서블릿
Myungjin Lee201 vues
Web App Security 2015.10 par Chanjin Park
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10
Chanjin Park2.1K vues
웹(자바기준)의 전반적인 이해 par JAEHYUN LIM
웹(자바기준)의 전반적인 이해웹(자바기준)의 전반적인 이해
웹(자바기준)의 전반적인 이해
JAEHYUN LIM1.6K vues
웹 서버 실행 환경 par 성균 전
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경
성균 전960 vues

Plus de Wonjun Hwang

상속과 구현 par
상속과 구현상속과 구현
상속과 구현Wonjun Hwang
0 vue77 diapositives
오버라이딩 조금 더 알아보기 par
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기Wonjun Hwang
0 vue22 diapositives
컴포넌트 설계 par
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
14 vues21 diapositives
성능 테스트 par
성능 테스트성능 테스트
성능 테스트Wonjun Hwang
13 vues13 diapositives
Flutter & Firebase par
Flutter & FirebaseFlutter & Firebase
Flutter & FirebaseWonjun Hwang
18 vues16 diapositives
SOLID par
SOLIDSOLID
SOLIDWonjun Hwang
26 vues41 diapositives

Plus de Wonjun Hwang(20)

오버라이딩 조금 더 알아보기 par Wonjun Hwang
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기
Wonjun Hwang0 vue
프론트엔드 비동기 프로그래밍 par Wonjun Hwang
프론트엔드 비동기 프로그래밍프론트엔드 비동기 프로그래밍
프론트엔드 비동기 프로그래밍
Wonjun Hwang28 vues
트렌디 앱 - ARC & OBSIDIAN par Wonjun Hwang
트렌디 앱 - ARC & OBSIDIAN트렌디 앱 - ARC & OBSIDIAN
트렌디 앱 - ARC & OBSIDIAN
Wonjun Hwang29 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang6 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang37 vues

WebSocket