[tahoe-lafs-trac-stream] [tahoe-lafs] #1993: Abuse of HTTP status 410 Gone

tahoe-lafs trac at tahoe-lafs.org
Thu May 30 19:08:04 UTC 2013


#1993: Abuse of HTTP status 410 Gone
-----------------------------------+-----------------------
     Reporter:  kpreid             |      Owner:
         Type:  defect             |     Status:  new
     Priority:  normal             |  Milestone:  undecided
    Component:  code-frontend-web  |    Version:  1.10.0
   Resolution:                     |   Keywords:  http
Launchpad Bug:                     |
-----------------------------------+-----------------------

Comment (by kpreid):

 > Note that !NoSharesError could be interpreted as an even-less-healthy
 version of !NotEnoughSharesError, where there are so few shares that we
 couldn't find even a single one. So there might be an argument for
 reporting 503 in both cases.

 I agree that 503 is not-wrong, but it is commonly understood that 404 can
 result from servers being temporarily broken; I think it is more valuable
 that to have the property that any bogus URL yields a 404.

 If your grid is so flaky that you can lose all shares of a file, that's
 another problem entirely. (Actually: what if the gateway is not
 ''connected to'' enough storage servers that enough (properly spread)
 shares could not possibly be found? That would be an appropriate time for
 a 503 if no shares are found, since it is likely that the answer will be
 different when the grid is in better condition.)

 > If 410 means "it will never exist", does 404 mean "it might come back
 someday"?

 404 is most fitting for "I haven't heard of that URL", but also

       This status code is commonly used when the server does not wish to
 reveal exactly why the request has been refused, or when no other
 response is applicable.

 If the server knows that you can't have it right now, 403. If the server
 is unable to supply it but expects to in the future, 503.

 > Also, does 410 imply anything about whether or not it used to exist?

 It would be peculiar for the resource to not have used to exist, but 410
 at least indicates that the server knows ''about'' the hypothetical
 currently-non-existing resource.

 But really, we should be thinking about the operational implications, from
 which perspective 410 means "The link you followed is known to be obsolete
 and so you should remove it."

 > Are there any normal-web-server situations that would correctly produce
 a 410?

 If I deliberately remove something from my web site, it would be
 appropriate for me to arrange for a 410 response. (Of course, then "I
 decided to put it back" is problematic, which is a reason 410 doesn't see
 more use.)

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1993#comment:2>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list