How do Application Load Balancers (ALB) and Network Load Balancers (NLB) differ, and in what scenarios would you choose one over the other?