Direct and Indirect Barcodes

Roger has a great explanation of the difference between direct and indirect 2D barcodes. In brief, direct embeds the data in the code, while indirect stores the data on a server and just embeds a link in the code, which means you need an internet connection (and probably proprietary software) just to read it.

It's a short article and worth a read. I agree with Roger's conclusion:
Given this limitation of requiring an internet connection you may wonder why anyone of sound mind would want to use the indirect method? However the proponents claim that it is both more secure and also results in a smaller code. All I have to say is that in Japan where QR Codes are ubiquitous I have never seen or heard of an indirect code. Both direct and indirect methods fail to “switching” or “code-jacking” and as to size there are easy options for direct codes such as using the Bitly shortener.
Some indirect code providers, most notably Microsoft's Tag, are doing some very cool things with the art for their codes and back-end campaign tracking capabilities. You will have to decide for yourself if the benefits outweigh the costs for your 2D barcode campaigns.