HTTP/1.0
- 한 연결당 하나의 요청을 처리하도록 설계
- 단점: 서버로부터 파일을 가져올 때마다 TCP의 3-way-handshake를 계속해서 열어야 하기 때문에 RTT가 증가
- RTT : 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간
HTTP/1.1
- 매번 TCP 연결을 하는 것이 아니라 한 번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있게 바뀜
- 문서 안에 포함된 다수의 리소스(이미지, 동영상...)를 처리하려면 요청할 리소스 개수에 비례해서 대기시간이 길어짐
- 헤더에 쿠키 등 많은 메타데이터가 들어 있고 압축이 되지 않아 무거웠음
HOL Blocking
- Head Of Line Blocking
- 네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상
HTTP/2
- SPDY 프로토콜에서 파생된 HTTP/1.x 보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있음
- 멀티플렉싱, 헤더압축, 서버 푸시, 요청의 우선순위 처리를 지원
멀티플렉싱
- 여러 개의 스트림을 사용하여 송수신
- 특정 스트림의 패킷이 손실되었따고 하더라도 해당 스트림에만 영향을 미치고 나머지 스트림은 멀쩡하게 동작 가능
헤더 압축
- 허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식
- 허프만 코딩
- 문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 작은 비트 수를 사용하여 표현하고
- 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현해서 전테 데이터의 표현에 필요한 비트양을 줄이는 원리
서버푸시
- 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있음
HTTPS
- 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청
- 통신을 암호화
- HTTP/2는 이 위에서 동작함
SEO
- Searh Engine Optimization
- 사용자들이 구글, 네이버 같은 검색엔진으로 웹 사이트르 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람이 볼 수 있도록 최적화하는 방법
캐노니컬 설정
- <link rel="canonical" href="https://example.com/page2.php"/>
메타설정
- html 파일의 가장 윗부분인 메타를 잘 성정해야 함
페이지 속도 개선
- PageSpeedInsights로 가서 자신의 서비스에 대한 리포팅을 주기적으로 받으면 관리해야 함
사이트맵 관리
- 사이트맵(sitemap.xml)을 정기적으로 관리하는 것은 필수
- 사이트맵 제너레이터를 사용하거나 직접 코드를 만들어 구축해도 됌
HTTP/3
- HTTP/1.1 및 HTTP/2와 함께 World Wid Web에서 정보를 교환하는데 사용
- TCP 위에서 돌아가는 HTTP/2와는 달리 QUIC라는 계층 위에서 돌아가며, TCP 기반이 아닌 UDP 기반으로 돌아감
- 즉, UDP기반으로 돌아감
'CS > Network' 카테고리의 다른 글
[Network] 스위치 (0) | 2024.08.26 |
---|---|
[Network] TCP/UDP 교환 방식 (0) | 2024.08.26 |
[Network] 토폴로지 (0) | 2024.08.26 |
[Network] 이런저런~ (0) | 2024.08.06 |
[Network] 구현 코드 깃 링크 (0) | 2024.03.30 |