컨텐츠상세보기

리얼월드 HTTP - 역사와 코드로 배우는 인터넷과 웹 기술 (커버이미지)
알라딘
리얼월드 HTTP - 역사와 코드로 배우는 인터넷과 웹 기술
  • 평점평점점평가없음
  • 저자시부카와 요시키 (지은이), 김성훈 (옮긴이) 
  • 출판사한빛미디어 
  • 출판일2019-04-19 
보유 1, 대출 0, 예약 0, 누적대출 0, 누적예약 0

책소개

curl과 Go 언어로 배우는 HTTP의 과거, 현재, 미래
웹 세상을 지탱하는 HTTP 기술의 변천사와 버전별 문법 및 의미론을 살펴보는 책입니다. HTTP 1.0, 1.1을 거쳐 2.0까지 브라우저 내부에서 일어나는 일과 서버와의 상호작용 등을 삽화와 예시로 소개합니다. curl, Go 언어, 자바스크립트 코드 예제로 복잡 다변한 HTTP 웹 기술을 한 권으로 정리했습니다. 모든 웹 개발자에게 권합니다.

온고지신의 자세로 배우는 HTTP의 모든 것 (ft. curl)
HTTP가 발전한 여정을 더듬으면서, 브라우저 내부에서 어떤 일이 일어나는지 그리고 서버와 어떻게 상호작용하는지 등을 다루는 책입니다. 메서드와 경로, 헤더, 바디, 스테이터스 코드 같은 HTTP 기본을 충실하게 설명하고, HTTP 1.0, 1.1을 거쳐 2.0까지 웹 세상을 지탱하는 HTTP 기술의 변천사와 버전별 문법 및 의미론을 살펴봅니다. 나아가 HTML5, 보안, REST API 같은 실무에서 꼭 알아야 할 주제를 따로 설명합니다.
HTTP의 과거부터 현재까지 모두 다루는 이유는, 기술의 기초가 되는 과거를 알면 미래에 나올 새로운 기술도 쉽게 따라잡을 수 있기 때문입니다. 테스트하기 좋은 코드 작성법, 알고리즘, 데이터베이스 등과 마찬가지로 HTTP는 노후화되지 않는 기술이며 한번 배워두면 꾸준히 도움이 되는 주제입니다.
수많은 사양이 들어 있는 모음집 RFC에 대한 참조와 함께 curl, Go 언어, 자바스크립트 등 코드 예제를 제공하므로 개발자가 폼 제출, 캐시 및 쿠키 관리, Keep-Alive, SSL/TLS, 프로토콜 업그레이드, 서버 푸시, SSE, 웹소켓 등의 동작 원리를 실습하며 학습할 수 있습니다. 복잡 다변한 HTTP 웹 기술을 한 권으로 정리하고 싶은 모든 웹 개발자에게 권합니다.

주요 내용
- 0.9부터 2.0까지 HTTP의 간략한 역사
- 메서드와 경로, 헤더, 바디, 스테이터스 코드 등 HTTP의 기본 요소 이해
- 브라우저 관점에서 바라본 HTTP와 웹 통신의 이면
- REST API 아키텍처와 이론
- curl 및 Go 언어로 웹 서비스 코드 테스트 방법 익히기
- HTTP 개념을 숙지함으로써 새로운 기술을 따라잡을 기초 쌓기

저자소개

DeNA의 게임 개발팀이 사용하는 라이브러리와 도구를 개발하는 개발기반팀 소속 엔지니어. 가끔 다른 여러 팀에 용병으로 파견된다. 파이썬, C++, 자바스크립트, Go 언어를 업무 및 취미로 다룬다. 웹은 일보다는 취미에 가깝다. 저서로 『Mithril』(오라일리 저팬, 2015), 『군것질 공부법』, 『Mobage를 지탱하는 기술』(이상 기술평론사에서 공저), 역서로 『엑스퍼트 Python 프로그래밍』, 『포모도로 테크닉 입문』(이상 아스키 미디어 워크스에서 공역), 『아트 오브 커뮤니티』(오라일리 저팬, 2011) 등이 있다. 이외에 ASCII.jp 프로그래밍+ 코너에서 'Go 언어를 이용한 시스템 프로그래밍'을 연재했다.

목차

CHAPTER 1 HTTP/1.0의 신택스: 기본이 되는 네 가지 요소

1.1 HTTP의 역사

1.2 HTTP/0.9로 할 수 있는 것을 시험하다

1.3 HTTP/0.9에서 1.0으로의 여정

1.4 HTTP의 조상 (1) 전자메일

1.5 HTTP의 조상 (2) 뉴스그룹

