Detailed Course Outline
Chapter 1: Setting Up the BIG-IP System
- Introducing the BIG-IP System
 - Initially Setting Up the BIG-IP System
 - Archiving the BIG-IP System Configuration
 - Leveraging F5 Support Resources and Tools
 
Chapter 2: Getting Started with iRules
- Customizing Application Delivery with iRules
 - Triggering an iRule
 - Leveraging the DevCentral Ecosystem
 - Creating and Deploying iRules
 
Chapter 3: Exploring iRule Elements
- Introducing iRule Constructs
 - Understanding iRule Events and Event Context
 - Working with iRule Commands
 - Logging from an iRule Using SYSLOG-NG (LOG Command)
 - Working with User-Defined Variables
 - Working with Operators and Data Types
 - Working with Conditional Control Structures (IF and SWITCH)
 - Incorporating Best Practices in iRules
 
Chapter 4: Developing and Troubleshooting iRules
- Mastering Whitespace and Special Symbols
 - Grouping Strings
 - Developing and Troubleshooting Tips
 - Using Fiddler to Test and Troubleshoot iRules
 
Chapter 5: Optimizing iRule Execution
- Understanding the Need for Efficiency
 - Measure iRule Runtime Efficiency Using Timing Statistics
 - Modularizing iRules for Administrative Efficiency
 - Using Procedures to Modularize Code
 - Optimizing Logging
 - Using High-Speed Logging Commands in an iRule
 - Implementing Other Efficiencies
 - Using Looping Control Structures (WHILE, FOR, FOREACH Commands)
 
Chapter 6: Securing Web Applications with iRules
- Integrating iRules into Web Application Defense
 - Mitigating HTTP Version Attacks
 - Mitigating Path Traversal Attacks
 - Using iRules to Defends Against Cross-Site Request Forgery (CSRF)
 - Mitigating HTTP Method Vulnerabilities
 - Securing HTTP Cookies with iRules
 - Adding HTTP Security Headers
 - Removing Undesirable HTTP Headers
 
Chapter 7: Working with Numbers and Strings
- Understanding Number Forms and Notation
 - Working with Strings (STRING and SCAN Commands)
 - Combining Strings (Adjacent Variables, CONCAT and APPEND Commands)
 - Using iRule String Parsing Functions (FINDSTR, GETFIELD, and SUBSTR Commands)
 
Chapter 8: Processing the HTTP Payload
- Reviewing HTTP Headers and Commands
 - Accessing and Manipulating HTTP Headers (HTTP::header Commands)
 - Other HTTP commands (HTTP::host, HTTP::status, HTTP::is_keepalive, HTTP::method, HTTP::version, HTTP::redirect, HTTP::respond, HTTP::uri)
 - Parsing the HTTP URI (URI::path, URI::basename, URI::query)
 - Parsing Cookies with HTTP::cookie
 - Selectively Compressing HTTP Data (COMPRESS Command)
 
Chapter 9: Working with iFiles and Data Groups
- Working with iFiles
 - Introducing Data Groups
 - Working with Old Format Data Groups (MATCHCLASS, FINDCLASS)
 - Working with New Format Data Groups (CLASS MATCH, CLASS SEARCH)
 
Chapter 10: Using iRules with Universal Persistence, Stream, and Statistics Profiles
- Implementing Universal Persistence (PERSIST UIE Command)
 - Working with the Stream Profile (STREAM Command)
 - Collecting Statistics Using a Statistics Profile (STATS Command)
 - Collecting Statistics Using iStats (ISTATS Command)
 
Chapter 11: Incorporating Advanced Variables
- Reviewing the Local Variable Namespace
 - Working with Arrays (ARRAY Command)
 - Using Static and Global Variables
 - Using the Session Table (TABLE Command)
 - Processing Session Table Subtables
 - Counting “Things” Using the Session Table