In traditional web systems (HTTP 1.1), communication is client-initiated:
So, if the server gets new data (like a new chat message), it cannot push it to the client directly.
The client has to keep checking:
“Hey server, do you have something new for me?”
That’s where Polling comes in.

Client repeatedly sends HTTP requests every few seconds:
Client → Server: Any new message?
Server → Client: Nope.
(3 seconds later…)
Client → Server: Any new message?
Server → Client: Yes, here’s one.