I have read some pieces of HTTP/2 rfc7540 specification and I'm not fully understood what is the difference between WINDOW_UPDATE and SETTINGS frames in HTTP/2 protocol?
Like said in the referenced RFC 7540, WINDOW_UPDATE is used to implement flow control, while SETTINGS transports configuration parameters that an endpoint must apply.
A client establishes a TCP connection to the server. It can then send a SETTINGS frame to inform the server of the configuration parameters that it wants the server to honor. For example, the client endpoint can tell the server that is does not support PUSH (see https://www.rfc-editor.org/rfc/rfc7540#section-6.5.2).
Likewise, the server can send to the client a SETTINGS frame containing its configuration parameters.
Flow control, on the other hand, is about how many data bytes each endpoint can send on the connection. The only frame that is subject to flow control is the DATA frame.
Flow control is a necessary mechanism that multiplexed protocols should implement. Refer to this section for further details.
In summary, the WINDOW_UPDATE and SETTINGS frames implement each a different functionality of the HTTP/2 protocol.