네트워크 - HTTP

ROCKBELL·2022년 12월 1일
0

CS 전공지식

목록 보기
11/18

HTTP

HTTP는 애플리케이션 계층으로 써 웹 서비스 통신에 사용됩니다

HTTP/1.0

하나의 연결당 하나의 요청을 처리하도록 설계되어있으며,
이는 RTT의 증가를 불러오게되었습니다

서버로부터 파일을 가져올 때마다 TCP의 3-way handshake를 계속 열어야하기때문에
RTT가 증가하는 단점이 있습니다

RTT (Round Trip Time)
패킷이 목적지에 도달하고나서 다시 출발지로 되돌아오기까지 걸리는 시간
(패킷 왕복 시간)

RTT 증가를 해결하기 위한 방법

  • 이미지 스플리팅 : background-position을 활용
  • 코드 압축 : 개행문자 및 빈칸 제거
  • 이미지 Base64 인코딩 : 64진법으로 이루어진 문자열로 인코딩
    • 서버 요청은 필요가 없어지나 파일 크기는 37% 정도 크기가 커짐

인코딩
정보의 형태나 형식을 표준화, 보안, 처리속도 향상, 저장공간 절약 등을 위해 다른 형태나 형식으로 변환하는 처리 방식

HTTP/1.1

TCP 초기화를 한 이후에 keep-alive 옵션으로 여러개의 파일을 송/수신 할 수 있습니다 (keep-alive는 이전에도 존재했으나 1.1부터 표준화 됨)

HTTP/1.1 에서는 한번 3-way handshake가 발생하면 그 이후에는 발생하지 않습니다
하지만 다수의 리소스를 처리하게 되면 대기 시간이 길어지는 단점이 있습니다

HTTP/1.1의 단점

  • HOL Blocking 발생 : 다수의 리소스 다운로드시 이전 패킷에 의해 지연될때 발생하는 성능 저하 현상
  • 무거운 헤더 구조 : 쿠키를 비롯한 메타데이터가 압축이 되어있지 않은 상태로 들어있음

HTTP/2

기존 SPDY 프로토콜에서 파생된 HTTP/1.X 보다 지연시간을 줄이고, 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜입니다

멀티플렉싱

여러개의 스트림을 사용하여 송수신하는 것으로 특정 스트림의 패킷이 손실 되어도 나머지 스트림은 영향없이 정상적으로 동작

스트림
시가닝 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름

허프만 코딩

1.X 의 무거운 헤더구조를 해결하기위해, HTTP/2 에서는 허프만코딩 압축 알고리즘을 사용하는 HPACK 압축형식을 가집니다

무손실 압축 알고리즘으로 빈도가 높은 정보는 적은 비트 수를, 빈도가 낮은 정보는 비트 수를 많이 사용하여 전체 테이터 표현에 필요한 비트 수를 줄이는 원리

서버 푸시

클라이언트의 요청없이도 서버에서 바로 리소스를 푸시할 수 있습니다

HTTPS

HTTPS는 HTTP/2 위에서 동작합니다
HTTPS는 애플리케이션 계층과 전송계층 사이에 신뢰계층인 SSL/TLS계층을 넣은 신뢰할 수 있는 HTTP 요청을 말합니다

  • SSL : Secure Socket Layer
  • TLS : Transport Layer Security Protocol

보안세션

SSL/TLS는 handshake를 통해 보안세션을 생성하고 이를 기반으로 상태 정보를 공유합니다

세션
운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간

클라이언트에서 사이퍼 슈트를 서버에 전달하면 서버는 암호화 알고리즘 리스트를 제공할 수 있는지 확인한 후 클라이언트에 인증서를 보내는 인증 매커니즘이 시작됩니다
이후 해싱 알고리즘으로 암호화된 데이터의 송수신이 시작됩니다

사이퍼슈트
프로토콜, AEAD 사이퍼 모드, 해싱알고리즘 이 나열된 규악

  • TLS_AES_128_GCM_SHA256
  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_CCM_SHA256
  • TLS_AES_128_CCM_8_SHA256

AEAD 사이퍼 모드
Authenticated Encryption with Assosicated Data

  • AES_128_GCM - 128비트의 키를 사용한 암호화 기술과 병렬계산 용이한 알고리즘 GCM이 결합된 알고리즘

인증 매커니즘

인증 매커니즘은 CA(Certificate Authorities)에서 발급한 인증서를 기반으로 이루어집니다
클라이언트에게 공개키를 제공하고 사용자가 접속한 서버가 신뢰 할수 있는 서버 임을 보장합니다

CA 발급 기업

  • Comodo
  • GoDaddy
  • GlobalSign
  • Amazon

CA 발급과정

  • 사이트정보와 공개키 제출
  • CA의 비밀키를 기반으로 인증서 발급

암호화 알고리즘

  • ECDHE - 대수곡선 기반
  • DHE - 모듈식 기반

디피-헬만 키 교환 암호화 알고리즘
y=g^x mod p

참조URL - https://injae-kim.github.io/dev/2020/08/07/diffie-hellman-algorithm.html

해싱 알고리즘

데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘입니다

  • SHA-256 : 해시 함수의 결과값이 256비트인 알고리즘
  • SHA-384 : 해시 함수의 결과값이 384비트인 알고리즘

해시
다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값

해싱
임의의 데이터를 해시로 바꿔주는 일

해시 함수
임의의 데이터를 해시값으로 바꾸어주는 함수

SEO에 도움이 되는 HTTPS

HTTPS를 사용하는 사이트가 SEO순위가 더 높습니다
SEO 검섹엔진을 최적하면 사이트 유입이 증가합니다

  • 케노니컬 <link rel="canonical">
  • 메타 설정 <meta>
  • 페이지속도 개선
  • 사이트맵 관리 (sitemap,xml)

HTTPS 구축방법

  • CA 인증키
  • 로드밸런서
  • CDN

HTTP/3

QUIC이라는 계층 위에서 돌아가며, UDP기반으로 돌아갑니다

TCP를 사용하지 않기 때문에 번거로운 3-way handshake 과정이 필요없습니다
순방향 오류 수정 매커니즘이 적용되기때문에 전송한 패킷이 손실되었다면 수신 측에서 에러를 검출하고 수정하는 방식이며 열악한 네트워크 환경에서도 낮은 패킷 손실률을 자랑합니다

profile
luv it

0개의 댓글