Top

HTTP/2 in Action [웹의 핵심 프로토콜 HTTP/2 완벽 가이드]

  • 원서명HTTP/2 in Action (ISBN 9781617295164)
  • 지은이배리 폴라드(Barry Pollard)
  • 옮긴이임혜연
  • ISBN : 9791161754475
  • 40,000원
  • 2020년 08월 31일 펴냄
  • 페이퍼백 | 608쪽 | 188*235mm
  • 시리즈 : 웹 프로페셔널

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/AcornPublishing/http2-in-action

요약

HTTP/2 프로토콜을 상세하게 소개하고 HTTP/1.1에서 웹 개발자들이 사용하던 최적화 기법을 HTTP/2 환경에서는 어떻게 바꿔야 할지 실제 예제로 이해하기 쉽게 설명한다. HTTP/2를 적용하고 싶은 웹사이트 관리자나 최적화를 원하는 웹 개발자에게 좋은 길잡이가 될 것이다.

추천의 글

새로운 HTTP/2 표준에 대한 탁월한 입문서로, 통찰력 있는 설명과 아주 유용한 예제를 제공한다.
- 알랭 쿠누(Alain Couniot), STIB-MIVB

20년 동안에 이 프로토콜에 일어난 가장 중요한 변화를 철저히 설명한다. 웹 운영자와 웹 개발자를 위한 중요한 읽을거리다.
- 로날드 크랜스턴(Ronald Cranston), 스카이(Sky) UK

HTTP/2의 미묘한 차이와 그것이 장차 개발에 어떤 영향을 미칠지 알 수 있는 훌륭한 교재다.
- 톰 맥커니(Tom McKearney), Applied Information Sciences

지금까지 본 HTTP/2의 설명 중 가장 알기 쉽다. 강력히 추천한다.
- 에드윈 쿽(Edwin Kwok), Red Soldier

이 책에서 다루는 내용

■ 웹 개발자를 위한 HTTP/2
■ 업그레이드와 문제 해결법
■ 예제와 사례 연구
■ QUIC과 HTTP/3

이 책의 대상 독자

웹 개발자, 웹사이트 관리자, 인터넷 기술의 동작 방식을 이해하는 데 관심이 있는 사람을 대상으로 작성됐다. 이 책은 HTTP/2와 그에 관련된 모든 세부사항을 완전히 다루는 것을 목표로 한다. HTTP/2에 대한 블로그 게시물이 많지만, 대부분은 특정한 주제에 대한 고수준 혹은 세부 수준만을 다루고 있다. 이 책은 프로토콜 전체를 포함해 그와 관련된 많은 복잡성을 다루는 것을 목표로 한다. 이는 여러분이 더 읽어 보려는 사양이나 특정한 블로그 게시물을 읽고 이해할 수 있게 도와줄 것이다. HTTP/2는 기본적으로 성능을 향상시키기 위해 만들어졌으므로 웹 성능 최적화에 관심이 있는 누구나 유용한 이해와 통찰력을 얻을 수 있다. 또한 이 책은 추가로 읽어 볼 수 있는 많은 참고 문헌을 포함한다.

이 책의 구성

