`hottest Web development topics:
`• Web site planning and design
`• Multimedia, sound, animation, 3-D graphics
`• Interactive application and datagase programming
`• JavaScript"" integration within HTML documents
`• Macromedia° Director and ShockwaveT"
`• Streaming audio and video
`• Integration with news and mailing lists
`• Perl 5, VBScript, JavaScript'", C, and CGI
`4 ~ Microsoft° FrontPageT"' and Netscape`" LiveWire`"'
`
`:12 best-selling Web development
`books from Que's Digital library!
`• Special version of
`Microsoft Visual J++
`(which is governed by the end-user
`agreement on the inside back cover)
`
`T-
`
`t Dozens of incredible software tools for creating and I
`implementing HTML and Web page programming
`
`~~
`
`u
`
`•
`
`♦ ` -.♦
`
`Facebook's Exhibit No. 1026
`Page 1
`
`
`
`i
`
`~;
`
`i4: I!
`
`'
`
`~,
`
`Before opening this package, you must accept the Licensing
`Agreement printed inside the back- cover. If you do not accept the
`terms of the Licensing Agreement,~you should promptly return the
`product for a refund.
`
`Facebook's Exhibit No. 1026
`Page 2
`
`
`
`~'~
`
`.~
`
`SINS
`
`t t
`
`•
`
`•
`
`Written by Eric Ladd and Jim O'Donnell with
`
`Jeyyy Ablan ~ Tobin Anthony •Donald Doherty •Jeffry Dwight
`Mike Ellsworth •Michael Erwin •Simeon Greene •John Jung
`Greg Knauss •Tom Lockwood •Mike Morgan s Robert Niles
`Bernie Roehl •Paul Santa Maria •Ryan Sutter
`
`~~~o
`
`Facebook's Exhibit No. 1026
`Page 3
`
`
`
`;•~;
`
`Platinum Edition Using HTML 3.2, Java 1.1,
`and CGI
`CopyrightOO 1996 by Queue Corporation.
`All rights reserved. Printed in the United States of America. No part
`of this book maybe used or reproduced in any form or by any
`means, or stored in a database or retrieval system, without prior
`written permission of the publisher except in the case of brief quota-
`tions embodied in critical articles and reviews. Making copies of
`any part of this book for any purpose other than your own personal
`use is a violation of United States copyright laws. For information,
`address Que Corporation, 201 W. 103rd Street, Indianapolis, IN,
`46290. You may reach Que's direct sales line by calling 1-800-428-
`5331.
`Library of Congress Catalog No.: 96-71191
`ISBN: 0-7897-0932-5
`This book is sold as is, without warranty of any kind, either express
`or implied, respecting the contents of this book, including but not
`limited to implied warranties for the book's quality, performance,
`merchantability, or fitness for any particular purpose. Neither Que
`Corporation nor its dealers or distributors shall be liable to the
`purchaser or any other person or entity with respect to any liability,
`loss, or damage caused or alleged to have been caused directly or
`indirectly by this book.
`654
`9897
`Interpretation of the printing code: the rightmost double-digit num-
`ber is the year of the book's printing; the rightmost single-digit
`number, the number of the book's printing. For example, a printing
`code of 96-1 shows that the first printing of the book occurred in
`1996.
`All terms mentioned in this book that are known to be trademarks
`or service marks have been appropriately capitalized. Que cannot
`attest to the accuracy of this information. Use of a term in this book
`should not be regarded as affecting the validity of any trademark or
`service mark.
`Screen reproductions in this book were created using Collage Com-
`plete from Inner Media, Inc., Hollis, NH and Capture from Main-
`stay, Camarillo, CA.
`
`Facebook's Exhibit No. 1026
`Page 4
`
`
`
`Credits
`
`PRESIDENT
`Roland Elgey
`
`PUBLISHER
`Joseph B. Wikert
`
`PUBLISHING MANAGER
`Jim Minatel
`
`EDITORIAL SERVICES DIRECTOR
`Elizabeth Keaffaber
`
`MANAGING EDITOR
`Sandy Doell
`
`DIRECTOR OF MARKETING
`Lynn E. Zingraf
`
`ACQUISITIONS MANAGER
`Cheryl D. Willoughby
`
`ACQUISITIONS EDITORS
`Stephanie Gould
`Stephanie McComb
`Philip Wescott
`
`PRODUCT DIRECTORS
`Benjamin Milstead
`Mark Cierzniak
`Jacquelyn D. Eley
`Stephen L. Miller
`Steven M. Schafer
`Jon Steever
`
`SENIOR EDITORS
`Patrick Kanouse
`Caroline D. Roop
`Susan Ross Moore
`
`PRODUCTION EDITOR
`Bill McManus
`EDITORS
`Kelli Brooks, Elizabeth Bruns, Sean Damon,
`Sherri Fugit, Aaron Gordon,, Patricia Kinyon,
`Judy Ohm, Jade Williams
`
`ASSISTANT PRODUCT MARKETING MANAGERS
`Karen Hagen
`Christy M. Miller
`
`STRATEGIC MARKETING MANAGER
`Barry Pruett
`
`TECHNICAL EDITORS
`Bill Bruns, Matthew Brown, Kyle Bryant,
`Brian Cooper, Jim Hofman, Russ Jacobs,
`Jon Sahaydak, Ernie Sanders, Tony Schafer,
`Glenn Smith, Henry Staples
`TECHNICAL SUPPORT SPECIALISTS
`Mark Costlow
`Nadeem Muhammed
`
`ACQUISITIONS COORDINATOR
`Jane K. Brownlow
`
`SOFTWARE RELATIONS COORDINATOR
`Patty Brooks
`
`EDITORIAL ASSISTANTS
`Jennifer Condon
`Andrea Duvall
`
`BOOK DESIGNER
`Ruth Harvey
`
`COVER DESIGNER
`Jay Corpus
`
`PRODUCTION TEAM
`Kevin Cliburn, Maribeth Echard, Trey Frank,
`Julie Geeting, Tammy Graham, Jason Hand,
`Daniel Harris, Kay Hoskin, Tony McDonald,
`Anjy Perry, Casey Price, Erich Richter,
`Kaylene Riemen, Nicole Ruessler,
`Sossity Smith, Staci Somers, Lisa Stumpf,
`Marvin Van Tiem, Donna Wright
`INDIXER
`grad Herriman
`Craig Alan Small
`
`Composed in Century Old Style and ITC Franklin Gothic by Que Corporation.
`
`Facebook's Exhibit No. 1026
`Page 5
`
`
`
`Contents at a Glance
`
`Introducing HTML
`1 Page Design 11
`2 Site Design 31
`3 Building Blocks of HTML 53
`
`Working with HTML Documents
`4 The Document Tags 71
`5 Formatting the Document Body 91
`6 Displaying Content in Lists 113.
`7 Linking HTML Documents 129
`
`111
`
`~ HTML Graphics
`8 Adding Graphics to HTML Documents 145
`9 Image Maps 163
`10 Graphics Tips and Tricks for Web Sites 181
`
`IV I Advanced HTML Functions
`11 HTML Forms 197
`12 Tables 219
`13 Frames 237
`14 HTML Style Sheets 253
`
`V ~ HTML E~ctensions and Additions
`15 Netscape Navigator-Specific HTML Extensions 267
`Internet Explorer-Specific HTML Extensions 285
`16
`17 Proposed Additions to HTML 303
`
`VI ~ WYSIWYG HTML Editors
`18 Using Netscape Navigator Gold 317
`19 Using Microsoft FrontPage 335
`20 Using Adobe PageMill 363
`
`Facebook's Exhibit No. 1026
`Page 6
`
`
`
`VII
`
`~ Key HTML Issues for Webmasters
`21 HTML Validation 389
`22 Key Graphics Utilities for Webmasters 411
`23 Key Web Access and Security Concerns for Webmasters 431
`24 Developing Webs with Netscape LiveWire and LiveWire Pro 479
`
`Vill ~ Developing Multimedia and Interaction
`25 Developing Content for Plug-Ins 513
`26 Adding Video to Your Site 533
`27 Adding Audio to Your Site 545
`28 Adding Live or Streamed Media to Your Site 561
`29 Shocking Your Web Site 581
`30 Document Types for Business 605
`
`IX I CGI
`31 The Common Gateway Interface 631
`32 Generating HTML in Real Time 661
`33 Server-Side Includes 677
`34 Transactions and Order Taking 711
`35 CGI Security 729
`36 Custom Database Query Scripts 751
`3? Web Database Tools ??7
`
`X ~ Advanced Web Options
`38 Client Pull/Server Push 789
`39 News and Mailing List Gateways 799
`40 Creating Live Chat Pages 82?
`
`XI ~ JavaScript and Java
`41 JavaScript 849
`42 Developing Java Applets 887
`43 User Input and Interactivity with Java 929
`44 Java Graphics and Animation Programming 975
`45 Network Programming and Java 1029
`46 Java and Security 1047
`47 Developing with LiveConnect 1065
`
`Facebook's Exhibit No. 1026
`Page 7
`
`
`
`XI I ~ ActiveX Technologies
`48 ActiveX Scripting: VB Script and JScript 1085
`49 ActiveX Controls 1131
`50 Web Authoring with ActiveX Controls 1157
`51 ActiveX Documents 1181
`
`Xill ~ The Virtual Reality Modeling Language
`52 Creating VRML Objects 1201
`53 Creating VRML Worlds 1231
`54 VRML 2.0: Moving Worlds 1263
`55 Java and VRML 1295
`
`XIV
`
`~ Indexes and Search Engines
`56 Inde~ng with CGI 1341
`57 Adding an Online Search Engine 1373
`
`Index 1403
`
`Bonus Chapters in Electronic Format on CD-ROM
`Real-World Web Sites I
`Real-World Web Sites II
`
`Facebook's Exhibit No. 1026
`Page 8
`
`
`
`Table of Contents
`
`Introduction 1
`How to Use This Book 2
`How This Book Is Organized 2
`Special Features in the Book 8
`
`Introducing HTML
`
`1 Page Design 11
`Know Thy Audience 12
`Choosing Information 13
`Structuring the Information 14
`HTML Standards and Browser Compatibility 20
`Desirable Page Elements 21
`Last Updated Date 21
`Contact Information 22
`Navigation Tools 23
`Counters 25
`Breaking Up Long Pages 27
`Graphic Elements 27
`Table of Contents 29
`
`2 Site Design 31
`Know Thy Audience, Part II 32
`How Will Users Move Through the Information? 32
`What Technologies Do Your Users Have? 33
`Considering Your Own Objectives 36
`Structuring Information 37
`The Drill-Down Structure 37
`The Flat Structure 38
`Developing a Look 39
`Less Is Often More 39
`Backgrounds 39
`Color Choices 41
`Iconography: Is It Intuitive? 41
`Desirable Site Elements 42
`Tables of Contents 42
`Search Engines 43
`Navigation Tools 43
`
`Facebook's Exhibit No. 1026
`Page 9
`
`
`
`Contents
`
`ix
`
`WhaYs New 45
`Guestbooks 45
`Feedback Mechanism 46
`Mailing Lists 46
`Threaded Discussion Groups 48
`Chat Channels 48
`Multimedia Content 48
`Testing Your Design 50
`Pilot the Site 51
`Try It with Different Browsers 51
`Try It at Different Connection Speeds 51
`
`3 Building Blocks of HTML 53
`HTML and Its Relationship to SGML 54
`HTML Is a DTD of SGML 54
`Advantages and Disadvantages 56
`Conformance to the Standard 56
`The Current Standard: HTML 3.2 57
`Choosing a Level of Conformance 57
`Testing Conformance 58
`HTML Constructs 61
`Tags 61
`Tag Attributes 62
`HTML Entities 63
`'I~vo Rules Browsers Follow When Processing HTML 64
`An Overview of the HTML Elements 64
`
`II I Working with HTML Documents
`
`4 The Document Tags 71
`The <!DOC7'YPE> Declaration 72
`The <HTML> Container Tag 72
`The Document Head 72
`The <HEAD> Container Tag 73
`Put a <TITLE> on That! 73
`Specifying Relative URIs: The <BASE> Tag 76
`iJsing <LINK> to Create Relationships Between Documents 78
`Indexing a Document 79
`The Versatile <NIETA> Tag 82
`Looking Ahead 86
`
`Facebook's Exhibit No. 1026
`Page 10
`
`
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`The Document Body 88
`Document Tags: A Matter of Good Style 89
`
`5 Formatting the Document Body 91
`Attributes of the <BODY> Tag 92
`Specifying Colors in HTML 92
`Backgrounds 96
`Text Color 97
`Link Color 98
`The Basics of Text Formatting 98
`Breaking Text into Paragraphs 98
`Using Line Breaks 98
`Declaring Document Divisions 100
`Breaking Up Your Document 101
`Using the Heading Styles 101
`Adding Horizontal Rule 102
`Formatting Ted 103
`The Physical Styles 103
`The Logical Styles 103
`Other Text Effects 105
`Centering Text 106
`Controlling Font Size and Color 106
`The <ADDRESS> Tag 107
`The ~LOCKQ UOTE> Tag 107
`Preformatted Text 109
`Reserved and Special Characters 109
`Other-than-English Language Characters 110
`Non-Breaking Space 110,
`Commenting Your Document 110
`
`6 Displaying Content in Lists 113
`Unordered Lists 114
`The Basics 114
`Changing the Default Bullet Character 115
`Ordered Lists 118
`The Basics 118
`Changing the Numbering Scheme 118
`Changing the Numbering Sequence 120
`Definition Lists 121
`Menu Lists 122
`Directory Lists 123
`
`Facebook's Exhibit No. 1026
`Page 11
`
`
`
`Contents
`
`~ xi
`
`Nesting Lists 124
`Embedded Unordered Lists 124
`Embedded Ordered Lists 125
`Mining Ordered and Definition Lists 126
`Formatting Within Lists 127
`Increasing Inter-item Spacing , 127
`Text Level Formatting 128
`
`7 Linking HTML Documents 129
`Uniform Resource Locators (URIs) 130
`Parts of an URL 130
`Absolute URIs 133
`Relative URLs 133
`Linking to Other HTML Documents 134
`Linking Within a Given HTML Document 137
`Linking to Other Internet Services 139 ,
`FI'P 139
`mailto 140
`UseNet 141
`Gopher 142
`WAIS 142
`Telnet 143
`
`III ~ HTML Graphics
`
`8 Adding Graphics to HTML Documents 145
`Graphic Storage Formats 146
`GIF 146
`JPEG 148
`Choosing a Format 148
`The <IMG> Tag 149
`The Basics 150
`Adding a Border 152
`Adding Space Around Your Image 152
`The ALIGNAttribute and Floating Images 154
`ISMAP and iISEMAP 157
`Images as Hyperlink Anchors 158
`Images as Bullet Characters 160
`Images as Horizontal Rule 161
`
`Facebook's Exhibit No. 1026
`Page 12
`
`
`
`xii
`
`~ Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`9 Image Maps 163
`Server-Side Image Maps 164
`Preparing the Map File 164
`Setting up the Image Map 166
`Example: A Main Page Image Map 167
`Example: A Navigation Image Map 168
`Client-Side Image Maps 170
`Advantages 170
`Defining a Map 170
`Setting Up the Image Map 171
`Example: A Main Page Image Map 172
`Example: A Navigation Image Map 172
`Using Server-Side and Client Side Image Maps Together 173
`Providing a Text Alternative to an Image Map 174
`Image Map Tools 174
`Map This! 175
`Mapedit 177
`Web Hotspots 178
`
`10 Graphics Tips and Tricks for Web Sites 181
`Transparency 182
`Making an Image "Fade In" 185
`Making Interlaced GIFs 186
`Progressive 7PEGs 186
`Animated GIFs 187
`Image Effects that Create Depth 189
`Light Sources 189
`Drop Shadows 190
`Embossing 191
`Ray Tracing 191
`Keeping File Sizes Smail 192
`Resizing the Image 193
`Using Thumbnails 193
`Storing GIFs as JPEGs 193
`Increasing the 7PEG Compression Ratio 194
`Reducing Color Depth 194
`Adjusting Contrast 195
`No Dikhering 195
`
`_
`
`Facebook's Exhibit No. 1026
`Page 13
`
`
`
`Contents
`
`xiii
`
`IV I Advanced HTML Functions
`
`11 HTML Forms 197
`Overview: Forms and CGI 198
`Creating Forms 198
`The <F'ORM> Tag 199
`Named Input Fields 200
`The <INPU75 Tag 201
`Multiple Line Text Input 206
`Menus 207
`Action Buttons 209
`Multiple Forms in a Document 211
`Passing Form Data 213
`URL Encoding 213
`HTTP Methods 214
`Example Forms 214
`Online Searches 214
`Online Registration 215
`Creating a Custom Page 216
`Online Shopping 217
`
`12 Tables 2.19
`How HTML Tables Are Organized 220
`Table Basics 220
`The <TABLE> Tag 220
`Creating a Table Row 220
`Creating a cable -Cell 221
`Alignment 222
`Aligning the Entire Table 223
`Alignment Within a Row 223
`Alignment Within a Cell 224
`Controlling Other Table Attributes 225
`Adding a Caption 225
`Setting the Width 226
`Adding a Border 227
`Spacing Within a Cell 228
`Spacing Between Cells 228
`Spanning Multiple Rows or Columns 228
`Using the COLSPANAttribute 230
`Using the ROWSPANAttribute 230
`
`Facebook's Exhibit No. 1026
`Page 14
`
`
`
`xiv
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`What Elements Can Be Placed in a Table Cell 231
`~ Tables as a Design Tool 232
`Creating a Complex Layout 232
`Aligning Custom Bullet Characters 233
`Aligning Form Fields 233
`
`j
`
`~
`
`13 Frames 237
`Introduction to Frames 238
`The Main Idea 238
`Not Standard HTML 238
`Applications 240
`Setting Up a Frames Document 241
`Draw a Picture! 241
`The <FRAMESET> Tag 241
`Nesting <FRl1MESE7~ Tags to Achieve Complex Layouts 243
`Placing Content in Frames 245
`The <F'RAME> Tag 245
`Targeting Named Frames 247
`Respecting the "Frames-Challenged" Browsers 248
`Examples 249
`Banner Frame 249
`Navigation Frame .249
`Search Results Frame 251
`
`~
`
`14 HTML Style Sheets 253
`~ '
`~ Introduction to Style Sheets 254
`What Are Style Sheets 254
`Why Style Sheets Are Valuable 255
`Different Approaches to Style Sheets 255
`Linking to Style Information in a Separate File 256
`Setting Up the Style Information 256
`Using the <LINK> Tag 25$
`Embedded Style Information 258
`Using the <S7YLE> Tag 258
`Setting Up the Style Information 260
`Respecting "Style Sheet-Challenged" Browsers 260
`Inline Style Information 260
`Other Tags That Take the STYLE Attribute 260
`The <SPAN> Tag 261
`Using Multiple Approaches 262
`
`j ~
`
`Facebook's Exhibit No. 1026
`Page 15
`
`
`
`Contents-
`
`xv
`
`Tips for Style Sheet Users 263
`Harnessing Inheritance 263
`Grouping Style Information 263
`Creating Tag Classes 264
`The Future of Style Sheets 264
`Wider Support 264
`User-Defined Sryle Sheets 265
`Other Sryle Sheet Standards 265
`
`V I HTML Extensions and Additions
`
`15 Netscape Navigator-Specific HTML E~ctensions 267
`A Word About Browser-Specific Extensions 268
`Should You Use Them? 268
`Providing Alternatives 269
`Embedded Objects 269
`Dynamic Documents 271
`Client Pull 271
`Server Push 272
`Multicolumn Text Layout 274
`Controlling White Space 277
`HORIZONTAL and VERTICAL Spacers 277
`BLOCK Spacers 277
`Frame Border Controls 279
`Text Wrapping in Multiple Line Form Windows 279
`Text Effects 281
`Changing the Default Font Size 281
`Blinking Text 281
`Strikethrough and Underline Text 281
`Choosing Typefaces 282
`
`16
`
`Internet E~cplorer-Specific HTML Extensions 285
`Adding a Background Sound 286
`Creating a Watermark 287
`Controlling Your Margins 287
`Adding Color 288
`Table Backgrounds and Borders 289
`Rule 290
`
`Facebook's Exhibit No. 1026
`Page 16
`
`
`
`xvi
`
`~ Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`Table Sections and Column Properties 290
`Table Sections 291
`Setting Column Properties 292
`Other Attributes of the <TABLE> Tag 293
`Inline AVI Support 294
`Scrolling Marquees 296
`Floating Frames 297
`HTML Layout Control 299
`
`17 Proposed Additions to HTML 303
`Setting Up Search Ranges 304
`Setting Up Tab Stops 305
`Logical Text Styles 305
`Establishing the Document's Language Context 306
`Expanded List Support 306
`List Headers 307
`Unordered List Extensions 307
`Admonishments 308
`Footnotes 309
`Non-Scrolling Banners 309
`Figures 310
`Mathematical Symbols 312
`Mathematical Tags 313
`Mathematical Entities 314
`WhaYs Next? 315
`
`VI I WYSIWYG HTML Editors
`
`18 Using Netscape Navigator Gold 317
`Downloading and Installing Navigator Gold 318
`Getting Started 319
`Loading an Existing Page into Navigator Gold 320
`Starting a New Page 321
`Editing Your Document 323
`Setting the Editor Preferences 324
`The Navigator Gold Toolbars 325
`Placing Page Elements with the Insert Menu 327
`Modifying Page Elements with the Properties Menu 329
`
`Facebook's Exhibit No. 1026
`Page 17
`
`
`
`Contents
`
`iii
`
`Using the Netscape Gold Rush Tool Chest 331
`Other Useful Editing Features 332
`Publishing Your Document 333
`Saving the Document 333
`Publishing to a Web or FTP Server 334
`
`19 Using Microsoft FrontPage 335
`Overview 336
`Installing FrontPage 337
`Using the FrontPage Explorez 338
`Creating a New Web 339
`Viewing a Web 341
`Link Tools 343
`Other Useful Explorer Features 345
`Using the FrontPage Editor 346
`Starting a New Document 346
`Editing Your Document 348
`Using Web Bots 354
`Saving Your Document 356
`Managing Your Server 356
`Using the FrontPage TCP/IP Test 356
`Using the Personal Web Server 357
`Using the Server Administrator 358
`Server Extensions 359
`The FrontPage Software Developer's Kit 360
`
`20 Using Adobe PageMill 363
`A First Look at Adobe PageMill 364
`The Toolbar 364
`The Inspector 365
`"Look Ma, No.HTML" 365
`Creating a PageMill document 366
`Viewing Your HTML Source 367
`HTML Invisibles 367
`HTML Placeholders 369
`Misunderstood HTML 369
`Setting Up Links 369
`Using the Link Bar 370
`
`Facebook's Exhibit No. 1026
`Page 18
`
`
`
`I`
`
`~'
`~'
`
`is
`I'
`
`E
`
`i
`
`xviii
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`Using the Pasteboard 371
`Anchors 371
`Working with Graphics 372
`Inserting Images in Your Pages 372
`Aligning Text and Images 374
`The Place Command 375
`The Resource Folder 376
`Background Images 376
`Image Maps 376
`Transparent, Interlaced, and Animated GIFs 378
`Setting Up Forms 379
`Creating and Working with Tables 380
`Creating a Table 380
`Modifying Your Tables 380
`Modifying Table Cells 382
`Working with Frames 383
`Constructing Your Frames 383
`Linking Your Frames Together 385
`Other PageMill Features 386
`Working With Java 386
`Setting PageMill Preferences 386
`The Color Panel 387
`
`VII
`
`~ Key HTML Issues for Webmasters
`
`21 HTMLValidation 389
`Why Validate Your HTML? 390
`Some Bad Code 392
`Online Validation Services 392
`WebTechs HTML Validation Service 393
`Weblint 396
`A Kinder, Gentler HTML Validator 398
`Doctor HTML 400
`Validation Programs that Run on Your Machine 402
`HTML PowerTools for Windows 402
`CSE 3310 HTML Validator 404
`HTML Validation Utilities for UNIX 405
`HTML Editing Tools with Built in Validators 406
`HoTMetaL 406
`Microsoft FrontPage 408
`
`i
`
`Facebook's Exhibit No. 1026
`Page 19
`
`
`
`Contents
`
`xix
`
`22 Key Graphics U#ilities for Webmasters 411
`Using Microsoft Paint 412
`Using LUiew Pro 415
`The Edit Menu 416
`The Retouch Menu 416
`LUiew Pro Properties Settings 418
`Using Paint Shop Pro 420
`Using Micrografx Picture Publisher 422
`Using Adobe Illustrator and Photoshop 424
`Adobe Illustrator 424
`Adobe Photoshop 427
`Format Conversion Utilities 430
`
`23 Key Web Access and Security Concerns for Webmasters 431
`Web Security on the Internet and Intranet 432 .
`Simple Privacy 434
`How Do Users Access Your Server? 435
`Built-In Server Access Control 442
`Password-Protection Scripts 444
`Vulnerability Due to CGI Scripts and Server-Side Includes 446
`Communications Security 446
`Secure Socket Layer 447
`Secure HTTP 449
`Pretty Good Privacy 449
`Site Security 450
`Exposing the Threat 451
`Case Studies 451
`Security Awareness 453
`Checklist for Site Security 460
`File Permissions on Server and Document Roots 460
`Optional Server Features 461
`Freezing the System: Tripwire 461
`Checking File Permissions Automatically 462
`CRACK 462
`TAMU Tiger 462
`xinetd 463
`Catching the Wily Cracker 464
`Firewalls 465
`
`Facebook's Exhibit No. 1026
`Page 20
`
`
`
`~ Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`xx
`
`Security Administrator's Tool for Analyzing Networks 467
`SATAN's Good Behavior 468
`Making Sure You Have a Legitimate Version of SATAN 468
`Electronic Data Interchange via the Internet 468
`EDI Standards 470
`Secure E-Mail 472
`X.400 475
`File Transfer Protocol 475
`EDI 476
`Mapping Software 476
`VANs 477
`Internet EDI 477
`Going Further 478
`24 Developing Webs with Netscape LiveWire and LiveWire Pro 479
`Netscape LiveWire Components 480
`How LiveWire Works 483
`A Brief HTTP Tutorial 484
`What Options Does Netscape Offer? 485
`What Does LiveWire Do with a Request? 486
`Understanding SQL 486
`The Relational Model 487
`A SQL Primer 490
`Understanding Transactions 491
`Understanding Cursors 492
`Introduction to Crystal Reports 493
`The Database Connectivity Library 494
`Opening and Closing the Connection 494
`Inserting Data into Tables 497
`Deleting Rows 497
`Accessing Data a Row at a Time 497
`Accessing Data as a Set 498
`Using BLObs 499
`Transactions in LiveWire Pro 500
`Error Handling 500
`JavaScript and the Second Generation Netscape Servers 501
`Understanding Java and JavaScript 501
`Server-Side JavaScript 502
`The Java Virtual Machine 503
`Putting It All Together—A Database Example 503
`
`Facebook's Exhibit No. 1026
`Page 21
`
`
`
`Contents
`
`~ci
`
`VIII I Developing Multimedia and Interaction
`
`25 Developing Content for Plug-Ins 513
`Serving Multunedia Content on the Web 514
`Understanding Netscape Navigator Plug-Ins 514
`Configuring the Server and the Browser 516
`Special Purpose Servers 519
`Hardware Features 522
`Integration with HTML 526
`HTML 3.2 and the <OBJEC75 Tag 526
`Three Ways of Invoking a Navigator Plug-In 527
`Microsoft and ActiveX 530
`Other Ways to Add Multimedia Content 531
`
`26 Adding Video to Your Site 533
`Generating Video Content 534
`Video Formats 534
`Hardware Options 536
`Software .Options 538
`Integrating Video into Your.Web Page 541
`Inline Video 541
`Video Using Helper Applications 542
`Client-Side Video Viewers 542
`Common Players 543
`Others 544
`
`27 Adding Audio to Your Web Site 545
`How and Where to Acquire Audio Content 546
`Audio Content from the Internet 546
`From CDs or DATTapes 546
`Recorded from "Live Sources" 547
`Creating Your Own Music 547
`Choosing Appropriate Audio Formats 547
`Au 547
`Aiff and Aifc. 547
`Wav 548
`MPEG 548
`MIDI 548
`MOD 549
`Saving Disk Space and Transfer Time 549
`Which Setting Should You Use? 550
`Determining Audio File Size 550
`
`Facebook's Exhibit No. 1026
`Page 22
`
`
`
`~ Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`~ocii
`
`Putting Audio Clips on Your Web Pages 550
`Including the Audio File as a Hyperlink 550
`Optimizing Your Web Site 551
`Netscape Navigator and Internet Explorer Extensions 551
`Adding Audio as a Background Sound 551
`Adding Controls to Your Audio Files 552
`How to Keep Download Times Reasonable 554
`Differences Between Netscape and Internet Explorer 555
`Editing Audio Files and Format Conversion 555
`Avoiding That Pop 556
`Considering Real-Time "Streaming" Audio 557
`Why Is Streaming Audio Important? 557
`RealAudio 558
`Macromedia's Shockwave 558
`Which Product Is Better? 558
`What Is the Future of Audio on the Internet? 559
`28 Adding Live or Streamed Media to Your Site 561
`Creating Live or Streamed Media Content 562
`MBONE or IP Multicasting 562
`Bandwith Requirements and Server Hardware
`Integrating MBONE into the Web site 564
`RealAudio by Progressive Networks 564
`RealAudio Server Hardware Requirements 566
`RealAudio Bandwidth Requirements 567
`' Starting and Stopping RealAudio Server for UNIX 567
`Creating RealAudio Encoded Files 568
`569
`Testing RealAudio Operation
`Integrating RealAudio 570
`StreamWorks Server by Xing 570
`StreamWorks Pricing 574
`Integrating StreamWorks into Your Web Site 574
`VDOLive by VDOnet 575
`Configuring Client Side VDOLive Viewers 577
`VDOLive Pricing 578
`Integrating VDOLive Media into the Web Page 578
`29 Shocking Your Web Site 581
`Macromedia Director Basics 582
`Program Components 582
`Importing Cast Members 586
`Composing the Score 588
`
`563
`
`Facebook's Exhibit No. 1026
`Page 23
`
`
`
`Contents
`
`xxiii
`
`Creating Animations in Director 591
`Step Recording 591
`Real-Time Recording 591
`In-Betweening 592
`ANIMWIZ Features 594
`Using Lingo 596
`Frame Scripts 596
`Cast Scripts 597
`Sprite Scripts 598.
`Movie Scripts 599
`Preparing Your Director Movie for the Web 600
`Tips for Making Your Movie as Small as Possible 6Q0
`Saving Your Movie 601
`Hit the Afterburner 601
`Placing the Movie on a Web Page 601
`Expanding Shockwave's Capabilities 601
`Creating a Streamed Audio File 601
`Creating a Compressed Audio File 602
`Placing a Streamed Audio File in a Director Movie 602
`Using Lingo to Control Audio 603
`
`30 Document Types for Business 605
`Inso Word for Windows Viewer 606
`Downloading and Installing the Inso Word Viewer 606
`Using the Inso Word Viewer 607
`Inso Quick View Plus 613
`Downloading and Installing Inso Quick View Plus 613
`Quick View Plus Supported Document Types 614
`Formula One/NET 622
`What Is Formula One? 623
`Formula One/NET Example Applications 623
`Portable Document Formats 625
`Adobe Acrobat 625
`Creating Adobe Acrobat Documents 625
`Acrobat Reader 626
`Tumbleweed Envoy 627
`Common Ground Digital Paper 628
`ActiveX Documents 629
`
`Facebook's Exhibit No. 1026
`Page 24
`
`
`
`~ i
``
`~
`
`xxiv
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`IX I CGI
`31 The Common Gateway Interface 631
`CGI and the World Wide Web 632
`Beyond HTML with CGI 633
`How CGI Works 634
`Where CGI Scripts Live 636
`CGI Server Requirements 637
`Windows NT 638
`UNIX 638
`lications 639
`Desi nin CGI A
`PP
`g b
`CGI Script Structure 639
`Planning Your Script 644
`Standard CGI Environment Variables 647
`CGI Script Portability 649
`CGI Libraries 651
`CGI Limitations 654
`The Future of CGI Scripting 655
`Java 655
`Visual Basic Script 656
`VRML 657
`ISAPI 658
`32 Generating HTML in Real Time 661
`Comparing Static HTML to Real-Time HTML 662
`Real-Time HTML 662
`Benefits of Real-Time HTML 662
`Methods of Generating Real-Time HTML 663
`Near Real-Time HTML 675
`Server Performance Considerations 676
`33 Server-Side Includes 677
`Introducing SSI 678
`SSI Specification 679
`Configuring SSI 679
`Using SSI in HTML 680
`HTML Comment Synta~c 681
`Turning Comments into Commands 681
`Common SSI Commands 682
`
`,.
`
`Facebook's Exhibit No. 1026
`Page 25
`
`
`
`Contents
`
`~ocv
`
`,
`
`Sample SSI Programs 685
`SSIDump 685
`RQ 687
`XMAS 691
`HitCount 693
`HitCntth 697
`FirstHit ?01
`LastHit 704
`Server Performance Considerations 708
`
`34 Transactions and Order Taking 711
`Client Security 712
`Proxy Servers 712
`Helper Applications 713
`Passwords 714
`Server Security 716
`Securing Web Documents 716
`CGI Scripts 718
`Firewalls 719
`Connection Security 720
`Securing Transactions 720
`Secure Electronic Transactions (SE 1~ 720
`Using SSL 721
`Existing Services 724
`CyberCash 724
`DigiCash 725
`First Virtual 725
`The Future of Business Transactions 726
`
`35 CGI Security 729
`Scripts Versus Programs 730
`Trust No One 730
`Two Roads to Trouble 730
`Don't Trust Form Data 731
`Where Bad Data Comes From ' 731
`Fighting Bad Form Data 732
`Don't Trust Path Data 735
`Everything Seems Okay, But... 736
`Handling File Names 736
`In with the Good, Out with the Bad 737
`
`Facebook's Exhibit No. 1026
`Page 26
`
`
`
`', aocvi~ Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`Handling HTML 738
`Handling External Processes 740
`Inside Attacks 744
`CGI Script User 744
`Setuid and ACL Dangers 744
`Community Web Servers 745
`Using CGIWrap 745
`CGI Script Permissions 746
`Local File Security 746
`Use Explicit Paths 747
`Using Others' CGI Scripts 748
`Go to the Source 748
`Compiled, Schlamiled 749
`And That Goes for Your Little Library, Too! 749
`
`36 Custom Database Query Scripts 751
`Understanding Database Design 752
`Why Access a Database? 753
`Database Access Limitations 753
`Security Issues 754
`Creating and Using Flatfile Databases 754
`Writing to a Flaffile Database 756
`Reading from a Flatfile Database 759
`Searching a Flatfile Database 760
`DBM Databases 761
`Writing to a DBM Database 763
`Reading from a DBM Database 764
`Searching a DBM Database 765
`Relational Databases 766
`Introduction to Structured Query Language 768
`mSQL 768
`MsglPerl 769
`Building a Relational Database Application 769
`Inserting Information 769
`Retrieving Information 773
`Debugging Database Applications 774
`
`37
`
`Vlleb Database Tools 777
`Databases Available 778
`Oracle 778
`Sybase 778
`
`{
`
`,;
`f'!
`S
`
`r
`
`+_
`
`Facebook's Exhibit No. 1026
`Page 27
`
`
`
`~.
`
`Contents
`
`pcvii
`
`mSQL 779
`Illustra 779
`Microsoft SQL 779
`Postgres95 779
`Ingres 780
`FoxPro 780
`Microsoft Access 781
`Database Tools 781
`PHP/FI 781
`Cold Fusion 783
`w3-mSQL 785
`MsglPerl 785
`Msq~Java 785
`Microsoft's dbWeb 785
`WDB 786
`Web/Genera 786
`MORE 787
`DBI 787
`DBGateway 788
`Additional Resources on the Web 788
`
`X ~ Advanced Web Options
`
`38 Client Pull/Server Push .789
`Client Pull 790
`HTTP Response Headers 790
`The <NIETA> Tag .790
`Implementing Client Pull with CGI 792
`Client Pull and Java 793
`Customizing the <META> Tag 793
`Server Push 794
`MIME and the multipart/mixed Content Type 794
`Writing a Server Push Script 795
`The I/O Buffering Problem 797
`Refining Server Push: Using NPH (No-Parse Header) Scripts
`
`797
`
`39 News and Mailing List Gateways 799
`Why Mail Is So Powerful 800
`Running a Mailing List by Hand 800
`Majordomo 801
`
`Facebook's Exhibit No. 1026
`Page 28
`
`
`
`I~y ~aviii
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`LISTSERV 803
`The Importance of the Request Address 809
`The Front End: Subscribe, Unsubscribe, Posting, and Queries 809
`Subscribe~and Unsubscribe Requests 809
`Custom Forms, Mailto, and Engine Mail 810
`The Back End: Integrating Mail Archives with the Web 813
`Hypermail 814
`WAIS and Its Kin 814
`Indexing UseNet and Mailing List Archives with HURL 815
`Other Back Ends 820
`Conferencing on the Web 821
`UseNet 822
`HyperNews 822
`W3 Interactive Talk 823
`Public Annotation Systems 824
`A Real-Time Conferericing System 824
`
`40 Creating Live Chat Pages 827
`Introducing the Importance of Chat 828
`Finding Chat Pages 829
`Introduction to Chat Basics 829
`Understanding How Chat Works 830
`Understanding a CGI-Based Chat Server 832
`Understanding aJava-Based Server 834
`Using Helper Applications to Chat 836
`Using Telnet to Chat 836
`ActiveX and Plug-Ins for Chatting 836
`Power Chat Features 837
`HTML Enhancements 837
`PreDefined Graphics 839
`Chat Whispering 840
`Client-Side Pulls 840
`Persistent Aliases 841
`Multiple Chat Rooms 841
`Moderator Options 843
`3-D Chat 844
`Using Bots 844
`Existing Web Chat Software 844
`CGI 844
`Java 845
`Helper Applications 847
`Your Own Private Chat Room 848
`
`Facebook's Exhibit No. 1026
`Page 29
`
`
`
`~~;;
`
`Contents
`
`~ocix
`
`XI ~ JavaScript and Java Applets
`
`41 JavaScript 849
`Introduction to JavaScript 850
`Why Use a Scripting Language? 850
`What Can JavaScript Do? 851
`What Does JavaScript book Like? 851
`JavaScript Programming Conventions 852
`The Ja~aScript Language 853
`Using Identifiers 853
`Using Functions, Objects, and Properties 854
`Programming with JavaScript 856
`Expressions 856
`Operators 856
`Controlling Your JavaScripts 860
`JavaScript Reserved Words 861
`Other JavaScript Statements 862
`JavaScript and Web Browsers 867
`When Scripts Execute 867
`Where to Put Your Scripfs 867
`Web Browser Objects and Events 869
`Web Browser Object Hierarchy and Scoping 869
`Browser Object Model 869
`Example JavaScript Applications 874
`Manipulating Windows 874
`Web Browser Windows and Frames 880
`
`42 Developing Java Applets 887
`What Exactly Is Java? 888
`Why Java? 888
`Basic Language Constructs 889
`Leveraging Java Classes and Packages 892
`Java 101: He1loWorld 894
`Running Your He1loWorld Applet from a Web Browser 896
`Troubleshooting HelloWorld 898
`HelloWorld Class Diagram 899
`Using the Java API Manual 900
`Mandelbrot Set: An Introduction to Java Graphics 900
`Mandelbrot Set Class Diagram 901
`Java AWT and Application Frameworks 904
`
`'
`
`Facebook's Exhibit No. 1026
`Page 30
`
`
`
`~ooc
`
`Platinum Edition Using HTML 3.2, Java 1.1, and CGI
`
`-
`
`Optimizing the Mandelbrot Set Program 905
`Stopwatch: A Benchmarking Tool 906
`Introduction to State Transition Diagrams 906
`Coding a Test Driver: TestStopWatch 910
`A Closer Look at TestStopWatch 914
`Inter-Converting Applets and Stand-Alone Applications:
`A Cookbook 918
`Benchmarking and Profiling the Mandelbrot Set 918
`Preparing Mandell for Profiling 919
`Using Java's Profiler 921
`How Do You Optimiz