책 소개
요약
HTML5 웹소켓(WebSocket)은 서버와 클라이언트 사이에서 전이중 양방향 통신을 제공하여 실시간 웹 응용프로그램이 가능하게 해준다. 이 책에서는 실제로 동작하는 채팅 예제 응용프로그램 작성을 통해 웹소켓의 기능을 상세하게 설명하고 현대적인 웹 응용프로그램을 만드는 전체 과정을 안내해준다. 또한 보안 레이어를 추가하고 구형 브라우저를 위한 추가적인 폴백 기능을 제공하는 과정을 차례차례 배울 수 있다. 이 책은 프론트엔드 웹 개발자들이 안전하고 확장 가능한 실시간 웹 응용프로그램을 개발하고 배포할 수 있도록 도움을 줄 것이다.
이 책에서 다루는 내용
■ 웹소켓 API의 개념과 우수성
■ 원격 서버에 연결하는 웹소켓 클라이언트와 다른 클라이언트로의 메시지 전송 구현
■ 기존의 기술과 지식을 사용한 웹소켓 서버의 구성
■ 모바일과 태블릿 기기용 네이티브 웹소켓 클라이언트의 구현
■ HTML5 웹소켓을 지원하지 않는 구버전 브라우저의 지원
■ 가능한 위험요소의 인지와 안전한 웹 응용프로그램의 구현
■ JSON을 사용한 복잡한 메시지의 구성
이 책의 대상 독자
이 책은 고성능의 실시간 웹 응용프로그램 구축을 원하는 모든 사람을 위한 책이다. 프론트엔드 웹 개발(HTML / XHTML, 자바스크립트)에 익숙하다면 이 책을 이해하는 데 큰 도움이 된다.
이 책의 구성
1장, ‘웹소켓 소개’에서는 웹소켓 프로토콜을 요점 위주로 간략하게 소개하고 웹의 양방향 통신 필요성에 대해 설명한다. 그리고 영감을 제공해주는 몇몇 실제 사례들을 소개한다.
2장, ‘웹소켓 API’에서는 웹소켓 API의 기본 개념을 소개하고 웹소켓 클라이언트 응용프로그램을 구현한다.
3장, ‘서버 구성’에서는 효과적으로 진정한 양방향 통신을 지원할 수 있게 서버 측의 주요 기능을 구현한다.
4장, ‘데이터 전송: 송신, 수신, 디코딩’에서는 웹소켓으로 텍스트, 이미지, 멀티미디어 등 다양한 유형의 데이터를 처리하는 방법을 설명한다.
5장, ‘보안’에서는 웹소켓 응용프로그램 실행 시 발생할 수 있는 몇 가지 일반적인 보안 위험에 대해 알아보고 시스템 안정성을 보장하는 방법을 제공한다.
6장, ‘에러 처리와 폴백’에서는 오류가 발생했을 때 처리하는 방법과 구형 브라우저에서 웹소켓 동작을 어떻게 에뮬레이션 할 수 있는지에 대한 해답을 제시한다.
7장, ‘모바일과 태블릿’에서는 웹소켓 기능을 모바일 세계로 확장해 아이폰이나 아이패드에서 웹소켓 앱을 네이티브로 실행하는 방법을 알아본다.
부록에서는 흥미로운 논쟁 기사를 포함한 몇 가지 추가 리소스를 제공한다.
목차
목차
- 1장 웹소켓 소개
- 웹소켓 이전 세상
- 폴링
- 롱 폴링
- 스트리밍
- 포스트백과 AJAX
- HTML5의 등장
- 웹소켓 프로토콜
- URL
- 브라우저 지원
- 누가 웹소켓을 사용하는가
- 모바일?
- 미래는 이미 시작됐다
- 무엇을 만들 것인가
- 요약
- 웹소켓 이전 세상
- 2장 웹소켓 API
- HTML5의 기초
- 마크업
- 스타일링
- 로직
- 채팅 응용프로그램
- API 개요
- 지원 브라우저
- 웹소켓 오브젝트
- 이벤트
- onopen
- onmessage
- onclose
- onerror
- 동작
- send( )
- close( )
- 속성
- 전체 예제
- index.html
- chat.js
- 서버
- 요약
- HTML5의 기초
- 3장 서버 구성
- 소켓 서버가 필요한 이유
- 서버 설정
- 적합한 기술 선택
- C/C++
- 자바
- .NET
- PHP
- 소제목 : 파이썬(Python)
- 루비(Ruby)
- 자바스크립트
- 개발 환경 설정
- 적합한 기술 선택
- 웹 서버 연결
- 웹소켓 서버 인스턴스 생성
- Open
- Close
- Message
- Send
- 다른 메소드
- 전체 소스 코드
- 요약
- 4장 데이터 전송: 송신, 수신, 디코딩
- 웹소켓으로 전송할 수 있는 데이터 종류
- 문자열
- JSON
- XML
- ArrayBuffer
- Blobs
- 비디오 스트림
- 문자열
- 전체 통합
- JSON을 이용한 닉네임과 메시지 전송
- 서버에 이미지 전송
- 요약
- 웹소켓으로 전송할 수 있는 데이터 종류
- 5장 보안
- 웹소켓 헤더
- 일반적인 공격
- 서비스 거부
- 맨 인 더 미들
- XSS
- 웹소켓 기본 방어 메커니즘
- SSH/TLS
- 클라이언트 서버 마스킹
- 보안 도구 상자
- 피들러
- 와이어샤크
- 브라우저 개발자 도구
- ZAP
- 요약
- 6장 에러 처리와 폴백
- 에러 처리
- 네트워크 가용성 확인
- 폴백 솔루션
- 자바스크립트 폴리필
- 인기 있는 폴리필
- 브라우저 플러그인
- 자바스크립트 폴리필
- 요약
- 에러 처리
- 7장 모바일과 태블릿
- 왜 모바일이 중요한가
- 네이티브 모바일 앱 vs 모바일 웹 사이트
- 전제 조건
- SDK 설치
- 모바일 브라우저에서 기존 코드 테스트하기
- 네이티브로 가기
- 프로젝트 만들기
- 웹소켓 아이폰 앱 만들기
- 아이패드용 앱 작성
- 요약
- 자원
- 온라인 소스
- 기사
- 소스 코드
- 시스템 요구 사항
- 연락
- 왜 모바일이 중요한가
- 부록 참고자료