Search

HTTP에 기능을 추가한 프로토콜

9.1 HTTP를 기본으로 하는 프로토콜

초기와 달리 여러 방면에서 사용되는 HTTP 프로토콜

9.2 HTTP의 병목 현상을 해소하는 SPDY

google은 해당 프로토콜을 포기하고 HTTP/2.0 에 좀 더 집중하기로 함
이를 위한 TLS 확장 기능인 NPN과 후속판 ALPN 기능도 삭제
대부분의 장점은 HTTP/2에 포함되어있기 때문임

9.2.1 HTTP의 병목현상

Ajax에 의한 해결 방법
웹 페이지의 일부분만 고쳐쓸수 있는 비동기 통신 방법
서버에서 정보를 취득하려할 시 대량의 리퀘스트 발생 가능
Comet에 의한 해결 방법
응답을 연장시켜 서버 푸쉬기능과 유사하게 구현해 서버의 콘텐츠가 갱신 시 리스폰스 반환
커넥션을 유지하는 동안은 리소스를 소비
방법으로
Ajax polling
반복시간에 대한 이슈가 존재
hidden iframe
서버가 클라이언트에 요청시 Content-length 헤더를 출력하지 않으면 클라이언트는 서버측으로부터 접속이 종료될 때까지 받아들이는 특성 이용
long polling by ajax
long polling by script tag
script tag의 src속성에 서버측에서 응답할 주소를 입력하고 내용이 있을 때까지 접속 유
브라우저 제약은 없으나, 에러를 다룰수없고 스트리밍식 방식 불가
long polling 이란?
응답을 계속 기다리다, 데이터를 받고 접속이 끊어지면 새로운 접속 생성

9.2.2 SPDY 설계와 기능

9.3 브라우저에서 양방향 통신을 하는 WebSocket

9.3.1 WebSocket의 설계와 기능

Ajax와 Comet에서 사용하는 XMLHttpReqeust의 단점을 해결하기 위한 기술

9.3.2 WebSocket Protocol

최초의 HTTP 요청을 통해 WebSocket 커넥션 생성 후 full duplex(A와 B간 통신선이 하나씩 존재하는 방법)를 통해 연결 수립

9.4 등장이 기다려지는 HTTP/2.0

SPDY라는 비표준 개방형네트워크 프로토콜 기반하며 기존 HTTP 개념 호환

Frame & Stream & Messages

평문과 개행으로 구성된 프로토콜에서 바이너리 포멧으로 인코딩 된 Message와 Frame으로 구성
Stream : 연결 내에서 전달되는 바이트의 양방향 흐름
Message : 요청 또는 응답 메시지에 매핑되는 프레임의 전체 시퀀스
Frame : 통신의 최소단위이며 각 최소 단위에는 하나의 프레임 헤더가 포함

HTTP Header Data Compression(헤더 데이터 압축)

이전의 중복된 헤더는 재전송하지 않으며, 압축방식을 사용해 효율을 높임

Server Push

클라이언트에서는 요청하지 않았지만 필요하게 될 특정 파일들 전송

HOL(Head of line) Blocking 문제 해결

한번에 하나의 파일이 전송가능 했는데, 하나의 파일이 늦어지면 전부가 늦어졌다. 이를 병렬전송을 통해 해결
프로토콜에따른 부하차이
http는 터지는데 socket.ioi를 바로 연결하면 안터진다?>