Fundamentals of web development /

Connolly, Randy, 1964-

Fundamentals of web development / Randy Connolly, Mount Royal University, Calgary, Ricardo Hoar, Mount Royal University, Calgary. - xliii, 979 pages : illustrations ; 23 cm

Includes bibliographical references and index.

Preface -- Acknowledgments -- -- How theWebWorks -- 1.1 Definitions and History -- A Short History of the Internet -- The Birth of the Web -- Web Applications in Comparison to Desktop Applications -- Static Websites versus Dynamic Websites -- Web 2.0 and Beyond -- 1.2 Internet Protocols -- A Layered Architecture -- Link Layer -- Internet Layer -- Transport Layer -- Application Layer -- 1.3 The Client-Server Model -- The Client -- The Server -- The Request-Response Loop -- The Peer-to-Peer Alternative -- Server Types -- Real-World Server Installations -- 1.4 Where Is the Internet -- From the Computer to the Local Provider -- From the Local Provider to the Ocean's Edge -- Across the Oceans -- 1.5 Domain Name System -- Name Levels -- Name Registration -- Address Resolution -- 1.6 Uniform Resource Locators -- Protocol -- Domain -- Port -- Path -- Query String -- Fragment -- 1.7 Hypertext Transfer Protocol -- Headers -- Request Methods -- Response Codes -- 1.8 WebServers -- Operating Systems -- Web Server Software -- Database Software -- Scripting Software -- 1.9 Chapter Summary -- Key Terms -- Review Questions -- References -- -- Introduction to HTML -- 2.1 What Is HTML and Where Did It Come from -- XHTML -- HTML5 -- 2.2 HTML Syntax -- Elements and Attributes -- Nesting HTML Elements -- 2.3 Semantic Markup -- 2.4 Structure ofHTML Documents -- DOCTYPE -- Head and Body -- 2.5 Quick Tour ofHTML Elements -- Headings -- Paragraphs and Divisions -- Links -- URL Relative Referencing -- Inline Text Elements -- Images -- Character Entities -- Lists -- 2.6 HTML5 Semantic Structure Elements -- Header and Footer -- Heading Groups -- Navigation -- Articles and Sections -- Figure and Figure Captions -- Aside -- 2.7 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- -- Introduction to CSS -- 3.1 What Is CSS? ho -- Benefits of CSS -- 12 -- CSS Versions -- Browser Adoption -- 3.2 CSS Syntax -- Selectors -- Properties -- Values -- 3.3 Location of Styles -- Inline Styles -- Embedded Style Sheet -- External Style Sheet -- 3.4 Selectors -- Element Selectors -- Class Selectors -- Id Selectors -- Attribute Selectors -- Pseudo-Element and Pseudo-Class Selectors -- Contextual Selectors -- 3.5 The Cascade: How Styles Interact -- Inheritance -- Specificity -- Location -- 3.6 The Box Model -- Background -- Borders -- Margins and Padding -- Box Dimensions -- 3.7 CSS Text Styling -- Font Family -- Font Sizes -- Paragraph Properties -- 3.8 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- HTML Tables and Forms -- 4.1 Introducing Tables -- Basic Table Structure -- Spanning Rows and Columns -- Additional Table Elements -- Using Tables for Layout -- 4.2 Styling Tables -- Table Borders -- Boxes and Zebras -- 4.3 Introducing Forms -- Form Structure -- How Forms Work -- Query Strings -- The
Element -- 4.4 Form Control Elements -- Text Input Controls -- Choice Controls -- Button Controls -- Specialized Controls -- Date and Time Controls -- 4.5 Table and Form Accessibility -- Accessible Tables -- Accessible Forms -- 4.6 Microformats -- 4.7 Chapter Summary -- Key Terms -- 14 -- Review Questions -- Hands-On Practice -- -- Advanced CSS: Layout -- 5.1 Normal Flow -- 5.2 Positioning Elements -- Relative Positioning -- Absolute Positioning -- Z-Index -- Fixed Position -- 5.3 Floating Elements -- Floating within a Container -- Floating Multiple Items Side by Side -- Containing Floats -- Overlaying and Hiding Elements -- 5.4 Constructing Multicolumn Layouts -- Using Floats to Create Columns -- Using Positioning to Create Columns -- 5.5 Approaches to CSS Layout -- Fixed Layout -- Liquid Layout -- Other Layout Approaches -- 5.6 Responsive Design -- SettingViewports -- Media Queries -- 5.7 CSS Frameworks -- Grid Systems -- CSS Preprocessors -- 5.8 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- -- JavaScript: Client-Side Scripting -- 6.1 What Is JavaScript and What Can It Do -- Client-Side Scripting -- JavaScript's History and Uses -- 6.2 JavaScript Design Principles -- Layers -- Users without JavaScript -- Graceful Degradation and Progressive Enhancement -- 6.3 Where Does JavaScript Go -- Inline JavaScript -- Embedded JavaScript -- External JavaScript -- Advanced Inclusion ofJavaScript -- 6.4 Syntax -- Variables -- Comparison Operators -- Logical Operators -- Conditionals -- Loops -- Functions -- Errors Using Try and Catch -- 6.5 JavaScript Objects -- Constructors -- Properties -- Objects Included in JavaScript -- Window Object -- 6.6 The Document Object Model (DOM -- Nodes -- 16 -- Document Object -- Element Node Object -- Modifying aDOM Element -- Additional Properties -- 6.7 JavaScript Events -- Inline Event Handler Approach -- Listener Approach -- Event Object -- Event Types -- 6.8 Forms -- Validating Forms -- Submitting Forms -- 6.9 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Web Media -- 7.1 Digital Representations ofImages -- 7.2 Color Models -- RGB -- CMYK -- HSL -- Opacity -- Color Relationships -- 7.3 Image Concepts -- Color Depth -- Image Size -- Display Resolution -- TABLE OF -- 7.4 File Formats -- JPEG -- GIF -- PNG -- SVG -- Other Formats -- 7.5 Audio and Video -- Media Concepts -- Browser Video Support -- Browser Audio Support -- 7.6 HTML5 Canvas -- 7.7 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- -- Introduction to Server-Side Development -- With PHP -- 8.1 What Is Server-Side Development -- Comparing Client and Server Scripts -- Server-Side Script Resources -- Comparing Server-Side Technologies -- 8.2 AWeb Server's Responsibilities -- Apache and Linux -- Apache and PHP -- PHP Internals -- Installing Apache, PHP, and MySQL for Local Development -- 8.3 Quick Tour of PHP -- PHP Tags -- PHP Comments -- 18 -- Variables, Data Types, and Constants -- Writing to Output -- 8.4 Program Control -- if... else -- switch ... case -- while and do ... while -- for -- Alternate Syntax for Control Structures -- Include Files -- 8.5 Functions -- Function Syntax -- Calling a Function -- Parameters -- Variable Scope within Functions -- 8.6 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- PHP Arrays and Superglobals -- 9.1 Arrays -- Defining and Accessing an Array -- Multidimensional Arrays -- Iterating through an Array -- Adding and Deleting Elements -- Array Sorting -- More Array Operations -- Superglobal Arrays -- 9.2 $_GET and $_POST Superglobal Arrays -- Determining If Any Data Sent -- Accessing Form Array Data -- Using Query Strings in Hyperlinks -- Sanitizing Query Strings -- 9.3 $_SERVER Array -- Server Information Keys -- Request Header Information Keys -- 9.4 $_FILES Array -- HTML Required for File Uploads -- Handling the File Upload in PHP -- Checking for Errors -- File Size Restrictions -- Limiting the Type of File Upload -- Moving the File -- 9.5 Reading/Writing Files -- Stream Access -- In-Memory File Access -- 9.6 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- 1. 2. 3. 4. 5. 6. 7. 8. 9. PHP Classes and Objects -- 10.1 Object-Oriented Overview -- Terminology -- The Unified Modeling Language -- Differences between Server and Desktop Objects -- 10.2 Classes and Objects in PHP -- Defining Classes -- Instantiating Objects -- Properties -- 20 -- Constructors -- Methods -- Visibility -- Static Members -- Class Constants -- 10.3 Object-Oriented Design -- Data Encapsulation -- Inheritance -- Polymorphism -- Object Interfaces -- 10.4 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Working with Databases -- 11.1 Databases andWeb Development -- The Role of Databases in Web Development -- Database Design -- Database Options -- 11.2 SQL -- SELECT Statement -- INSERT, UPDATE, and DELETE Statements -- Transactions -- Data Definition Statements -- Database Indexes and Efficiency -- 11.3 Database APIs -- PHP MySQL APIs -- Deciding on a Database API -- 11.4 Managing a MySQL Database -- Command-Line Interface -- phpMyAdmin -- MySQL Workbench -- 11.5 Accessing MySQL in PHP -- Connecting to a Database -- Handling Connection Errors -- Executing the Query -- Processing the Query Results -- Freeing Resources and Closing Connection -- Using Transactions -- 11.6 Case Study Schemas -- Art Database -- Book CRM Database -- Travel Photo Sharing Database -- 11.7 Sample Database Techniques -- Display a List of Links -- Search and Results Page -- Editing a Record -- Saving and Displaying Raw Files in the Database -- 11.8 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Error Handling andValidation -- 12.1 What Are Errors and Exceptions -- Types of Errors -- Exceptions -- 22 -- 12.2 PHP Error Reporting -- The error_reporting Setting -- The display_errors Setting -- The log_error Setting -- 12.3 PHP Error and Exception Handling -- Procedural Error Handling -- Object-Oriented Exception Handling -- Custom Error and Exception Handlers -- 12.4 Regular Expressions -- Regular Expression Syntax -- Extended Example -- 12.5 Validating User Input -- Types of InputValidation -- Notifying the User -- How to Reduce Validation Errors -- 12.6 Where to PerformValidation -- Validation at the JavaScript Level -- Validation at the PHP Level -- 12.7 Chapter Summary sso -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Managing State -- 13.1 The Problem of State inWeb Applications -- 13.2 Passing Information via Query Strings -- 13.3 Passing Information via the URL Path -- URL Rewriting in Apache and Linux -- 13.4 Cookies -- How Do Cookies Work -- Using Cookies -- Persistent Cookie Best Practices -- 13.5 Serialization -- Application of Serialization -- 13.6 Session State -- How Does Session State Work -- Session Storage and Configuration -- 13.7 HTML5Web Storage -- Using Web Storage -- WhyWould We Use Web Storage -- 13.8 Caching -- Page Output Caching -- Application Data Caching -- 13.9 Chapter Summary 6ii -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Web Application Design en -- 14.1 Real-World Web Software Design -- Challenges in Designing Web Applications -- 14.2 Principle of Layering -- What Is a Layer -- Consequences of Layering -- Common Layering Schemes -- 14.3 Software Design Patterns in theWeb Context -- Adapter Pattern -- Simple Factory Pattern -- Template Method Pattern -- Dependency Injection -- 24 -- 14.4 Data and Domain Patterns -- Table Data Gateway Pattern -- Domain Model Pattern -- Active Record Pattern -- 14.5 Presentation Patterns -- Model-View-Controller (MVC) Pattern -- Front Controller Pattern -- 14.6 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Advanced JavaScript & jQuery -- 15.1 JavaScript Pseudo-Classes -- Using Object Literals -- Emulate Classes through Functions -- Using Prototypes -- 15.2 j Query Foundations -- Including jQuery in Your Page -- jQuery Selectors -- jQuery Attributes -- jQuery Listeners -- Modifying the DOM -- 15.3 AJAX -- Making Asynchronous Requests -- Complete Control over AJAX -- Cross-Origin Resource Sharing (CORS -- 15.4 Asynchronous File Transmission -- Old iframe Workarounds -- The FormData Interface -- Appending Files to a POST -- 15.5 Animation -- Animation Shortcuts -- Raw Animation -- 15.6 Backbone MVC Frameworks -- Getting Started with Backbone.js -- Backbone Models -- Collections -- Views -- 15.7 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Security -- 16.1 Security Principles -- Information Security -- Risk Assessment and Management -- SecurityPolicy -- Business Continuity -- Secure by Design -- Social Engineering -- 16.2 Authentication -- Authentication Factors -- Single-Factor Authentication -- Multifactor Authentication -- Third-Party Authentication -- Authorization -- 26 -- 16.3 Cryptography -- Substitution Ciphers -- Public Key Cryptography -- Digital Signatures -- 16.4 Hypertext Transfer Protocol Secure (HTTPS -- Secure Handshakes -- Certificates and Authorities -- 16.5 Security Best Practices -- Data Storage -- MonitorYour Systems -- Audit and Attack Thyself -- 16.6 CommonThreat Vectors -- SQL Injection -- Cross-Site Scripting (XSS -- Insecure Direct Object Reference -- Denial of Service -- Security Misconfiguration -- 16.7 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- XML Processing andWeb Services -- 17.1 XML Overview -- Well-Formed XML -- Valid XML -- XSLT -- XPath -- 17.2 XML Processing -- XML Processing in JavaScript -- XML Processing in PHP -- 1Z.3 JSON -- Using JSON in JavaScript -- Using JSON in PHP -- 17.4 Overview ofWeb Services -- SOAP Services -- REST Services -- An ExampleWeb Service -- Identifying and Authenticating Service Requests -- 17.5 ConsumingWeb Services in PHP -- Consuming an XML Web Service -- Consuming a JSON Web Service -- 17.6 Creating Web Services -- Creating an XML Web Service -- Creating a JSON Web Service -- 17.7 Interacting Asynchronously withWeb Services -- Consuming Your Own Service -- Using Google Maps -- 17.8 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Content Management Systems -- 18.1 Managing Websites -- Components of a Managed Website -- 18.2 Content Management Systems -- Types of CMS -- 18.3 CMS Components -- Post and Page Management -- 28 -- WYSIWYG Editors -- Template Management -- Menu Control -- User Management and Roles -- User Roles -- Workflow and Version Control -- Asset Management -- Search -- Upgrades and Updates -- 18.4 WordPress Technical Overview -- Installation -- File Structure -- WordPress Nomenclature -- Taxonomies -- WordPress Template Hierarchy -- 18.5 Modifying Themes -- Changing Themes in Dashboard -- Creating a Child Theme (CSS Only -- Changing Theme Files -- 18.6 CustomizingWordPress Templates -- WordPress Loop -- Core WordPress Classes -- Template Tags -- Creating a Page Template -- Post Tags -- 18.7 Creating a Custom Post Type -- Organization -- RegisteringYour Post Type -- Adding Post-Specific Fields -- SavingYour Changes -- Under the Hood -- Displaying Our Post Type -- 18.8 Writing a Plugin -- Getting Started -- Hooks, Actions, and Filters -- Activate Your Plugin -- Output of the Plugin -- Make It a Widget -- 18.9 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Web Server Administration -- 19.1 Web Server-Hosting Options -- Shared Hosting -- Dedicated Hosting -- Collocated Hosting -- Cloud Hosting -- 19.2 Domain and Name Server Administration -- Registering a Domain Name -- Updating the Name Servers -- DNS Record Types -- Reverse DNS -- 19.3 Linux 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. and Apache Configuration -- Configuration -- Daemons -- Connection Management -- Data Compression -- Encryption and SSL -- Managing File Ownership and Permissions -- 30 -- 19.4 Apache Request and Response Management -- Managing Multiple Domains on One Web Server -- Handling Directory Requests -- Responding to File Requests -- URL Redirection -- Managing Access with .htaccess -- Server Caching -- 19.5 Web Monitoring and Analytics -- Internal Monitoring -- External Monitoring -- Internal Analytics -- Third-Party Analytics -- Third-Party Support Tools -- 19.6 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Search Engines -- 20.1 The History and Anatomy of Search Engines -- Before Google -- Search Engine Overview -- 20.2 Web Crawlers and Scrapers -- Robots Exclusion Standard -- Scrapers -- 20.3 Indexing and Reverse Indexing -- 20.4 PageRank and Result Order -- 20.5 White-Hat Search Engine Optimization -- Title -- Meta Tags -- URLs -- Site Design -- Sitemaps -- Anchor Text -- Images -- Content -- 20.6 Black-Hat SEO -- Content Spamming -- Link Spam -- Other Spam Techniques -- 20.7 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- -- Social Network Integration -- 21.1 Social Networks -- How DidWe Get Here -- Common Characteristics -- 21.2 Social Network Integration -- Basic Social Media Presence -- Facebook's Social Plugins -- Open Graph -- Google's Plugins -- Twitter's Widgets -- Advanced Social Network Integration -- 21.3 Monetizing Your Site with Ads -- Web Advertising -- Web Advertising Economy -- 32 -- 21.4 Marketing Campaigns -- Email Marketing -- Physical World Marketing -- 21.5 Working inWeb Development -- Types of Web Development Companies -- Roles and Skills -- 21.6 Chapter Summary -- Key Terms -- Review Questions -- Hands-On Practice -- References -- Index -- Credits. 20. 21.

0133407152 9780133407150

2014003354


Web site development

TK5105.888 / .C658 2015

006.7

Powered by Koha