Yes, by their hashes using getdata in the raw protocol or getblock in the client.
I tried getblock "hash", but it seems like I can only get block that I already have in my disk, I want to get this function working without downloading the whole blockchain. Is there any way to connect to some kind of server and use this method on this server ?
TL;DR, I want to compile my own bootstrap.dat file that contain only blocks from a specific block number for example only blocks between 130000 and 140000, all this without having the blockchain in my hard drive.