<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments for Blog for The Well Designed URLs Initiative</title>
	<link>http://blog.welldesignedurls.org</link>
	<description>Advocating User-Centered URL Design</description>
	<pubDate>Thu, 09 Sep 2010 01:20:55 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.2</generator>

	<item>
		<title>Comment on URLQuiz #1: To .WWW or not to .WWW? by Jeff Rivett</title>
		<link>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-133137</link>
		<author>Jeff Rivett</author>
		<pubDate>Wed, 14 Oct 2009 22:31:14 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-133137</guid>
					<description>You use the word "deference" repeatedly in your text.  I think you meant to say "dereference."  Also, the link to the "Deference" article is broken.</description>
		<content:encoded><![CDATA[<p>You use the word &#8220;deference&#8221; repeatedly in your text.  I think you meant to say &#8220;dereference.&#8221;  Also, the link to the &#8220;Deference&#8221; article is broken.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why URL design matters in email by Phillip Hershkowitz</title>
		<link>http://blog.welldesignedurls.org/2007/03/30/why-url-design-matters-in-email/#comment-132454</link>
		<author>Phillip Hershkowitz</author>
		<pubDate>Wed, 30 Sep 2009 22:52:30 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/03/30/why-url-design-matters-in-email/#comment-132454</guid>
					<description>Redirects are the worst. Which would you trust more:

http://gofrontrow.com/info

or

http://gofrontrow.silly-email-delivery-company.com/sdfghk2457y2rfhid

ugh</description>
		<content:encoded><![CDATA[<p>Redirects are the worst. Which would you trust more:</p>
<p><a href="http://gofrontrow.com/info" rel="nofollow">http://gofrontrow.com/info</a></p>
<p>or</p>
<p><a href="http://gofrontrow.silly-email-delivery-company.com/sdfghk2457y2rfhid" rel="nofollow">http://gofrontrow.silly-email-delivery-company.com/sdfghk2457y2rfhid</a></p>
<p>ugh</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on PayPal&#8217;s New API: So Close, Yet So Far by Mike Schinkel</title>
		<link>http://blog.welldesignedurls.org/2007/02/16/paypals-new-name-value-pair-api/#comment-124814</link>
		<author>Mike Schinkel</author>
		<pubDate>Fri, 17 Apr 2009 18:48:49 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/16/paypals-new-name-value-pair-api/#comment-124814</guid>
					<description>As far as I'm concerned SOAP is a complete nightmare and yes, you are correct if the server goes down it's the same problem. That is unless you use SOAP over store-and-forward mechanisms (like SMTP) instead of over HTTP but then what you are doing is a completely different type of web service.

Let me repeat, SOAP is a nightmare.  RESTful web services are the way to go. If you need high-availability, use Amazon EC2 or something similar.</description>
		<content:encoded><![CDATA[<p>As far as I&#8217;m concerned SOAP is a complete nightmare and yes, you are correct if the server goes down it&#8217;s the same problem. That is unless you use SOAP over store-and-forward mechanisms (like SMTP) instead of over HTTP but then what you are doing is a completely different type of web service.</p>
<p>Let me repeat, SOAP is a nightmare.  RESTful web services are the way to go. If you need high-availability, use Amazon EC2 or something similar.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on PayPal&#8217;s New API: So Close, Yet So Far by Dinakar</title>
		<link>http://blog.welldesignedurls.org/2007/02/16/paypals-new-name-value-pair-api/#comment-124807</link>
		<author>Dinakar</author>
		<pubDate>Fri, 17 Apr 2009 14:38:51 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/16/paypals-new-name-value-pair-api/#comment-124807</guid>
					<description>I am using NVP over SOAP for my website. my manager says SOAP is better because in NVP, if the server goes down, it will be a problem. But, isnt it a problem either way? if the server goes down, the webservice (i.e., even using SOAP API) also goes down with it ....am I correct?</description>
		<content:encoded><![CDATA[<p>I am using NVP over SOAP for my website. my manager says SOAP is better because in NVP, if the server goes down, it will be a problem. But, isnt it a problem either way? if the server goes down, the webservice (i.e., even using SOAP API) also goes down with it &#8230;.am I correct?</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Jack the Snipper</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-92989</link>
		<author>Jack the Snipper</author>
		<pubDate>Thu, 12 Jun 2008 23:10:29 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-92989</guid>
					<description>Wow.  I'm not really sure what I was looking for when I stumbled upon your post, but this was interesting.  You are probably taking the standard beyond its intent and interpretation.  By that, I'm only speaking to your assertion that adding an entry in a database causes the use of GET to stray from the standard.  As a user, following, or GETting, that URL causes  no harm that could even be construed as unsafe, by the standard's definition, for you.  That spec is funny anyway because it basically implies that users accept obligations via POSTs.

By what appears to be your definition, every search form that doesn't specify a method would be unsafe if the developer of that form made any attempt to save given search parameters for their own analysis.  The very fact that SnipURL retaining an index to match what you provide them to what they provide you caused you to broadcast your overinterpretation of a standard to the world is hilarious!

What action, in terms of adding an index entry into their database, might have an unexpected significance to you or others?  Their use of get with an underlying database entry on their end does not fall outside of the standard.  You are a standarista.</description>
		<content:encoded><![CDATA[<p>Wow.  I&#8217;m not really sure what I was looking for when I stumbled upon your post, but this was interesting.  You are probably taking the standard beyond its intent and interpretation.  By that, I&#8217;m only speaking to your assertion that adding an entry in a database causes the use of GET to stray from the standard.  As a user, following, or GETting, that URL causes  no harm that could even be construed as unsafe, by the standard&#8217;s definition, for you.  That spec is funny anyway because it basically implies that users accept obligations via POSTs.</p>
<p>By what appears to be your definition, every search form that doesn&#8217;t specify a method would be unsafe if the developer of that form made any attempt to save given search parameters for their own analysis.  The very fact that SnipURL retaining an index to match what you provide them to what they provide you caused you to broadcast your overinterpretation of a standard to the world is hilarious!</p>
<p>What action, in terms of adding an index entry into their database, might have an unexpected significance to you or others?  Their use of get with an underlying database entry on their end does not fall outside of the standard.  You are a standarista.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Which is Worst: the URL for IE7 Add-ons, Firefox Extensions, or Greasemonkey? by Morbus</title>
		<link>http://blog.welldesignedurls.org/2007/02/02/which-url-is-worst-ie7-add-ons-firefox-extensions-greasemonkey/#comment-90965</link>
		<author>Morbus</author>
		<pubDate>Thu, 29 May 2008 20:21:47 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/02/which-url-is-worst-ie7-add-ons-firefox-extensions-greasemonkey/#comment-90965</guid>
					<description>Too late, too late, but firefox's addons site is called AMO for something:

addons.mozilla.org

Remember AMO, remember it all.</description>
		<content:encoded><![CDATA[<p>Too late, too late, but firefox&#8217;s addons site is called AMO for something:</p>
<p>addons.mozilla.org</p>
<p>Remember AMO, remember it all.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Proposing HTTP Request Forwarding by chary</title>
		<link>http://blog.welldesignedurls.org/2007/03/08/http-request-forwarding/#comment-90039</link>
		<author>chary</author>
		<pubDate>Fri, 23 May 2008 09:05:03 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/03/08/http-request-forwarding/#comment-90039</guid>
					<description>http://wiki.welldesignedurls.org/URL_Interfaces


Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/welldesi/public_html/wiki/includes/Exception.php on line 114</description>
		<content:encoded><![CDATA[<p><a href="http://wiki.welldesignedurls.org/URL_Interfaces" rel="nofollow">http://wiki.welldesignedurls.org/URL_Interfaces</a></p>
<p>Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or &#8216;}&#8217; in /home/welldesi/public_html/wiki/includes/Exception.php on line 114</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on URLQuiz #1: To .WWW or not to .WWW? by The Great Dub-Dub-Dub Debate &#124; Developer Home</title>
		<link>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-89955</link>
		<author>The Great Dub-Dub-Dub Debate &#124; Developer Home</author>
		<pubDate>Thu, 22 May 2008 22:14:30 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-89955</guid>
					<description>[...] that, it&#38;#8217;s largely a matter of taste, though you could make a case that user-centered URL design should rule the day. If we&#38;#8217;re dropping the www prefix, why stop there? Why not drop the [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] that, it&amp;#8217;s largely a matter of taste, though you could make a case that user-centered URL design should rule the day. If we&amp;#8217;re dropping the www prefix, why stop there? Why not drop the [&#8230;]</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on URLQuiz #1: To .WWW or not to .WWW? by Johannes Rössel</title>
		<link>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-83372</link>
		<author>Johannes Rössel</author>
		<pubDate>Thu, 01 May 2008 12:03:37 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/19/urlquiz-1-www-or-non-www/#comment-83372</guid>
					<description>As for my site the default configuration was that www and non-www pointed to the same content. After a few days the site was on I noticed that some search engines indexed the www variant, some the non-www variant and iirc one even treated both differently and yielded results with and without the www. I decided pretty early (so to not break many links, if there ever were any ...) to get rid of the www form and installed a redirect from www. to the non-www form (unfortunately only for the root, so no deep links were considered. However I never got around thinking about how I might do that :).

I also noticed that I almost never type the www anymore, anyway. Except for a few sites I know where I get nothing without the www and they constantly annoy me. It's also not nice to the user to issue 404s in that case, imho.</description>
		<content:encoded><![CDATA[<p>As for my site the default configuration was that www and non-www pointed to the same content. After a few days the site was on I noticed that some search engines indexed the www variant, some the non-www variant and iirc one even treated both differently and yielded results with and without the <a href="http://www." rel="nofollow">www.</a> I decided pretty early (so to not break many links, if there ever were any &#8230;) to get rid of the www form and installed a redirect from <a href="http://www." rel="nofollow">www.</a> to the non-www form (unfortunately only for the root, so no deep links were considered. However I never got around thinking about how I might do that :).</p>
<p>I also noticed that I almost never type the www anymore, anyway. Except for a few sites I know where I get nothing without the www and they constantly annoy me. It&#8217;s also not nice to the user to issue 404s in that case, imho.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on PageRank by File Host</title>
		<link>http://blog.welldesignedurls.org/2007/02/26/pagerank/#comment-83355</link>
		<author>File Host</author>
		<pubDate>Thu, 01 May 2008 11:09:08 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/26/pagerank/#comment-83355</guid>
					<description>The homepage of a website will always be once pagerank higher than any internal page ......</description>
		<content:encoded><![CDATA[<p>The homepage of a website will always be once pagerank higher than any internal page &#8230;&#8230;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Use rel=&#8221;spam&#8221; to Fight Comment Spam? by Penalizing Spam Links, Etc, Etc &#124; Idiotprogrammer</title>
		<link>http://blog.welldesignedurls.org/2007/02/08/rel-spam-to-fight-comment-spam/#comment-80698</link>
		<author>Penalizing Spam Links, Etc, Etc &#124; Idiotprogrammer</author>
		<pubDate>Wed, 23 Apr 2008 23:12:42 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/08/rel-spam-to-fight-comment-spam/#comment-80698</guid>
					<description>[...] Schinkel suggests a way to fight spam comments: assign a special attribute to them that makes it easier for google to penalize their google juice. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Schinkel suggests a way to fight spam comments: assign a special attribute to them that makes it easier for google to penalize their google juice. [&#8230;]</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Introduction by Penalizing Spam Links, Etc, Etc &#124; Idiotprogrammer</title>
		<link>http://blog.welldesignedurls.org/introduction/#comment-80695</link>
		<author>Penalizing Spam Links, Etc, Etc &#124; Idiotprogrammer</author>
		<pubDate>Wed, 23 Apr 2008 23:09:30 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/introduction/#comment-80695</guid>
					<description>[...] Mike Schinkel suggests a way to fight spam comments: assign a special attribute to them that makes it easier for google to penalize their google juice. The problem is that unless Akismet had some direct connection with google, these tags would not be visible to google. Schinkel&#160; writes a fascinating blog about well-formed URLs. To test your knowledge of HTTP and URL formations, try these quizzes.&#160; A good starting point is here. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Mike Schinkel suggests a way to fight spam comments: assign a special attribute to them that makes it easier for google to penalize their google juice. The problem is that unless Akismet had some direct connection with google, these tags would not be visible to google. Schinkel&nbsp; writes a fascinating blog about well-formed URLs. To test your knowledge of HTTP and URL formations, try these quizzes.&nbsp; A good starting point is here. [&#8230;]</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Nicolas</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-77470</link>
		<author>Nicolas</author>
		<pubDate>Fri, 18 Apr 2008 20:54:14 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-77470</guid>
					<description>goddamnit it parsed my HTML.

&#60;a href=&#34;whatever&#34;&#62;&#60;button&#62;Clicky&#60;/button&#62;&#60;/a&#62;</description>
		<content:encoded><![CDATA[<p>goddamnit it parsed my HTML.</p>
<p>&lt;a href=&quot;whatever&quot;&gt;&lt;button&gt;Clicky&lt;/button&gt;&lt;/a&gt;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Nicolas</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-77469</link>
		<author>Nicolas</author>
		<pubDate>Fri, 18 Apr 2008 20:53:38 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-77469</guid>
					<description>You++;

I just found about this blog, looks like I'll be reading it often!

Using GET for unsafe operations is something I have been fighting hard against on a web app. Months later, the devs started using buttons on the UI for things that were "actions". But keeping GET. And not only that... They didn't even use a form!

&lt;a href="whatever" rel="nofollow"&gt;Clicky&lt;/a&gt;

I kid you not.

Then it was discovered a button in a link doesn't work on some browsers. So now the button's onclick handler (yup, Javascript) uses location.href to go to the correct URL, with GET of course.

I'm gonna kill somebody.</description>
		<content:encoded><![CDATA[<p>You++;</p>
<p>I just found about this blog, looks like I&#8217;ll be reading it often!</p>
<p>Using GET for unsafe operations is something I have been fighting hard against on a web app. Months later, the devs started using buttons on the UI for things that were &#8220;actions&#8221;. But keeping GET. And not only that&#8230; They didn&#8217;t even use a form!</p>
<p><a href="whatever" rel="nofollow">Clicky</a></p>
<p>I kid you not.</p>
<p>Then it was discovered a button in a link doesn&#8217;t work on some browsers. So now the button&#8217;s onclick handler (yup, Javascript) uses location.href to go to the correct URL, with GET of course.</p>
<p>I&#8217;m gonna kill somebody.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Ian Clarke</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-65168</link>
		<author>Ian Clarke</author>
		<pubDate>Sat, 29 Mar 2008 12:28:26 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-65168</guid>
					<description>Why do you advocate formatting data as application/x-www-url-encoded for PUT and POST (rather than, say, application/json)?</description>
		<content:encoded><![CDATA[<p>Why do you advocate formatting data as application/x-www-url-encoded for PUT and POST (rather than, say, application/json)?</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by microBlog &#187; GET, POST, safety, idempotency</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-65005</link>
		<author>microBlog &#187; GET, POST, safety, idempotency</author>
		<pubDate>Sat, 29 Mar 2008 02:15:36 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-65005</guid>
					<description>[...] Unfortunately, I think Mike Schinkel got a bit carried away in his somewhat ranty post about how SnipURL&#8217;s GET-based API is bad. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Unfortunately, I think Mike Schinkel got a bit carried away in his somewhat ranty post about how SnipURL&#8217;s GET-based API is bad. [&#8230;]</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Ben Hoyt</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-62432</link>
		<author>Ben Hoyt</author>
		<pubDate>Fri, 21 Mar 2008 03:42:25 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-62432</guid>
					<description>Hi Mike,

I agree with your push for well-designed URLs and simple, RESTful practices. But I must admit I'm not sure you're correct in this critique of SnipURL's API.

It's true that one should only ever use GET for idempotent queries, but the standard doesn't actually mandate that GET must always be safe. (I'm using "idempotent" and "safe" here as the standard does: loosely, idempotent means "doing it ten times is the same as doing it once" and safe means "no side effects".)

And here I quote from the HTTP spec, section 9.1, http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html (*emphasis* mine):

"... the *convention* has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered 'safe'. This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested."

"Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; in fact, *some dynamic resources consider that a feature.* The important distinction here is that the user did not request the side-effects, so therefore *cannot be held accountable for them.*"

So according to the spec, the "safeness" of GET is a (good) convention, but its idempotency is a requirement, as the next sections make clear. Note also the spec specifically says that "some dynamic resources consider [GET with certain side effects] a feature". SnipURL are obviously okay with being "held accountable" for the side effects if the user didn't intend them (and almost always he will have intended them).

The reason this doesn't matter with something like the SnipURL API is that you can repeat the "snip a URL" operation as many times as you want, and it always returns the same result. So the operation is repeatable, cacheable, spiderable, etc. (This is in sharp contrast to other operations where you definitely need POST, such as commenting on a blog, transferring money to someone's account, etc.)

As it happens, I run a similar service at DecentURL.com, and early on a guy convinced me to change the main "make a URL decent" action from POST to GET -- because a GET is simpler to use in many contexts, and since the action is idempotent, everything's cool. As he put it:

"From the browser's perspective, there is no difference than if the response had always existed for all time prior to the first request. One can cache that response without any perceptible effect, for instance, and bots can request it again and again without damaging anything."

So apart from the fact that SnipURL and DecentURL *do* actually adhere to the standard ... also note that you've got to be somewhat pragmatic about these things. Most other URL redirection services out there use GET, and it works fine, for the above reasons. As Paul Buchheit said on the GET vs POST issue, "I'd rather have something imperfect but useful and popular than something 'perfect' but unfinished and unused."

Sorry about the long comment. Hope this helps clear up why using GET here is not only okay but also standard. :-)

Cheers,
Ben.</description>
		<content:encoded><![CDATA[<p>Hi Mike,</p>
<p>I agree with your push for well-designed URLs and simple, RESTful practices. But I must admit I&#8217;m not sure you&#8217;re correct in this critique of SnipURL&#8217;s API.</p>
<p>It&#8217;s true that one should only ever use GET for idempotent queries, but the standard doesn&#8217;t actually mandate that GET must always be safe. (I&#8217;m using &#8220;idempotent&#8221; and &#8220;safe&#8221; here as the standard does: loosely, idempotent means &#8220;doing it ten times is the same as doing it once&#8221; and safe means &#8220;no side effects&#8221;.)</p>
<p>And here I quote from the HTTP spec, section 9.1, <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html" rel="nofollow">http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html</a> (*emphasis* mine):</p>
<p>&#8220;&#8230; the *convention* has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered &#8217;safe&#8217;. This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.&#8221;</p>
<p>&#8220;Naturally, it is not possible to ensure that the server does not generate side-effects as a result of performing a GET request; in fact, *some dynamic resources consider that a feature.* The important distinction here is that the user did not request the side-effects, so therefore *cannot be held accountable for them.*&#8221;</p>
<p>So according to the spec, the &#8220;safeness&#8221; of GET is a (good) convention, but its idempotency is a requirement, as the next sections make clear. Note also the spec specifically says that &#8220;some dynamic resources consider [GET with certain side effects] a feature&#8221;. SnipURL are obviously okay with being &#8220;held accountable&#8221; for the side effects if the user didn&#8217;t intend them (and almost always he will have intended them).</p>
<p>The reason this doesn&#8217;t matter with something like the SnipURL API is that you can repeat the &#8220;snip a URL&#8221; operation as many times as you want, and it always returns the same result. So the operation is repeatable, cacheable, spiderable, etc. (This is in sharp contrast to other operations where you definitely need POST, such as commenting on a blog, transferring money to someone&#8217;s account, etc.)</p>
<p>As it happens, I run a similar service at DecentURL.com, and early on a guy convinced me to change the main &#8220;make a URL decent&#8221; action from POST to GET &#8212; because a GET is simpler to use in many contexts, and since the action is idempotent, everything&#8217;s cool. As he put it:</p>
<p>&#8220;From the browser&#8217;s perspective, there is no difference than if the response had always existed for all time prior to the first request. One can cache that response without any perceptible effect, for instance, and bots can request it again and again without damaging anything.&#8221;</p>
<p>So apart from the fact that SnipURL and DecentURL *do* actually adhere to the standard &#8230; also note that you&#8217;ve got to be somewhat pragmatic about these things. Most other URL redirection services out there use GET, and it works fine, for the above reasons. As Paul Buchheit said on the GET vs POST issue, &#8220;I&#8217;d rather have something imperfect but useful and popular than something &#8216;perfect&#8217; but unfinished and unused.&#8221;</p>
<p>Sorry about the long comment. Hope this helps clear up why using GET here is not only okay but also standard. :-)</p>
<p>Cheers,<br />
Ben.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Which is Worst: the URL for IE7 Add-ons, Firefox Extensions, or Greasemonkey? by HP</title>
		<link>http://blog.welldesignedurls.org/2007/02/02/which-url-is-worst-ie7-add-ons-firefox-extensions-greasemonkey/#comment-60619</link>
		<author>HP</author>
		<pubDate>Fri, 14 Mar 2008 05:26:36 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/02/02/which-url-is-worst-ie7-add-ons-firefox-extensions-greasemonkey/#comment-60619</guid>
					<description>I read this on HPs driver downloads site:

In an effort to provide the best possible customer experience, this page has been removed.

And no - there were no links on it to any of the missing downloads, nor can the site be searched - google was the only thing that found them again...</description>
		<content:encoded><![CDATA[<p>I read this on HPs driver downloads site:</p>
<p>In an effort to provide the best possible customer experience, this page has been removed.</p>
<p>And no - there were no links on it to any of the missing downloads, nor can the site be searched - google was the only thing that found them again&#8230;</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Seeing things the way in which one wants them to be (not the way they are) by Breton</title>
		<link>http://blog.welldesignedurls.org/2007/05/19/seeing-things-the-way-in-which-one-wants-them-to-be-not-the-way-they-are/#comment-60436</link>
		<author>Breton</author>
		<pubDate>Thu, 13 Mar 2008 05:23:14 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2007/05/19/seeing-things-the-way-in-which-one-wants-them-to-be-not-the-way-they-are/#comment-60436</guid>
					<description>It seems I've missed the best part of this discussion by many months, but I've noticed a few glaring things that I'd like to pedantically nitpick.

First, and most pedantic, Mike's quote from Avi is not exactly a clear example of confirmation bias. It seems more like an "Appeal to Ignorance". that is "There's no evidence for X, so it must not be true" Confirmation bias is more like "There's some evidence for X, so it must be true". 

Second, REST is not about pretty URL's. REST and Pretty URLs have very little to do with eachother. And while you may think you're being clever, and subverting REST with your seaside framework, as long as you're using HTTP, you're using REST architecture whether you like it or not. The question here about seaside's state model then, is not about whether it's RESTful, but whether or not its breaking the expectations of the client application (Either a browser, or a search engine, or other client). 

 That is, the worst crime of session state is that it breaks the back button, it breaks bookmarking, it breaks the user expectation of what happens when they send a friend or college a web address. Basically, session state, (and also Ajax) are a really bad idea for the same reasons that frames were a really bad idea. It may seem in the heat of the moment a really convenient way to get things done, but the end result is a broken website.

The worst part of it is that Users, and consequently, web developers, who are also users, don't see anything wrong with breaking the back button, or breaking bookmarks. 

REST architecture, it's true, is not necessarily the best architecture for an application- But it is a really good architecture for designing applications that must work over a network- The constraints of REST are not there simply to annoy desktop application developers, they're there to force you to SIMPLIFY your application's design in such a way that it is robust against network failures, slow connections, allows proxies and caching, and other really good features that Ramon seems perfectly happy to throw away without a second thought just to make his website a little easier for him to program. 

So what we have here is a design decision that costs the users dearly by breaking their browser, harming usability, making the application perform very poorly over a network, for what? To make it a little easier for you to program? This doesn't seem like a particularly professional attitude to me.</description>
		<content:encoded><![CDATA[<p>It seems I&#8217;ve missed the best part of this discussion by many months, but I&#8217;ve noticed a few glaring things that I&#8217;d like to pedantically nitpick.</p>
<p>First, and most pedantic, Mike&#8217;s quote from Avi is not exactly a clear example of confirmation bias. It seems more like an &#8220;Appeal to Ignorance&#8221;. that is &#8220;There&#8217;s no evidence for X, so it must not be true&#8221; Confirmation bias is more like &#8220;There&#8217;s some evidence for X, so it must be true&#8221;. </p>
<p>Second, REST is not about pretty URL&#8217;s. REST and Pretty URLs have very little to do with eachother. And while you may think you&#8217;re being clever, and subverting REST with your seaside framework, as long as you&#8217;re using HTTP, you&#8217;re using REST architecture whether you like it or not. The question here about seaside&#8217;s state model then, is not about whether it&#8217;s RESTful, but whether or not its breaking the expectations of the client application (Either a browser, or a search engine, or other client). </p>
<p> That is, the worst crime of session state is that it breaks the back button, it breaks bookmarking, it breaks the user expectation of what happens when they send a friend or college a web address. Basically, session state, (and also Ajax) are a really bad idea for the same reasons that frames were a really bad idea. It may seem in the heat of the moment a really convenient way to get things done, but the end result is a broken website.</p>
<p>The worst part of it is that Users, and consequently, web developers, who are also users, don&#8217;t see anything wrong with breaking the back button, or breaking bookmarks. </p>
<p>REST architecture, it&#8217;s true, is not necessarily the best architecture for an application- But it is a really good architecture for designing applications that must work over a network- The constraints of REST are not there simply to annoy desktop application developers, they&#8217;re there to force you to SIMPLIFY your application&#8217;s design in such a way that it is robust against network failures, slow connections, allows proxies and caching, and other really good features that Ramon seems perfectly happy to throw away without a second thought just to make his website a little easier for him to program. </p>
<p>So what we have here is a design decision that costs the users dearly by breaking their browser, harming usability, making the application perform very poorly over a network, for what? To make it a little easier for you to program? This doesn&#8217;t seem like a particularly professional attitude to me.</p>
]]></content:encoded>
				</item>
	<item>
		<title>Comment on Why SnipURL&#8217;s API is Unsafe a.k.a. How NOT to design your Web API by Douglas Karr</title>
		<link>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-48580</link>
		<author>Douglas Karr</author>
		<pubDate>Sat, 26 Jan 2008 11:47:27 +0000</pubDate>
		<guid>http://blog.welldesignedurls.org/2008/01/26/snipurls-unsafe-api/#comment-48580</guid>
					<description>Great post and I think it's fantastic that you took the time to notify them and let them know the issue!

The concern for me would be someone highjacking URLs from their system and pushing them to another location other than the snip'd url.</description>
		<content:encoded><![CDATA[<p>Great post and I think it&#8217;s fantastic that you took the time to notify them and let them know the issue!</p>
<p>The concern for me would be someone highjacking URLs from their system and pushing them to another location other than the snip&#8217;d url.</p>
]]></content:encoded>
				</item>
</channel>
</rss>
