Client의 요청이 있을때만, 서버가 응답해서 정보를 전송하고 곧바로 연결을 끊는 방식
단방향 통신에 연결상태를 유지하지 않는 stateless 방식
실시간 데이터 통신보다는 필요한 경우에만 서버에 요청하여 사용할때 유리
Client와 Server가 특정 port를 통해 연결을 유지하고 있어서, 실시간으로 양방향 통신하는 방식
양방향 통신에 연결상태를 유지하는 stateful 방식
실시간 스트리밍이나 실시간 채팅에 사용
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: v10.stomp, v11.stomp, my-team-custom
Sec-WebSocket-Version: 13
Connection: Upgrade
- HTTP 사용 방식을 변경하자Upgrade: websocket
- WebSocket을 사용하자Sec-WebSocket-Protocol: xxx, yyy, zzz
- WebSocket을 쓰면서 이 중에서 protocol을 골라서 쓰자Sec-WebSocket-Key: dfdfsefsf
- 보안을 위한 요청 키HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
101 Switching Protocols
: Handshake 요청 내용을 기반으로 다음부터 WebSocket으로 통신할 수 있다.Sec-WebSocket-Accept: 보안을 위한 응답 키
- base64.encode(Sec-WebSocket-Key.concat(GUID))Hop-by-hop headers를 사용하는
그래서 web-server에서 다시 헤더 추가를 정의해주어야한다.
https://medium.com/frientrip/pub-sub-%EC%9E%98-%EC%95%8C%EA%B3%A0-%EC%93%B0%EC%9E%90-de9dc1b9f739
서버
는 공인 CA에게 서버 정보와 서버의 공개키를 제공하고 인증을 요청한다.공인 CA
는 서버 정보를 확인하고 공인 CA의 개인키로 서버 정보와 서버의 공개키를 암호화하여 사이트 SSL 인증서를 제작한다.서버
는 SSL 인증서를 web server를 통해 게시한다.클라이언트
는 서버로부터 SSL 인증서를 받는다.클라이언트
에서 갖고있던 공인 CA 공개키를 사용하여 복호화한다.클라이언트
에서 공인 CA의 공개키를 통해 복호화가 가능하면 해당 인증서가 유효한 인증서임이 보증되고 서버의 정보와 공개키를 얻는다.클라이언트
는 대칭키를 만들고 서버의 공개키로 암호화하여 서버로 전송한다.서버
는 서버의 개인키를 사용하여 복호화하고 서버와 클라이언트는 같은 대칭키를 가지고 통신을 할 수 있다.JSP에서 현재 작업중인 페이지에서 다른 페이지로 이동하는 두가지 방식의 페이지 전환 기능