: HTML 문서만 날리는 HTTP/0.9와 다르게 다양한 파일(css,image 등)을 받을 수 있도록 설계됨
단전
: 매번 새로운 연결로 성능 저하
서버 부하 비용 상승
HTTP 1.0 환경에서는 하나의 IP에 여러 개의 도메인을 운영할 수 없다.
HTTP 1.0은 기본적으로 Connection 당 하나의 요청을 처리할 수 있다. 그렇기 때문에 동시 전송은 불가능하고 하나의 요청에 대한 응답이 온 후 다음 요청을 처리한다.
HTTP/1.0에서 RTT 감소를 위해 이미지 스플리팅,코드 압축,base64인코딩 등 시행한다.
: HTTP/1.0의 단점을 해결하기 위해 발전한 버전이다. keep-alive 옵션으로 여러번 송수신할 수 있게 바뀌었다. 처음 TCP 연결 후 지정한 timeout 동안 연결을 지속한다.
또한 파이프라이닝 기능이 지원된다.

--파이프라이닝: 보통 파이프라이닝과 대조되는 것이 stop and wait 방식이다. stop and wait 방식은 송신자가 요청을 보내면 응답을 받아야지만 다음 요청을 보낼수 있는 방식이다. 하지만 파이프라이닝 기능은 송신자가 응답을 받지 않아도 요청을 보낼 수 있는 것을 말한다.
HTTP/1.1에서 클라이언트와 서버간의 커넥션을 유지하게 됐으므로 파이프라이닝을 통해 더 효율적인 통신이 가능해졌다.
하지만 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비례해 대기시간이 길어지는 단점이 있다.
2015년에 출시 됬고 HTTP/1과 가장 큰 차이점은 멀티플렉싱을 사용한다는 점이다. 즉 여러 리소스를 한번에 요청할수 있게 됬고, 중복 헤더 제거와 헤더 압축을 이요해 패킷 크기가 매우 작아졌다.

멀티플랙싱이란?
디멀티플랙싱이란?
HOL Blocking 이란?
예를 들어 클라이언트가 서버에 메인화면 GET 요청을 했다. 메인화면을 나타내기 위해 HTML 3개 CSS 2개 js 2개의 리소스가 필요하다고 가정했을때
HTTP/1 로 돌아가서 설명을 하면 HTML 3개 요청 후 응답을 받을 때까지 기다리고, CSS 요청 후 또 기다리고 JS 요청 후 기다려서 모든 리소스를 받는 작업을 수행했다. 이러한 이유로 지연이 되는 것을 HOL Blocking이라고 한다.
HOL Blocking 이란 같은 큐에 있는 데이터중 첫 번째 데이터의 처리 시간이 길수록 뒤의 데이터 지연 시간이 길어져 성능이 저하되는 현상이다.
이러한 문제를 HTTP/2 는 멀티플렉싱 기능 덕분에 HTML,CSS,JS 를 한꺼번에 요청하고 한꺼번에 응답을 받고 또 Server Push라는 요청하지 않은 리소스를 서버가 자체적으로 전달하는 기능을 제공 하여 성능을 개선 했다.
: TCP 기반 통신인 HTTP/2는 hand-shaking을 수행해야 하는 고질적인 문제가 있었는데 이런 연결 시간으로 딜레이 되는 시간을 줄이기 위해 HTTP/3 은 UDP 기반인 QUIC 프로토콜을 사용하여 통신한다.
: 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말한다. 이를 통해 통신을 암호화 할수 있다.
HTTPS 구축방법
1) CA에서 구매한 인증키를 기반으로 HTTPS 서비스 구축
2) 서버 앞단의 HTTPS를 제공하는 로드밸런서 두기
3) 서버 앞단단에 HTTPS를 제공하는 CDN을 둬서 구축
사이퍼 수트 각 항목들

키교환 알고리즘 : Server와 Client간 Key를 교환할 방식을 선정하는 것입니다.
인증 알고리즘 : Server와 Client간 교환한 인증서를 확인하는 알고리즘입니다.
대칭 암호 알고리즘 : 실제 데이터를 암호화 하는 알고리즘입니다.
블록 암호 운용 방식 : 데이터를 암호화 할때 한꺼번에 암호화 하는 것이 아니라 블록 단위로 암호화 하게 되는데, 블록된 암호화 패킷을 조합하여 데이터를 추측 하는 것을 방지하기 위한 방식입니다.
해시 알고리즘 : 서로 상대방이 암호화 한것이 맞는지 확인하기 위한 알고리즘
TLS 프로토콜을 사용하며, 키교환 방식은 ECDHE, 인증알고리즘은 RSA, 대칭알고리즘으로 AES를 사용하며 암호키 길이는 256비트, 블록암호운용모드는 GCM이고 HMAC용 해시 알고리즘은 SHA-384를 사용한다는 것입니다.