The X Window System core protocol includes some requests and events that are specific to selection exchange, but the transfer is mainly done using event sending and window properties, which are not specific to selection transfer.
Different types of data can be transferred: it is usually text, but can also be an image, a number, a list of objects, etc.
By contrast, cut buffers are a passive mechanism: after some text is selected, it is transferred to a cut buffer and remains there even if the application handling the window terminates and the window is destroyed.
An advantage of active mechanisms is that the data can be converted to a different format before the transfer.
If the sending client refuses to do so, the receiver can request a different format.
The advantage of the passive mechanisms is that the transfer can be done even after the client holding the data terminates.
In particular, the destination client begins by asking the server which window owns the selection.
At the level of the core protocol, the PRIMARY and CLIPBOARD selections do not differ.
In particular, when another client asserts the ownership of the CLIPBOARD selection, this program requests and displays it in a window.
Cut buffers are another mechanism to transfer data, in particular selected text.
Unlike selections, cut buffers do not involve a direct interaction between clients.
In particular, the target should display visual feedback on whether or not it will accept the drop, and the cursor should change to indicate the action that will be taken; e.g., copy or move.
In addition, since the target may need to draw a bombsight to indicate where the drop will occur, and since acceptance of the drop may depend on the exact location of the cursor, this exchange must happen repeatedly as the cursor moves.
In summary, the protocol is driven by the source, which keeps the target informed of what is happening with the cursor.