{"id":512,"date":"2009-02-02T13:12:03","date_gmt":"2009-02-02T05:12:03","guid":{"rendered":"http:\/\/wp.jiinjoo.com\/?p=512"},"modified":"2009-02-02T13:17:49","modified_gmt":"2009-02-02T05:17:49","slug":"dont-change-urls-ever","status":"publish","type":"post","link":"https:\/\/wp.jiinjoo.com\/?p=512","title":{"rendered":"Don&#8217;t change URLs, ever"},"content":{"rendered":"<p>I have a bookmark which I check every other day on my data plan usage. After I got back from CNY, I realize it didn&#8217;t work anymore. Turns out that the URL has been changed from<\/p>\n<p>http:\/\/<strong>www<\/strong>.ideas.singtel.com\/BOM\/HS_usage02.jsp?mobile=65&lt;YourPhoneNumber&gt;&#038;ic=&lt;YourICNumber&gt;<\/p>\n<p>to<\/p>\n<p>http:\/\/<strong>apps<\/strong>.ideas.singtel.com\/BOM\/HS_usage02.jsp?mobile=65&lt;YourPhoneNumber&gt;&#038;ic=&lt;YourICNumber&gt;<\/p>\n<p>Don&#8217;t do this, please. URLs are supposed to be well known. It&#8217;s hard for people to build useful applications if small things like these keep changing. If there&#8217;s a data interface (XML or whatnot), then make it known. Otherwise, a simple google search will reveal that the many help given on forums \/ blogs \/ etc. are now broken and useless. <\/p>\n<p>If it&#8217;s a load issue, then one can put in better load-balancers facing the same www domain name (or just put a few more IP for DNS round robin to kick in). This gives maximum flexibility while retaining the same URL for all your consumers. Some layer 7 LBs can read HTTP headers \/ URLs and redirect according to a set of rules pretty quickly.<\/p>\n<p>And even if there&#8217;s a need to switch, then do something to give a good response instead of just moving it. This is what www is saying:<\/p>\n<blockquote><p>Error 404&#8211;Not Found<br \/>\nFrom RFC 2068 Hypertext Transfer Protocol &#8212; HTTP\/1.1:<br \/>\n10.4.5 404 Not Found<\/p>\n<p>The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.<\/p>\n<p>If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.<\/p><\/blockquote>\n<p>It&#8217;s funny now the customers are being lectured by the server. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have a bookmark which I check every other day on my data plan usage. After I got&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-512","post","type-post","status-publish","format-standard","hentry","category-internet","content-wrap"],"_links":{"self":[{"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=\/wp\/v2\/posts\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=512"}],"version-history":[{"count":0,"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=\/wp\/v2\/posts\/512\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jiinjoo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}