Server push
Server push is the capability of HTTP/2 to initiate the transfer of data frames from the server side, instead of having to wait for the request of the client. This is obviously a big win, for instance when browsers need to download multiple resources from a webpage, where HTTP/1.x is needed to open one TCP connection for every one of them.
PUSH_PROMISE
frames are used for this purpose. They are sent by the server to the client, and the client is free to accept or not, and even decide a bunch of settings via the SETTINGS
frame on how the downloading of the resources will be done. The goal is that the client may have full control of the communication.