Search

#002 #웹 앱 & HTTP 프로토콜

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는 헤더 압축이 가능 한 연결에서 여러 교환이 가능해서 지연시간을 줄일 수 있음
스트림 :
연결 내에서의 양방향 바이트 흐름, 하나 이상의 메시지를 전달 할 수 있다.
메시지 :