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 응용하기