There is a new edition of the book and this is an old link.
Every reference in Rust has a lifetime, which is the scope for which that reference is valid. Most of the time lifetimes are implicit and inferred.
{
let x = 5; // -----+-- 'b
// |
let r = &x; // --+--+-- 'a
// | |
println!("r: {r}"); // | |
// --+ |
} // -----+
Here are the relevant sections in the new and old books: