솜이의 데브로그

9장 ) HTTP에 기능을 추가한 프로토콜 본문

CS/Network

9장 ) HTTP에 기능을 추가한 프로토콜

somsoming 2021. 11. 25. 00:38

Reference : 그림으로 배우는 Http&Network Basic

 

9장 ) HTTP에 기능을 추가한 프로토콜

 

HTTP의 병목 현상을 해소하는 SPDY

 

  • 갱신된 정보를 가능한 빨리 실시간으로 표시하기 위해서는 서버상의 정보가 갱신되었을 때, 그것을 클라이언트의 화면에 반영해야한다.
  • 현재 웹에 요구되고 있는 사용 방법으로는 다음 병목 현상들이 된다.
    • 1개의 커넥션으로 1개의 리퀘스트만 보낼 수 있다.
    • 리퀘스트는 클라이언트에서만 시작할 수 있다. 리스폰스만 받는 것은 불가능
    • 리퀘스트/리스폰스 헤더를 압축하지 않은 채로 보낸다. 헤더의 정보가 많을수록 지연이 심해진다.
    • 장황한 헤더를 보낸다. 매번 같은 헤더를 보내는 것은 낭비
    • 데이터 압축을 임의로 선택할 수 있다.

 

해결방법

 

-Ajax

  • JavaScript나 DOM 조작을 활용
  • 웹 페이지의 일부분만 고쳐 쓸 수 있는 비동기 통신 방법
  • XMLHttpRequest로 JavaScript 등의 스크립트 언어로 서버와 HTTP 통신
  • 실시간으로 서버에서 정보를 취득하려고 하면 대량의 리퀘스트가 발생한다는 문제가 있다.

 

-Comet

  • 서버측의 갱신이 있을 경우, 클라이언트로부터 리퀘스트를 기다리지 않고 클라이언트에게 보내기 위한 방법.
  • 리퀘스트가 오면 리스폰스를 보류 상태로 해두고, 서버의 콘텐츠가 갱신되었을 때에 리스폰스를 반환
  • 콘텐츠를 실시간으로 갱신할 수 있지만, 리스폰스를 보류하기 위해 커넥션을 유지하는 시간이 길어진다.

 

 

spdy 설계와 기능

  • 보안을 위해 표준으로 SSL사용
  • TCP/IP의 애플리케이션 계층과 트랜스포트 계층 사이에 새로운 세션 계층을 추가하는 형태로 동작.

 

SPDY를 사용해 추가할 수 있는 기능

  • 다중화 스트림 : 단일 TCP 접속을 통해 복수의 HTTP 리퀘스트를 무제한으로 처리
  • 리퀘스트의 우선 순위 부여 : 리퀘스트를 병렬처리하며 각 우선순위 할당
  • HTTP 헤더 압축 : 리퀘스트와 리스폰스의 HTTP 헤더를 압축
  • 서버 푸시 : 서버에서 클라이언트로 데이터를 푸쉬하는 서버 푸시 기능을 지원
  • 서버 힌트 : 서버가 클라이언트에게 리퀘스트 해야 할 리소스를 제안

 

 

브라우저에서 양방향 통신을 하는 WebSocket

  • WebSocket은 웹 서버와 클라이언트가 한번 접속을 확립하면 그 뒤의 통신을 모두 전용 프로토콜로 하는 방식이다.
  • 서버 푸시 기능 : 서버에서 클라이언트에 데이터를 푸시
  • 통신량 삭감 : 접속을 한번 확립하면 유지하려고 한다.
  • 핸드쉐이크/리퀘스트 : HTTP의 Upgrade 헤더 필드를 사용해 프로토콜을 변경.
  • 핸드쉐이크/리스폰스 : 위의 리퀘스트에 대한 리스폰스를 상태코드 [101 Switching Protocols]로 반환.

 

 

HTTP/2.0 의 특징

  • SPDY
  • HTTP Speed+Mobility
  • Network-Friendly HTTP Upgrade

 

 

웹 서버 상의 파일을 관리하는 WebDAV

- 웹 서버의 콘텐츠에 대해 직접 파일 복사나 편집 작업 등을 할 수 있는 분산 파일 시스템.

  • 파일 작성이나 삭제 등 기본적인 기능 이외에 파일 작성자 등의 관리나 편집 중에 다른 유저가 다시 고쳐 쓰지 못하도록 잠금 기능, 갱신 정보를 관리하는 기능 등이 있다.
  • 컬렉션(Collection) : 여러개의 리소스를 한꺼번에 관리하기 위한 개념
  • 자원(Resource) : 파일이나 컬렉션을 리소스라고 한다.
  • 프로퍼티(Property) : 리소스의 프로퍼티를 정의.
  • 잠금(Lock) : 파일을 편집할 수 없는 상태로 한다.

 

'CS > Network' 카테고리의 다른 글

11장 ) 웹 공격 기술, 취약성 (1)  (0) 2021.12.19
10장 ) 웹 콘텐츠에서 사용하는 기술  (0) 2021.12.05
8장 ) 액세스 인증  (0) 2021.11.09
7장 ) 웹을 안전하게 하는 HTTPS  (0) 2021.11.01
9장 ) 무선 랜 통신  (0) 2021.11.01