Part 1 웹 서비스 기초
1장. 서블릿 컨테이너를 학습해야 하는 이유
01. 웹 애플리케이션 서버의 역할
2장. HTTP 프로토콜의 이해
01 .아파치 TCPMon
02. HTTP 프로토콜의 간략한 소개
03. 첫 번째 HTTP 메시지 분석 - 청크 인코딩
04. 두 번째 HTTP 메시지 분석 - Content-Length 지정
05. 매개변수를 이용한 GET 요청
06. 매개변수를 동반한 요청 - POST 방식 (x-www-form-urlencoded)
07. FORM은 POST 전용인가?
08. 서블릿 컨테이너의 매개변수 처리 - GET/POST 방식의 차이점
09. 바이너리 데이터 전송 - multipart/form-data
10. 더 생각해 볼 문제
3장. 서블릿의 이해
01. 서블릿이란 무엇인가
02. GenericServlet
03. HttpServlet
04. Apache Tomcat
05. 웹 애플리케이션 배치
06. 더 생각해 볼 문제
Part 2 서블릿 컨테이너
4장. HTTP 프로토콜 분석기
01. 메시지의 끝은 어디인가
02. HTTP GET 요청 처리기
03. 메시지 바디 처리 - Content-Length 인식
04. 매개변수의 처리 - 쿼리스트링과 x-www-form-urlencoded
05. 성능 개선 1 - 버퍼의 사용
06. 성능 개선 2 - 더 나은 I/O
07. 더 생각해 볼 문제
5장. 서블릿 관리자
01. 웹 애플리케이션
02. 인터페이스를 사용한 컴포넌트와 컨테이너의 분리
03. HTTP 요청이 서블릿에 가기까지
04. 서블릿 관리자
05. 더 생각해 볼 문제
6장. 병렬처리
01. Stop/suspend와 wait/notify 메서드
02. 스레드 풀의 구성 요소 - jetty 6.x의 경우
03. java.util.concurrent 패키지
04. ThreadPoolExecutor의 사용
05. 적정 병렬 진행 수
06. 더 생각해 볼 문제
7장. BIO와 NIO의 비교
01. 일반적인 프론트엔드 웹 서비스 구성
02. 직관적이고 개념적인 I/O
03. 좀 더 실제 물리적 전송과 근접한 I/O 방법
04. 프론트엔드 서버로서의 서블릿 컨테이너
05. NIO 기반의 HTTP 프로토콜 상태 기계 구현
06. 더 생각해 볼 문제
8장. 서버 프로그램으로서의 서블릿 컨테이너
01. 서블릿 컨테이너 분석하기
02. 부팅과정에서 벌어지는 일들
03. 생명주기 관리
04. 남은 이야기
05. 더 생각해 볼 문제
Part 3 남은 주제들
9장. Comet - HTTP 알림
01. 단순한 시도 - 폴링
02. 생각의 전환 - 스트림 방식
03. Neurasthenia - Comet 지원 서블릿 컨테이너
04. 두 개의 연결
05. 더 생각해 볼 문제
10장. 남은 이야기들