HTTP / HTTPs

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
    • 아직 개발 진행중


클라이언트와 서버의 통신

  1. client <> server 간 TCP connection 이 생김.
  2. client 가 server 에게 request를 보냄 (request method, 엔드포인트, headers… 를 포함)
  3. 서버는 response를 client에게 보내줌 (status code, main.js …..)
  4. TCP connection 종료