목차
추천사 ... 6
서문 ... 8
01 안녕, 웹2.0 세계 ... 27
버즈워치 개요 ... 28
전체 구도 잡기 ... 30
내부 살펴보기 ... 33
버즈워치의 기여도 높이기 ... 62
버즈워치의 유지보수성 개선하기 ... 68
마무리 양념 뿌리기 ... 75
맺음말 ... 78
02 페이지 연출 ... 79
깔끔하고 간결한 페이지 제작하기 ... 80
유효한 HTML 작성 ... 80
CSS 활용 ... 84
적합한 엘리먼트 선택 ... 85
HTML에서 XHTML로 ... 88
XHTML 1.0 ... 88
XHTML 1.1 ... 89
왜 XHTML을 사용하는가? ... 90
HTML과 다른 점 ... 92
문서 객체 모델 ... 95
DOM 계층 ... 98
DOM API 개관 ... 99
DOM API 참고문서 ... 101
CSS ... 102
둥근모서리 ... 103
탭 ... 105
도구 ... 107
파이어폭스용 DOM Inspecter ... 108
파이어폭스용 Web Developer Toolbar ... 110
인터넷 익스플로러 Developer Toolbar ... 111
파이어폭스용 DevBoi ... 112
핵심정리 ... 114
03 자바스크립트와 에이잭스 ... 115
자바스크립트: 별로 알려지지 않은 중요 기능들 ... 115
undefined값과 형 ... 116
=== 연산자 ... 119
for-in 반복문 ... 121
함수형 프로그래밍 ... 124
함수의 인수 ... 126
자바스크립트 최적화 ... 127
자바스크립트 다운로드 시간을 줄이자 ... 128
DOM 업데이트를 최소로 유지하자 ... 130
에이잭스 ... 130
풍부한 사용자 경험, 그 자체 ... 131
XMLHttpRequest 발전사 ... 132
XMLHttpRequest 예제 ... 133
Yahoo! UI Library ... 137
구글 웹 툴킷 ... 142
메모리 누출 다루기 ... 144
핵심정리 ... 147
04 설계 원칙 ... 149
공통 설계 사안 ... 151
북마크 ... 152
내비게이션 ... 156
트래픽 최소화 ... 158
저사양 기기 지원 ... 164
접근성의 요청과 지침 ... 167
내용과 표현을 분리하자 ... 172
프레임을 웬만하면 사용하지 말자 ... 183
핵심정리 ... 188
05 웹2.0에 도입될 다음 기술은? ... 191
XSLT와 XPath ... 192
XSLT Hello World 예제 ... 192
XSLT 예제 조금 더 ... 196
XSLT 스타일 ... 201
XSLT 예제 하나 더 ... 204
브라우저에서 XSLT 사용하기 ... 208
SVG ... 212
SVG Hello World 예제 ... 215
SVG 스타일 정의하기 ... 221
SVG 추가 예제 ... 223
XForms ... 238
XForms Hello World 예제 ... 240
XForms 스타일 정의하기 ... 245
XForms 추가 예제 ... 250
HTML의 다음 행보는 ... 263
W3C 제안 ... 264
WHATWG 반대안 ... 267
XHTML 2.0과 HTML 5 비교 ... 268
핵심정리 ... 269
06 대안으로서의 리치 클라이언트 ... 271
브라우저에서 리치 클라이언트로 ... 271
브라우저의 약점 ... 273
해답은 리치 클라이언트 ... 274
리치 크라이언트의 현주소 ... 275
다양한 리치 클라이언트 프레임워크 비교 ... 275
오픈 라즐로 ... 276
XUL ... 289
XAML ... 300
핵심정리 ... 306
07 HTTP와 URI ... 309
웹은 어떻게 성공할 수 있었을까 ... 310
웹 1.0: HTML, URL, HTTP ... 310
기본 개념 ... 312
URL과 URI ... 315
숨겨진 코드의 위험성 ... 319
웹서버의 진짜 역할은? ... 319
웹은 양방향이다 ... 321
웹 모델와 REST ... 321
자원 ... 323
표현물 ... 324
상태 ... 324
전송: HTTP 메서드 이용 ... 327
HTTP 서비스 구축할 때 고려할 사항 ... 328
미디어 유형 ... 328
관심 자원 ... 330
필수 표현물 ... 331
서버 응답 ... 333
HTTP 실습과 관찰 ... 334
참고용 툴킷 ... 334
HTTP 예제 ... 335
추가 표현물 예제 ... 341
콘텐트 협상 ... 343
HTTPTracer로 메시지 감시 ... 346
핵심정리 ... 350
08 XML과 대안 언어 ... 353
XML ... 354
XML 기초 ... 354
XML 이름공간 ... 361
유니코드와 문자 인코딩 ... 364
바이너리 데이터 처리 ... 368
보통은 사용할 일 없는 XML 기능 ... 369
데이터형 ... 370
스키마 언어 ... 372
XSLT와 XPath ... 375
그 밖의 XML 기술 ... 376
기존 데이터 포맷과 프로토콜 ... 377
API ... 378
XML의 대안 ... 378
JSON ... 380
자바스크립트 ... 383
HTML ... 383
기타 포맷 ... 386
핵심정리 ... 387
09 신디케이션 ... 389
기초 내용 약간 ... 390
마이크로콘텐트 ... 390
피드 ... 391
신디케이션 절차 ... 393
신디케이션 포맷 ... 394
RSS 2.0: 단순 콘텐트 ... 395
RSS 1.0: 자원 서술 ... 402
RSS 1.0 명세와 모듈 ... 409
아톰: 둘의 장점만 취합했나? ... 410
아톰 명세와 확장 요소 ... 416
포맷 간의 엘리먼트 비교 ... 417
인클로저와 파드캐스팅 ... 418
핵심정리 ... 420
10 마이크로포맷 ... 421
마이크로포맷 기초 ... 423
CSS와 마이크로포맷 ... 424
시맨틱 HTML ... 426
콘텐트, 표현물, 데이터 ... 427
모호한 이름 지정 피하기 ... 428
적용 범위 ... 430
표준 Org 2.0 ... 434
마이크로포맷 문서 작성하기 ... 436
예제: 이벤트 타임라인 ... 437
핵심정리 ... 452
11 프로토콜 결합을 통해 웹서비스 구축하기 ... 453
웹서비스의 명확한 개념 ... 454
REST 서비스 ... 455
샘플 응용프로그램 ... 455
아톰 퍼블리싱 프로토콜(APP) ... 461
실무에 쓰이는 REST 서비스 ... 461
REST에 관한 추가 자료 ... 465
WS-* 서비스 ... 465
WS-* 서비스와 SOAP ... 466
WS-* 서비스와 WSDL ... 472
WS-* 스택 ... 476
REST vs WS-* ... 478
SOAP ... 478
WSDL ... 480
도구 지원 ... 482
핵심정리 ... 484
12 HTTP로 XMl 서브하기 ... 487
HTML 서브와의 차이점 ... 487
미디어 유형 ... 488
문자 인코딩 ... 488
적격한 XML 서브하기 ... 488
정적 콘텐트 서브하기 ... 488
동적 콘텐트 서브하기 ... 491
원리 ... 491
자바로 XML 서브하기 ... 493
ASP.NET과 C#으로 XML 서브하기 ... 499
루비온레일스로 XML 서브하기 ... 504
PHP, 펄, 파이썬 등으로 XML 서브하기 ... 506
서버 측 XSLT 활용 ... 507
XML 플랫폼 활용 ... 510
XQuery와 XML 데이터베이스 ... 514
eXist를 이용하여 XML 서브하기 ... 515
WebDAV와 서브버전 ... 518
JSON 서브하기 ... 519
핵심정리 ... 521
13 데이터베이스와 비XML 소스 ... 523
비XML 소스 처리하기 ... 523
관계형 데이터를 XML로 변환하기 ... 524
SQL 서버를 이용한 서버 측 변환 ... 530
ADO.NET을 이용한 클라이언트 측 변환 ... 537
오라클 XSQL 이용 ... 544
이진 데이터를 XML로 변환하기 ... 556
수동 변환 ... 557
변환을 자동화하기 ... 562
핵심정리 ... 572
14 신디케이션 채널 생성하기 ... 573
간단한 아톰 서비스 ... 573
사용자 인터페이스 ... 574
응용프로그램 구조 ... 576
압데라 아톰 툴킷 ... 577
코드 훑어보기 ... 578
응용프로그램 실행하기 ... 598
응용프로그램 컴파일과 디플로이 ... 599
실제 디플로이를 위한 고려사항 ... 600
이메일 지원 추가 ... 600
이메일 지원 구조 이해하기 ... 601
로컬 메일 서버 설치하기 ... 602
MailClient 클래스 이용하기 ... 605
MessageReader 인터페이스 ... 609
MailEntryCollector ... 610
핵심정리 ... 615
15 매시업, HTML 스크래핑, 웹서비스 ... 617
인기 예제: 지도 제작 매시업 ... 618
매시업은 왜 사용하나? ... 621
매시업의 비즈니스 모델 ... 623
스크린 스크래핑 ... 625
장점과 단점 ... 625
정당하고 떳떳하게 ... 626
해당 페이지 다운로드하기 ... 627
해당 페이지 분석하기 ... 628
단순 스크린 스크래핑 예제 ... 629
피드 작성하기 ... 631
자신의 서버에서 디플로이하기 ... 635
외부 서버를 통해 디플로이하기 ... 636
지도 제작과 배지(badge) ... 637
배지(badge) ... 638
구글 맵 ... 639
핵심정리 ... 643
16 자신의 URI 공간 구축과 유지보수 ... 645
URI의 장래성 확보하기 ... 647
기술 중립성 ... 647
계층과 수집 ... 648
맨끝 슬래시와 위치 독립성 ... 650
URI 공간의 변경사항 관리하기 ... 652
HTTP 경로재지정 기초 ... 652
영구히 자원 경로재지정하기 ... 653
임시로 자원 경로재지정하기 ... 654
사용하지 말아야 할 경로재지정 방법 ... 656
서버 측 경로재지정 ... 657
자신의 URI 매핑 도구상자 ... 658
자바 서블릿 ... 658
아파치 mod_alias와 mod_rewrite ... 659
ASP.NET과 IIS ... 666
핵심정리 ... 666
17 멀티미디어 파드캐스팅과 서빙 ... 669
다양한 포맷 ... 670
서술 포맷 ... 671
컨테이너와 인코딩 포맷 ... 685
프로토콜 ... 697
멀티캐스트 ... 698
유니캐스트 ... 699
프로토콜 선택하기 ... 701
핵심정리 ... 701
18 보안 ... 703
보안은? ... 704
자원 보안 ... 704
메시지 보안 ... 705
과거 경험에서 얻은 지혜 ... 706
단계적 접근법 ... 707
인증과 권한부여 ... 708
IIS와 ASP.NET에서의 인증과 권한부여 ... 708
IIS와 ASP.NET에서의 다양한 인증 방법 ... 711
아파치에서의 인증과 권한부여 ... 714
메시지 암호화 ... 715
대칭적 암호화 ... 715
공개키 기반체계 ... 717
메시지 다이제스트 ... 718
디지털 증명서 ... 719
보안 소켓 계층 ... 720
SSl 통신 단계 ... 721
IIS에 SSL 설치하기 ... 722
아파치에 SSL 설치하기 ... 727
코드 보안 ... 733
일반 원칙 ... 733
웹서비스 보안 ... 739
웹서비스 보안 이용하기 ... 740
웹서비스 작동 원리 ... 742
정책 추가하기 ... 745
사용자 정의 인증 추가하기 ... 746
클라이언트 생성하기 ... 750
보안 개선하기 ... 756
핵심정리 ... 756
옮긴이의 말 ... 758
찾아보기 ... 760
닫기