From: "Shawn O. Pearce" <spearce@xxxxxxxxxxx> Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx> -- To Shawn: sign-off-by needed. Based on: From: "Shawn O. Pearce" <spearce@xxxxxxxxxxx> Message-ID: <20091016142135.GR10505@xxxxxxxxxxx> Mike Hommey <mh@xxxxxxxxxxxx> wrote: > On Thu, Oct 15, 2009 at 10:59:25PM -0700, H. Peter Anvin wrote: > > On 10/10/2009 03:12 AM, Antti-Juhani Kaijanaho wrote: > > > On 2009-10-09, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > >>> +If there is no repository at $GIT_URL, the server MUST respond with > > >>> +the '404 Not Found' HTTP status code. > > >> > > >> We may also want to add > > >> > > >> If there is no object at $GIT_URL/some/path, the server MUST respond > > >> with the '404 Not Found' HTTP status code. > > >> > > >> to help dumb clients. > > > > > > In both cases - is it really necessary to forbid the use of 410 (Gone)? My original text got taken a bit out of context here. I guess MUST was too strong of a word. I more ment something like: If there is no repository at $GIT_URL, the server MUST NOT respond with '200 OK' and a valid info/refs response. A server SHOULD respond with '404 Not Found', '410 Gone', or any other suitable HTTP status code which does not imply the resource exists as requested. In addition, address behaviour on missing objects, as suggested by Junio. His text (see quote in above excerpt) was not used, in favour of a more general treatment (locations matching $GIT_URL, not just objects). --- Documentation/technical/http-protocol.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Documentation/technical/http-protocol.txt b/Documentation/technical/http-protocol.txt index a8d28ba..412b898 100644 --- a/Documentation/technical/http-protocol.txt +++ b/Documentation/technical/http-protocol.txt @@ -91,8 +91,12 @@ Except where noted, all standard HTTP behavior SHOULD be assumed by both client and server. This includes (but is not necessarily limited to): -If there is no repository at $GIT_URL, the server MUST respond with -the '404 Not Found' HTTP status code. +If there is no repository at $GIT_URL, the server MUST NOT respond with +'200 OK' and a valid info/refs response. Also, if the resource pointed +to by a location matching $GIT_URL does not exist, the server MUST NOT +respond with '200 OK'. A server SHOULD respond with +'404 Not Found', '410 Gone', or any other suitable HTTP status code +which does not imply the resource exists as requested. If there is a repository at $GIT_URL, but access is not currently permitted, the server MUST respond with the '403 Forbidden' HTTP -- 1.8.4.rc4.527.g303b16c -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html