1.6 리디렉트

1.7 URL

1.8 바디

1.9 마치며



CHAPTER 2 HTTP/1.0의 시맨틱스: 브라우저 기본 기능의 이면

2.1 단순한 폼 전송(x-www-form-urlencoded)

2.2 폼을 이용한 파일 전송

2.3 폼을 이용한 리디렉트

2.4 콘텐트 니고시에이션

2.5 쿠키

2.6 인증과 세션

2.7 프록시

2.8 캐시

2.9 리퍼러

2.10 검색 엔진용 콘텐츠 접근 제어

2.11 마치며



CHAPTER 3 Go 언어를 이용한 HTTP/1.0 클라이언트 구현

3.1 Go 언어를 이용하는 이유

3.2 Go 언어의 API 구성

3.3 이 장에서 다룰 레시피

3.4 GET 메서드 송신과 바디, 스테이터스 코드, 헤더 수신

3.5 GET 메서드+쿼리 전송

3.6 HEAD 메서드로 헤더 가져오기

3.7 x-www-form-urlencoded 형식의 POST 메서드 전송

3.8 POST 메서드로 임의의 바디 전송

3.9 multipart/form-data 형식으로 파일 전송

3.10 쿠키 송수신

3.11 프록시 이용

3.12 파일 시스템 액세스

3.13 자유로운 메서드 전송

3.14 헤더 전송

3.15 국제화 도메인

3.16 마치며



CHAPTER 4 HTTP/1.1의 신택스: 고속화와 안전성을 추구한 확장

4.1 통신 고속화

4.2 전송 계층 보안(TLS)

4.3 PUT 메서드와 DELETE 메서드의 표준화

4.4 OPTIONS, TRACE, CONNECT 메서드 추가

4.5 프로토콜 업그레이드

4.6 가상 호스트 지원

4.7 청크

4.8 바디 전송 확인

4.9 마치며



CHAPTER 5 HTTP/1.1의 시맨틱스: 확장되는 HTTP의 용도

5.1 파일 다운로드 후 로컬에 저장하기

5.2 다운로드 중단과 재시작

5.3 XMLHttpRequest

5.4 지오로케이션

5.5 X-Powered-By 헤더

5.6 원격 프로시저 호출

5.7 WebDAV

5.8 웹사이트 간 공통 인증 및 허가 플랫폼

5.9 마치며



CHAPTER 6 Go 언어를 이용한 HTTP1.1 클라이언트 구현

6.1 Keep-Alive

6.2 TLS

6.3 프로토콜 업그레이드

6.4 청크

6.5 원격 프로시저 호출

6.6 마치며



CHAPTER 7 HTTP/2의 신택스: 프로토콜 재정의

7.1 HTTP/2

7.2 Fetch API

7.3 server-sent events

7.4 웹소켓

7.5 WebRTC

7.6 HTTP 웹 푸시

7.7 마치며



CHAPTER 8 HTTP/2의 시맨틱스: 새로운 활용 사례

8.1 반응형 디자인

8.2 시맨틱 웹

8.3 오픈 그래프 프로토콜

8.4 AMP

8.5 HTTP 라이브 스트리밍에 의한 동영상 스트리밍 재생

8.6 MPEG-DASH 동영상 스트리밍 재생

8.7 마치며



CHAPTER 9 Go 언어를 이용한 HTTP/2, HTML5 프로토콜 구현

9.1 HTTP/2

9.2 HTTP/2의 서버 푸시

9.3 server-sent events

9.4 웹소켓

9.5 마치며



CHAPTER 10 보안: 브라우저를 보호하는 HTTP의 기능

10.1 기존의 공격

10.2 브라우저를 노리는 공격의 특징

10.3 크로스 사이트 스크립팅

10.4 중간자 공격

10.5 세션 하이재킹

10.6 사이트 간 요청 위조

10.7 클릭재킹

10.8 리스트형 계정 해킹

10.9 웹 애플리케이션을 위한 보안 가이드라인

10.10 웹 광고 및 보안

10.11 마치며



CHAPTER 11 클라이언트 시점에서 보는 RESTful API

11.1 RESTful API

11.2 메서드

11.3 스테이터스 코드

11.4 바디

11.5 실제 REST API 살펴보기(PAY.jp)

11.6 실제 REST API 살펴보기(깃허브)

11.7 REST API에 액세스할 때 주의할 점

11.8 마치며



APPENDIX A Go 언어의 JSON 파싱

A.1 Go 언어의 구조체 태그를 사용한 JSON 파싱

A.2 JSON 응용하기

한줄 서평