SPF: Difference between v=spf1 include:_spf.google.com ~all and v=spf1 include:spf.google.com ~all
Solution 1:
spf.google.com
doesn't exist, while _spf.google.com
contains a valid SPF record.
In other words: only the first line will actually work (as of now).
If you search DNS for _spf.google.com you get the following result:
_spf.google.com IN TXT v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all
Google is using the _underscore addresses to hold particular DNS records. There is no particular significance to the character choice; it's just their naming convention.