1장, ‘웹 기술과 HTTP’는 이 책을 이해하는 데 필요한 배경 지식을 제공한다. 인터넷에 대한 기본 지식만 있는 사람도 이해할 수 있을 것이다.
2장, ‘HTTP/2를 향한 여정’은 HTTP/1.1의 문제와 HTTP/2가 필요한 이유를 살펴본다.
3장, ‘HTTP/2로 업그레이드’는 웹사이트에 HTTP/2를 활성화하는 업그레이드 옵션과 이 과정에 관련된 몇 가지 복잡한 사항을 논한다. 이 장의 내용은 유명한 웹 서버 Apache, nginx, IIS에 대한 설치 지시를 제공하는 부록에서 보충한다.
4장, ‘HTTP/2 프로토콜 기초’는 HTTP/2 프로토콜의 기초, HTTP/2 연결 설정 방법과 HTTP/2 프레임의 기본 형식을 설명한다.
5장, ‘HTTP/2 푸시의 구현’은 프로토콜의 새로운 부분으로 웹사이트 소유자가 브라우저가 요청하지 않은 리소스를 선행적으로 보낼 수 있게 허용하는 HTTP/2 푸시를 다룬다.
6장, ‘HTTP/2 최적화’는 HTTP/2가 웹 개발 관행에 의미하는 바를 살펴본다.
7장, ‘고급 HTTP/2 개념’은 HTTP/2 사양의 상태, 흐름 제어, 우선 순위 등 나머지 부분을 다루고 구현에서 HTTP/2 적합성의 차이를 살펴보겠다. 8장, ‘HPACK 헤더 압축’은 HTTP/2의 HTTP 헤더 압축에 사용되는 HPACK 프로토콜을 자세히 살펴본다.
9장, ‘TCP, QUIC, HTTP/3’는 TCP, QUIC, HTTP/3를 살펴본다. 기술은 결코 잠들지 않으며, 이제 HTTP/2를 사용할 수 있으므로 개발자들은 벌써 HTTP/2를 개선할 방법을 찾고 있다. 이 장은 HTTP/2가 풀지 못한 비효율성과 그것들이 후임자인 HTTP/3에서 어떻게 개선될 수 있을지를 논한다. 10장, ‘HTTP가 나아가는 방향’은 HTTP/2 표준화 과정 중 제기된 문제에 대한 반성과 이러한 문제가 실제 문제가 된 것으로 증명됐지 여부를 포함해 HTTP/3 이후 HTTP를 개선할 수 있는 다른 방법을 살펴본다.

저자/역자 소개

지은이의 말

HTTP(하이퍼텍스트 전송 프로토콜)는 웹사이트와 브라우저간에 메시지를 교환하기 위한 표준이다. 스트림, 서버 푸시, 헤더 압축, 우선 순위 지정 지원으로 HTTP/2는 속도와 보안, 효율성을 어마어마하게 향상시킨다.
이 책은 HTTP/2를 효과적으로 사용하기 위해 알아야 할 모든 것을 알려준다. 프레임, 다중화, 푸시와 같은 새로운 기능으로 웹 성능을 최적화하는 방법을 알게 될 것이다. 흐름 제어와 의존성과 같은 고급 주제에 대한 예제도 살펴볼 것이다. 바로 구현할 수 있는 팁과 모범 사례를 제공함으로써 여러분의 사이트를 더 빠르게 만들어 줄 것이다!

지은이 소개

배리 폴라드(Barry Pollard)

소프트웨어와 인프라 개발 및 지원 업계에서 거의 20년 경력이 있는 전문 소프트웨어 개발자다. 웹 기술, 성능 조정, 보안, 기술을 실용적으로 활용하는 데 깊은 관심을 갖고 있다. https://www.tunetheweb.com나 트위터(@tunetheweb)에서 그의 글을 볼 수 있다.

옮긴이의 말

웹 서비스를 떼어놓고 우리 삶을 생각하기 어려운 세상이 됐습니다. 그런 만큼 웹을 이루는 핵심 요소인 HTTP를 이해하는 것은 어떤 입장으로든 웹 서비스를 이해하고 개발하는 데 꼭 필요합니다.
이 책은 HTTP/2가 필요해진 이유와 HTTP/2로 진화하기까지의 과정, 최적화 기법을 적용할 때 알아야 하는 것들, 그리고 더 깊이 있게 알고 싶어하는 사람을 위해 HTTP/2 사양의 상세한 정보를 설명합니다. 게다가 이후의 발전 방향이라고 할 수 있는 QUIC과 HTTP/3에 대한 논의도 다룹니다. 그저 동작하는 사이트와 프로그램에 그치지 않고 웹을 좀 더 깊게 다루고 싶다면 도움이 될 책이라고 생각하며, 한국어판이 좀 더 빠른 습득에 도움이 됐으면 합니다.

옮긴이 소개

임혜연

