Does an SPV bloom filter get applied to full blockchain or just new transactions When an SPV client starts up with no state, connects to a full node and sets a bloom filter what messages will it receive?

Will it only get new transactions that match its filter or is there some way to also get the full node to supply all previous blocks that match the filter?
This question has the answer.

For the first question when an SPV client starts up and sets a bloom filter it will not receive any special messages from connected bitcoin nodes. The bloom filter will result in transaction broadcasts to the SPV being filtered.

In answer to the second question an SPV client must still request ALL block headers and send a getdata request for every block in order to determine whether it contains any relevant transactions. The purpose of the bloom filter is to restrict the number of transactions returned by the merkleblock response to the getdata request.

An SPV client that's relying on bitcoin peer nodes for transaction information will have a slow initial start up as it needs to request all the block headers.