There is no "absolute" answer :-)
There are pros and cons to both absolute and relative URLs in links:
Absolute URLs:
+ help keep the links pointing to your content if someone were to copy
it (*)
+ help keep the links pointing to your domain name if you cannot
select a canonical (can't do 301 redirects)
+ help make sure that you're pointing to the right URL even if you
move things around (say for stylesheets or graphics)
- cannot be tested on a staging / testing server (eg locally) (unless
you insert the links dynamically)
- makes it hard to move content (unless the links are inserted
dynamically)
Relative URLs:
+ make it easy to move content around
+ make it easy to test locally and on a staging server
- are easy to break if linking to content that isn't moved as well
(stylesheet, graphics, etc)
- an evil scraper would have less work (*)
There's a middle ground as well, using absolute links without a domain
name, eg: <a href="/resources/green/mostly/page.htm" ...>
Personally, I prefer to use relative URLs + some absolute (without
domain name) ones to shared resources. The advantage of being able to
test things out 1:1 on a staging server can't compete with the pseudo-
protection against scrapers.
The only place I would use absolute URLs would be if the site is
hosted somewhere where the webmaster can't do a 301 redirect and may
have trouble with duplicates. I've seen this a lot with sites hosted
on a free account with the ISP; often it will be hosted as
http://isp.com/users/~name/site ..., then perhaps http://domain.com/site...
and http://www.domain.com/site... . By using absolute URLs in that
situation, any value passed to one of the wrong URLs will
automatically pass value to the correct URLs as well.
If you have a really good CMS you may be able to change from one to
another and use a staging server without much work. In that case, it
probably doesn't matter which one is chosen.
John
(*) Regarding the evil scraper scenario: I think this is overrated and
those who have problems with it usually have other problems to worry
about. Also, most scraper software recognizes absolute links and swaps
them out anyway.