HTTP (Hypertext Transfer Protocol
HTTP는 요청(request)과 반응(response)으로 이루어진 프로토콜으로 볼 수 있다.
1989년도부터 개발에 착수가 되었고, 1994년 즈음에는 보안이 추가된 HTTPS 프로토콜이 나왔다.
HTTPS
HTTP는 클라이언트와 서버가 정보를 주고받을때 암호화 처리가 되어있지 않기 때문에, 제 3자가 정보를 가로채서 읽을 수가 있다.
HTTPS는 TLS/SSL 과 같이 암호화된 방식으로 데이터를 주고 받는다.
HTTP 발전 과정
- HTTP v1
- http / https 모두 사용 가능
- 전 세계 30% 웹사이트가 이용중
- client <> server 간 데이터 전달을 텍스트를 베이스로 한다.
- header에 작성된 데이터들도 그대로 전달된다 (압축되지 않아 사이즈가 크다)
- 한번에 하나의 파일만 주고 받을 수 있다
- HTTP v2
- HTTP v1을 개선한 프로토콜
- http / https 를 동시에 지원할 수 있지만, 대부분의 브라우저에서 http v2는 https 로만 동작할 수 있다. (http v2지만 http 일 경우 브라우저에서 허용해주지 않는다)
- 전 세계 50% 웹사이트가 이용중
- 텍스트가 아닌, 바이너리 형태로 데이터를 주고받는다 (효율적 / 보안)
- header 부분도 압축해서 주고받는다.
- 한번에 여러 파일을 주고 받을 수 있다.
- HTTP v3
- 아직 개발 진행중
클라이언트와 서버의 통신
- client <> server 간 TCP connection 이 생김.
- client 가 server 에게 request를 보냄 (request method, 엔드포인트, headers… 를 포함)
- 서버는 response를 client에게 보내줌 (status code, main.js …..)
- TCP connection 종료