728x90
📞 HTTP에 기능을 추가한 프로토콜
9.1 HTTP를 기본으로 하는 프로토콜
- 최초에는 단순히 문서를 전송하는 프로토콜로 생각했었다,
- 너무 널리 HTTP가 퍼졌기 때문에 새로운 프로토콜을 만들기는 어렵다.
- 따라서, 기능을 추가하는 형태로 다양한 요구사항을 만족하고 있다.
9.2 HTTP의 병목 현상을 해소하는 SPDY
- Google이 발표한 프로토콜이다. 웹 페이지 로딩을 50% 단축하게 목표이다.
- 병목 현상을 해결하는 좋은 기술이지만 웹의 문제는 그 외에서도 발생한다.
9.2.1 HTTP의 병목 현상
- SNS와 같이 큰 트래픽에 대해서 HTTP는 잘 처리할 수 없다.
- 다음 HTTP의 사양이 병목 현상의 원인이다.
- 1개의 커넥션에는 1개의 리퀘스트.
- 리퀘스트는 클라이언트에서만 시작할 수 있다. (리스폰스만 받는 게 불가능)
- 헤더를 압축하지 않는다.
- 장황한 헤더를 보낸다. (매번 같은 헤더)
- 데이터 압축을 임의로 선택할 수 있다. 또한, 압축을 강제하지 않는다.
Ajax
는 DOM을 조작해서 페이지의 일부만 갱신한다.Comet
은 갱신 요청에 대한 응답을 보류해서 실제로 갱신이 될 때 응답을 보낸다.
9.2.2 SPDY 설계와 기능
- TCP/IP의 애플리케이션 계층과 트랜스포트 계층 사이에 새로운 세션 계층을 추가하는 형태이다.
- 보안 표준으로 SSL을 사용한다. 단순히 추가된 것으로 HTTP 커넥션은 그대로이다.
다중화 스트림
지원 : 단일 커넥션으로 여러 요청을 처리할 수 있다.리퀘스트 우선 순위
지원 : 요청에 우선순위를 할당한다. 처리가 늦어지는 현상을 해결할 수 있다.헤더 압축
지원 : 헤더의 압축을 강제한다. 적은 자원으로 통신할 수 있다.서버 푸시
지원 : 서버에서 클라이언트로 데이터를 푸시하는 기능. 요청을 기다리지 않아도 된다.서버 힌트
지원 : 서버가 클라이언트에게 요청할 리소스를 제안하는 기능이다. 불필요한 요청을 방지한다.
9.3 브라우저에서 양방향 통신을 하는 WebSocket
Ajax
와Comet
을 통해서 웹 브라우징이 고속화되지만 완벽한 병목 현상 해결은 어렵다.WebSocket
은 웹 브라우저와 서버를 위한 양방향 통신 규격으로 새로운 프로토콜이다.
9.3.1 WebSocket 프로토콜
- 한번 접속되면 양방향 모두 마음대로 통신할 수 있고 전용 프로토콜을 사용한다.
- JSON, XML, HTML 등 임의의 데이터를 활용할 수 있다.
서버 푸시
기능을 제공하고, 한번 접속을 확립하기 위해서핸드쉐이크
절차를 밟는다.- 핸드쉐이크/요청 :
Upgrade
헤더로 프로토콜 변경을 요청하고,Sec-WebSocket-Key
에 필요한 키를 담아 보낸다. - 핸드쉐이크/응답 :
Sec-WebSocket-Key
에 값을Sec-WebSocket-Accept
에 저장 담고101
로 응답한다.
9.4 등장이 기다려지는 HTTP/2.0
- 지금 HTTP/1.1은 웹에 적합하다고 할 수는 없다.
- 다음 프로토콜은
SPDY
,HTTP Spped+Mobility
,Network-Friendly HTTP Upgrade
을 기반으로 한다.
9.5 웹 서버 상의 파일을 관리하는 WebDAV
- 웹 서버의 콘텐츠에 대해서 직접 파일 복사나 편집 작업 등을 할 수 있는 분산 파일 시스템이다.
😋 지극히 개인적인 블로그지만 댓글과 조언은 제 성장에 도움이 됩니다 😋
'개인 공부 > Network (그림으로 배우는 Http&Network Basic)' 카테고리의 다른 글
Http&Network Basic : 웹 공격 기술 (11장) (0) | 2023.07.11 |
---|---|
Http&Network Basic : 웹 콘텐츠에서 사용하는 기술 (10장) (0) | 2023.07.11 |
Http&Network Basic : 누가 엑세스하고 있는지를 확인하는 인증 (8장) (0) | 2023.07.04 |
Http&Network Basic : 웹을 안전하게 지켜주는 HTTPS (7장) (0) | 2023.06.27 |
Http&Network Basic : HTTP 헤더 (6장) (0) | 2023.06.20 |
댓글