Each of the major cloud providers supports several different types of load balancer, and cloud architects can choose the type that best suits their use cases. Here is a taxonomy of load balancers that are available on the GCP:
As this diagram illustrates, load balancers can operate at different layers of the OSI stack. HTTP(S) load balancers operate at the application layer, SSL is a session-layer protocol, TCP is a transport-layer protocol, and network load balancers operate at the level of IP, which, of course, is a network protocol.
The rule of thumb is this: go with the highest layer of the OSI stack possible. So, for instance, if your application is based on HTTP or HTTPS, use HTTP(S) load balancing. If not, try to work at the session layer, and so on. The reason for this is the higher in the stack you are, the more real-world the abstractions...