[TIL] HTTP vs HTTPS

JIEUN YANG·2023년 1월 25일
0

HTTP

HTTP/1

  • 한 개의 요청에 한개의 연결 즉, 1:1 관계로 요청시마다 연결 개수가 정비례하여 RTT가 증가
  • RTT의 증가로 서버에 부담 및 응답시간 지연 -> 스플리팅,코드압축, Base64 인코딩

HTTP/1.1

  • 연결 시마다 TCP-3way handshaking 으로 처리하지 않고 keep-alive옵션을 통해 한번의 TCP연결로 여러 개의 파일을 송수신 할 수 있도록 변경
  • 헤더에 많은 meta데이터가 들어 있어서 압축이 되지 않아 용량이 큼
  • HOL Blocking 때문에 성능 저하 문제가 발생

    HOL Blocking
    같은 큐에 있는 패킷이 이전 패킷에 의해 지연될 때 발생하는 성능 저하 현상
    ex) img.jsp

HTTP2

  • HTTP/1.x 에 비해 응답 시간이 빠르며, 지연 시간이 줄어든 방식으로 멀티플렉싱, 헤더 압축, 서버 푸시, 우선순위에 따른 요청처리를 지원한다.

멀티플렉싱
여러 개의 스트림으로 송수신 하는 방법.
패킷 손실에 대응할 수 있어 데이터가 손실되어도 해당 스트림에만 영향을 미친다.

  • HTTP/1.x에서 발생했던 HOL Blocking 문제를 해결할 수 있게 됨
  • HTTP/1.x의 이슈였던 헤더의 크기를 허프만 코딩을 활용하여 개선
  • 클라이언트 요청 없이 서버에서 리소스를 푸시(html 파일 요청으로 html+css 파일 전달)

HTTPS
HTTP 위에서 동작하며, 어플리케이션과 전송 계층 사이에 SSL/TLS 계층을 넣은 요청을 의미
'통신을 암호화' 하는 데에 의의가 있다. SSL/TLS 를 통해 클라이언트-서버 외 제3자가 정보를 '인터셉터' 하는 것을 방지한다.
사이퍼 슈트, AEAD 사이퍼 모드, 디피-헬만 키 교환 암호화 알고리즘, SHA-256-알고리즘 등을 통해 데이터를 암호화 하며 이를 기반으로 인증 확인 작업이 일어나고 한번의 RTT로 데이터를 송수신한다.

  • SEO에 도움. 구글브라우저 내에서도 HTTPS 서비스를 하는 사이트의 검색 우선순위가 높아 많은 사용자들의 유입을 기대할 수 있다.

SEO

  • 캐노니컬
<link rel="canonical" href="https//test.com">

link 에 캐노니컬을 설정해야 한다.
요즘IT, 캐노니컬

  • 메타설정
<meta name="referrer" content="origin-when-crossorigin" id="meta_referrer">

html 파일 가장 윗부분에 메타를 설정해야 한다.
요즘IT, 메타설정
...

HTTPS 구축은
1. 구매한 CA인증키로 서비스 구축
2. 로드밸런서
3. CDN

HTTPS/3

  • TCP -> UDP 기반으로 정보를 교환 : 3way-handshaking 과정의 생략 따라서, 초기 연결까지 지연 시간이 줄어든다.
profile
violet's development note

0개의 댓글