[영상후기] [10분 테코톡] 🧃쿨라임의 HTTP/1.1, HTTP/2, 그리고 QUIC

박철현·2023년 4월 9일
0

영상후기

목록 보기
80/160

movie

  • HTTP : 웹상에서 서버와 클라이언트간 통신을 위한 프로토콜

  • HTTP 0.9~2 버전 까지는 TCP 사용

  • HTTP 1.0 : 요청 하나당 커넥션 1개 -> 매번 새로운 연결로 성능 저하, 서버 부하 비용 증가

  • HTTP 1.1 : Persitent Connection (지정한 timeout 동안 커넥션을 닫지 않는 방식)
    -> 파이프라이닝 도입 : 하나의 커넥션에서 응답을 기다리지 않고 순처적인 여러 요청을 연속적으로 보내 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄이는 방법
    -> Head Of Line Blocking 문제 : 첫번째 요청이 와도 서버에서 처리하는 시간이 오래 걸리면 2, 3번째 요청도 기다려야 함
    -> 연속된 요청 : 헤더 구조의 중복

  • HTTP2 : 기존 버전의 성능 향상에 초점을 맞춘 프로토콜(표준의 대체가 아닌 확장)
    -> HTTP 메시지 전송 방식의 변화
    --> 기존 : 텍스트 형태 -> 바이너리 프레이밍 계층 -> 파싱, 전송속도 증가, 오류 발생 가능성 감소
    --> 커넥션 안에 스트림 이라는 흐름에 프레임들이 들어가서 요청과 응답 발생
    -> 요청과 응답 다중화 가능(Head Of Line Blocking 해결)
    -> Stream Prioritizaiton : 리소스간 우선 순위를 설정 가능
    -> Server Push : 클라이언트가 요청하지 않은 리소스를 서버에서 알아서 보냄
    -> 헤더 압축 : 헤더의 크기를 줄여 페이지 로드 시간 감소(중복된것 인덱스만 뽑고, 중복되지 않은것만 허프만 인코딩)

  • QUIC : 전송 계층 프로토콜(UDP 기반)
    -> 전송 속도 향상 : 첫 연결 설정에서 필요한 정보와 함께 데이터 전송 -> 연결 성공 시 설정을 캐싱하여 다음 연결 때 바로 성립 가능
    -> Connection UUID라는 고유한 식별자로 서버와 연결 -> 커넥션 재수립 필요X
    -> TLS 기본 적용, IP Spoofing / Reply Attack 방지
    -> 독립 스트림 : 향상된 멀티플렉싱 기능
    -> HTTP 2.0도 TCP Head Of Line Blocking 이슈 있긴 함

  • HTTP3 : QUIC을 바탕으로 HTTP3 나옴
    -> 구글 이미 HTTP3-Quic 사용

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보