HTTP
•
문서를 전송하기 위한 애플리케이션 프로토콜
•
웹 브라우저와 웹 서버간의 통신을 위해 설계
•
HTTP는 클라이언트가 요청을 위해 연결을 열고 응답을 받을 때까지 대기하는 형태
•
HTTP는 무상태 프로토콜, 서버가 두 요청간에 어떠한 데이터도 저장하지 않는다.
HTTP 쿠키
•
RFC 6265에서 정의
•
HTTP 요청을 서버에 넘겨줄 때, 서버는 응답과 함께 Set-Cookie로 HTTP헤더를 돌려준다.
•
그 다음부터 클라이언트는 모든 요청에 쿠키의 값을 Cookie 요청 헤더의 형태로 다시 돌려준다.
CORS
•
교차 사이트 HTTP요청은 생성한 리소스 도메인과 다른 도메인에 대한 HTTP 요청
•
ex) 도메인 A의 페이지가 img 요소를 통해 도메인 B의 이미지에 대한 요청을 생성하는 것
•
CORS로 교차 사이트 요청에 대해서 제어할 수 있음
HTTP2
•
주요목표는 응답 다중화 지원하여 지연시간을 줄임
•
헤더 필드의 효율적인 압축 → 오버헤드 최소화
•
요청 우선순위 지정, 서버 푸시 지원
•
HTTP의 핵심 개념 상속
•
클라이언트 서버간의 데이터 형식 및 전송 방식 수정, 모든 애플리케이션을 수정 없이 제공
•
모든 통신은 단일 TCP연결을 통해 수행되며 전달 될 수 있는 양방향 스트림의 수는 제한이 없다.
•
HTTP1에서는 여러 병렬 요청을 수행하기 위해서 여러 TCP 연결을 사용해야하지만,
•
HTTP 내의 스트림 종속항목은 스트림 고유식별자를 참조하는 형식으로 선언된다.
•
SPDY에 대한 지원 중단 NPN지원중단, 서버 개발자는 HTTP2/ALPN으로 전환하는 것이 좋다.
•
HTTP1은 지연시간을 줄이기 위해 여러 연결을 사용해야되고, 헤더를 압축하지 않으므로 불필요한 네트워크 트래픽이 발생 → HTTP2는 헤더 압축이 가능 한 연결에서 여러 교환이 가능해서 지연시간을 줄일 수 있음
•
스트림 :
연결 내에서의 양방향 바이트 흐름, 하나 이상의 메시지를 전달 할 수 있다.
•
메시지 :