다양한 경험을 추구하며 사는 개발자다. 프로그래밍 언어와 사람이 쓰는 언어 모두에 관심이 있다. 검색엔진, 모바일 메신저 앱, 회원 서비스, 지역 검색, 운영 도구, 사용자 참여 콘텐츠 서비스를 개발하고 있다. 사람이 데이터를 만들고 데이터가 흐르면서 다양한 일이 생기는 것에 재미를 느낀다. 옮긴 책으로는 『데이터 접근 패턴 Data Access Patterns』(2013, 에이콘), 『자연어 텍스트 처리를 통한 검색 시스템 구축』(2014, 에이콘), 『파이썬 성능 높이기 2/e』(2018, 에이콘)이 있다.

목차

목차
  • 1부. HTTP/2로의 전환

  • 1장. 웹 기술과 HTTP
  • 1.1 웹의 동작 방식
  • 1.1.1 인터넷과 월드 와이드 웹
  • 1.1.2 웹을 돌아다닐 때 일어나는 일
  • 1.2 HTTP란 무엇인가?
  • 1.3 HTTP의 문법과 역사
  • 1.3.1 HTTP/0.9
  • 1.3.2 HTTP/1.0
  • 1.3.3 HTTP/1.1
  • 1.4 HTTPS 개론
  • 1.5 HTTP 메시지를 보고 보내고 받는 용도로 쓰이는 도구
  • 1.5.1 웹 브라우저의 개발자 도구 사용
  • 1.5.2 HTTP 요청 전송
  • 1.5.3 HTTP 요청을 보고 전송하기 위한 기타 도구
  • 요약

  • 2장. HTTP/2를 향한 여정
  • 2.1 HTTP/1.1과 현재의 월드 와이드 웹
  • 2.1.1 HTTP/1.1의 근본적인 성능 문제
  • 2.1.2 HTTP/1.1에 대한 파이프라이닝
  • 2.1.3 웹 성능 측정에 대한 폭포수 다이어그램
  • 2.2 HTTP/1.1 성능 문제의 회피책
  • 2.2.1 여러 HTTP 연결 사용
  • 2.2.2 요청 수 줄이기
  • 2.2.3 HTTP/1 성능 최적화 요약
  • 2.3 HTTP/1.1의 기타 이슈
  • 2.4 실세계 예제
  • 2.4.1 예제 웹 사이트 1: amazon.com
  • 2.4.2 예제 웹 사이트 2: imgur.com
  • 2.4.3 이것은 정말로 얼마나 큰 문제인가?
  • 2.5 HTTP/1.1에서 HTTP/2로의 이동
  • 2.5.1 SPDY
  • 2.5.2 HTTP/2
  • 2.6 HTTP/2의 웹 성능
  • 2.6.1 HTTP/2의 파워에 대한 극단적인 사례
  • 2.6.2 HTTP/2 성능 개선에 대한 기대치 설정
  • 2.6.3 잠재적인 안티패턴으로서의 HTTP/1.1에 대한 우회적 성능 해법
  • 요약

  • 3장. HTTP/2로 업그레이드
  • 3.1 HTTP/2 지원
  • 3.1.1 브라우저 측면에서의 HTTP/2 지원
  • 3.1.2 서버에 대한 HTTP/2 지원
  • 3.1.3 HTTP/2가 지원되지 않는 경우의 대비책
  • 3.2 웹 사이트에 HTTP/2를 활성화시키는 방법
  • 3.2.1 웹 서버상의 HTTP/2
  • 3.2.2 역방향 프록시를 사용한 HTTP/2
  • 3.2.3 CDN을 통한 HTTP/2
  • 3.2.4 HTTP/2 구현 요약
  • 3.3 HTTP/2 설정 문제 해결
  • 요약

  • 2부. HTTP/2 사용

  • 4장. HTTP/2 프로토콜 기초
  • 4.1 HTTP/1.2가 아니라 HTTP/2인 이유
  • 4.1.1 텍스트 대신 바이너리
  • 4.1.2 동기적이기보다는 다중화된 프로토콜
  • 4.1.3 스트림 우선순위화와 흐름 제어
  • 4.1.4 헤더 압축
  • 4.1.5 서버 푸시
  • 4.2 HTTP/2 연결이 설정되는 방식
  • 4.2.1 HTTPS 협상 사용
  • 4.2.2 HTTP Upgrade 헤더 사용
  • 4.2.3 사전 지식 사용
  • 4.2.4 HTTP 대안 서비스
  • 4.2.5 HTTP/2 프레퍼스 메시지
  • 4.3 HTTP/2 프레임
  • 4.3.1 HTTP/2 프레임 보기
  • 4.3.2 HTTP/2 프레임 형식
  • 4.3.3 HTTP/2 메시지 흐름을 예제로 살펴보기
  • 4.3.4 기타 프레임
  • 요약

  • 5장. HTTP/2 푸시의 구현
  • 5.1 HTTP/2 서버 푸시란?
  • 5.2 푸시 방식
  • 5.2.1 푸시에 HTTP link 헤더 사용
  • 5.2.2 HTTP/2 푸시 보기
  • 5.2.3 링크 헤더를 사용해 다운스트림 시스템에서 푸시
  • 5.2.4 이른 시점에 푸시
  • 5.2.5 다른 방식의 푸시
  • 5.3 HTTP/2가 브라우저에서 동작하는 방식
  • 5.3.1 푸시 캐시 동작 방식 확인
  • 5.3.2 RST_STREAM으로 푸시 거부
  • 5.4 조건부로 푸시하는 방법
  • 5.4.1 서버 측에서 푸시 추적
  • 5.4.2 HTTP 조건적 요청 사용
  • 5.4.3 쿠키 기반 푸시 사용
  • 5.4.4 캐시 다이제스트 사용
  • 5.5 푸시할 대상
  • 5.5.1 무엇을 푸시할 수 있는가?
  • 5.5.2 무엇을 푸시해야 하는가?
  • 5.5.3 푸시 자동화
  • 5.6 HTTP/2 푸시 문제 해결
  • 5.7 HTTP/2 푸시의 성능 영향
  • 5.8 푸시와 프리로드
  • 5.9 HTTP/2 푸시에 대한 기타 사용 사례
  • 요약

  • 6장. HTTP/2 최적화
  • 6.1 HTTP/2가 웹 개발자에게 의미하는 것
  • 6.2 HTTP/1.1 최적화 중 일부는 이제 안티패턴인가?
  • 6.2.1 HTTP/2 요청에는 여전히 비용이 든다
  • 6.2.2 HTTP/2에는 한계가 있다
  • 6.2.3 더 큰 리소스에는 압축이 더 효율적이다
  • 6.2.4 대역폭 제한과 리소스 경합
  • 6.2.5 샤딩
  • 6.2.6 인라이닝
  • 6.2.7 결론
  • 6.3 HTTP/2에서도 여전히 적절한 웹 성능 기법
  • 6.3.1 전송되는 데이터의 양 최소화
  • 6.3.2 데이터 재전송 방지용 캐시 사용
  • 6.3.3 서비스 워커가 네트워크의 부하를 더 줄일 수 있다
  • 6.3.4 필요하지 않은 것을 보내지 말라
  • 6.3.5 HTTP 리소스 힌트
  • 6.3.6 최종 구간에 대한 대기시간 단축
  • 6.3.7 HTTPS 최적화
  • 6.3.8 HTTP와 연관되지 않은 웹 성능 기법
  • 6.4 HTTP/1.1과 HTTP/2 모두 최적화
  • 6.4.1 HTTP/2 트래픽 측정
  • 6.4.2 서버 측의 HTTP/2 지원 감지
  • 6.4.3 클라이언트 측의 HTTP/2 지원 감지
  • 6.4.4 연결 통합
  • 6.4.5 HTTP/1.1 사용자를 위해 언제까지 최적화할 것인가
  • 요약

  • 3부. 고급 HTTP/2

  • 7장. 고급 HTTP/2 개념
  • 7.1 스트림 상태
  • 7.2 흐름 제어
  • 7.2.1 흐름 제어 예제
  • 7.2.2 서버에 흐름 제어 설정
  • 7.3 스트림 우선순위
  • 7.3.1 스트림 의존성
  • 7.3.2 스트림 가중치
  • 7.3.3 우선순위 지정이 복잡해야 하는 이유
  • 7.3.4 웹 서버와 브라우저에서의 우선순위 지정
  • 7.4 HTTP/2 적합성 테스팅
  • 7.4.1 서버 적합성 테스팅
  • 7.4.2 클라이언트 적합성 테스팅
  • 요약

  • 8장. HPACK 헤더 압축
  • 8.1 헤더 압축이 필요해진 이유
  • 8.2 압축이 동작하는 방식
  • 8.2.1 조회 테이블
  • 8.2.2 더 효율적인 인코딩 기법
  • 8.2.3 룩백 압축
  • 8.3 HTTP 본문 압축
  • 8.4 HTTP/2의 HPACK 헤더 압축
  • 8.4.1 HPACK 정적 테이블
  • 8.4.2 HPACK 동적 테이블
  • 8.4.3 HPACK 헤더 유형
  • 8.4.4 허프만 코딩 테이블
  • 8.4.5 허프만 인코딩 스크립트
  • 8.4.6 허프만 인코딩이 항상 최적이 아닌 이유
  • 8.5 HPACK 압축의 실세계 예제
  • 8.6 클라이언트 구현과 서버 구현에서의 HPACK
  • 8.7 HPACK의 가치
  • 요약

  • 4부. HTTP의 미래
  • 9장. TCP, QUIC, HTTP/3
  • 9.1 TCP의 비효율성과 HTTP
  • 9.1.1 HTTP 연결 생성 시 설정 지연
  • 9.1.2 TCP의 혼잡 제어 비효율성
  • 9.1.3 HTTP/2에 대한 TCP 비효율성의 영향
  • 9.1.4 TCP 최적화
  • 9.1.5 TCP와 HTTP의 미래
  • 9.2 QUIC
  • 9.2.1 QUIC의 성능상 이점
  • 9.2.2 QUIC과 인터넷 스택
  • 9.2.3 UDP의 성격과 QUIC이 UDP 기반인 이유
  • 9.2.4 QUIC 표준화
  • 9.2.5 HTTP/2와 QUIC 사이의 차이점
  • 9.2.6 QUIC 도구
  • 9.2.7 QUIC 구현
  • 9.2.8 QUIC을 사용해야 할까?
  • 요약

  • 10장. HTTP가 나아가는 방향
  • 10.1 HTTP/2의 논란과 HTTP/2가 고치지 못한 것
  • 10.1.1 SPDY에 대한 논쟁
  • 10.1.2 HTTP의 개인 정보 문제와 상태
  • 10.1.3 HTTP와 암호화
  • 10.1.4 전송 프로토콜 문제
  • 10.1.5 HTTP/2는 지나치게 복잡하다
  • 10.1.6 HTTP/2는 임시방편이다
  • 10.2 실세계에서의 HTTP/2
  • 10.3 HTTP/2의 향후 버전과 HTTP/3이나 HTTP/4가 가져올 것
  • 10.3.1 QUIC이 HTTP/3인가?
  • 10.3.2 HTTP 바이너리 프로토콜의 추가 발전
  • 10.3.3 전송 계층 위에서 진화하는 HTTP
  • 10.3.4 무엇이 새로운 HTTP 버전을 필요로 할까?
  • 10.3.5 향후 HTTP 버전이 도입될 방법
  • 10.4 더 일반적인 전송 계층으로서의 HTTP
  • 10.4.1 HTTP 의미론과 메시지를 사용해 비웹 트래픽 전달
  • 10.4.2 HTTP/2 바이너리 프레이밍 계층 사용
  • 10.4.3 HTTP를 사용해 다른 프로토콜 시작
  • 요약

  • 부록. 일반적인 웹 서버를 HTTP/2로 업그레이드
  • A.1 HTTP/2를 지원하도록 웹 서버 업그레이드
  • A.1.1 아파치
  • A.1.2 nginx
  • A.1.3 마이크로소프트 인터넷 정보 서비스(IIS)
  • A.1.4 기타 서버
  • A.2 역방향 프록시 서버를 통한 HTTP/2 설정
  • A.2.1 아파치
  • A.2.2 nginx

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안