- 웹은 지식 공유를 위해 고안되었다
- 웹이 성장한 시대
- 진보 안하는 HTTP
- TCP/IP는 프로토콜의 집합
- 계층으로 관리하는 TCP/IP
- TCP/IP 통신의 흐름
1.4 HTTP와 관계가 깊은 프로토콜은 IP/TCP/DNS
- 배송을 담당하는 IP
- IP, MAC, ARP
- 신뢰성을 담당하는 TCP
- TCP, 쓰리웨이 핸드셰이킹
- DNS
- URI는 리소스 식별자
- URI, URL
- URL 포맷
- 지속 연결
- 파이프라인화
- 메시지 바디와 엔티티 바디의 차이
- 압축해서 보내는 콘텐츠 코딩
- 분해해서 보내는 청크 전송 코딩
4.1 상태 코드는 서버로부터 리퀘스트 결과를 전달한다
- 200 OK
- 204 No Content
- 206 Partial Content
- 301 Moved Permanently
- 302 Found
- 303 See Other
- 304 Not Modified
- 307 Temporary Redirect
4.4 4xx 클라이언트 에러(Client Error)
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 500 Internal Server Error
- 503 Service Unavailable
제 5장 HTTP와 연계하는 웹 서버
5.1 1대로 멀티 도메인을 가능하게 하는 가상 호스트
5.2 통신을 중계하는 프로그램 : 프록시, 게이트웨이, 터널
- 프록시
- 게이트웨이
- 터널
- 캐시는 유효기간이 있다
- 클라이언트 측에도 캐시가 있다
제 6장 HTTP 헤더
6.1 HTTP 메시지 헤더
6.2 HTTP 헤더 필드
- HTTP 헤더 필드는 중요한 정보를 전달한다
- HTTP 헤더 필드의 구조
- 4종류의 HTTP 헤더 필드
- HTTP/1.1 헤더 필드 일람
- HTTP/1.1 이외의 헤더 필드
- End-to-end 헤더와 Hop-by-hop 헤더
- Cache-Control
- Connection
- Date
- Pragma
- Trailer
- Transfer-Encoding
- Upgrade
- Via
- Warning
6.4 리퀘스트 헤더 필드
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Authorization
- Expect
- From
- Host
- If-Match
- If-Modified-Since
- If-None-Match
- If-Range
- If-Unmodified-Since
- Max-Forwards
- Proxy-Authorization
- Range
- Referer
- TE
- User-Agent
- Accept-Ranges
- Age
- ETag
- Location
- Proxy-Authenticate
- Retry-After
- Server
- Vary
- WWW-Authenticate
6.6 엔티티 헤더 필드
- Allow
- Content-Encoding
- Content-Language
- Content-Length
- Content-Location
- Content-MD5
- Content-Range
- Content-Type
- Expires
- Last-Midified
6.7 쿠키를 위한 헤더 필드
- Set-Cookie
- Cookie
6.8 그 이외의 헤더 필드
- X-frame-Option
- X-XSS-Protection
- DNT
- P3P
제 7장 웹을 안전하게 하는 HTTPS
7.1 HTTP의 약점
- 평문이기 때문에 도청 가능
- 통신 상대를 확인하지 않기 때문에 위장 가능
- 완전성을 증명할 수 없기 때문에 변조 가능
7.2 HTTP + 암호화 + 인증 + 완전성 보호 = HTTPS
- HTTP에 암호화와 인증과 완전성 보호를 더한 HTTPS
- HTTPS는 SSL의 껍질을 덮어쓴 HTTP
- 상호간에 키를 교환하는 공개키 암호화 방식
- 공개키가 정확한지 아닌지를 증명하는 증명서
- 안전한 통신을 하는 HTTPS의 구조
제 8장 누가 액세스하고 있는지를 확인하는 인증
8.1 인증이란?
8.2 BASIC 인증
- BASIC 인증 수순
8.3 DIGEST 인증
- DIGEST 인증 수순
8.4 SSL 클라이언트 인증
- SSL 클라이언트 인증의 인증 수순
- SSL 클라이언트 인증은 2-factor 인증에서 사용된다
- SSL 클라이언트 인증은 이용하는데 비용이 필요하다
8.5 폼 베이스 인증
- 인증의 대부분은 폼 베이스 인증
- 세션 관리와 쿠키에 의한 구현
제 9장 HTTP에 기능을 추가한 프로토콜
9.1 HTTP를 기본으로 하는 프로토콜
9.2 HTTP의 병목 현상을 해소하는 SPDY
- HTTP의 병목 현상
- SPDY 설계와 기능
- SPDY는 웹의 병목 현상을 해결하는가?
9.3 브라우저에서 양방향 통신을 하는 WebSocket
- WebSocket의 설계와 기능
- WebSocket 프로토콜
- HTTP/1.1을 확장한 WebDAV
- WebDAV에서 추가된 메소드와 상태 코드
제 10장 웹 콘텐츠에서 사용하는 기술
10.1 HTML
- 대부분 웹 페이지는 HTML로 되어 있다
- HTML 버전
- 디자인을 적용하는 CSS
10.2 다이나믹 HTML
- 웹 페이지를 동적으로 변경하는 다이나믹 HTML
- HTML을 조작하기 쉽게 해주는 DOM
10.3 웹 애플리케이션
- 웹을 사용해서 기능을 제공하는 웹 애플리케이션
- 웹 서버와 프로그램을 연계하는 CGI
- Java에서 보급된 서블릿
10.4 데이터 송신에 이용되는 포맷이나 언어
- 범용적으로 사용할 수 있는 마크업 언어 XML
- 갱신 정보를 송신하는 RSS/Atom
- JavaScript에서 이용하기 쉽고 가벼운 JSON
제 11장 웹 공격 기술
11.1 웹 공격 기술