код состояния http для ссылки с истекшим сроком действия?

#http

#http

Вопрос:

ребята, какой правильный код состояния для ссылки, срок действия которой истекает через определенное время?

Я думал отправить 404 после истечения срока действия, но, возможно, есть лучший http-статус для отправки.

Пример ссылки:

mysite/dir/062011/file.exe (<- работает только в течение 06-2011)

Спасибо

Ответ №1:

Как насчет 410 «Пропал»?
Смотрите: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Комментарии:

1. @mr_eclair если ресурс скоропортящийся и срок его действия истекает, перенаправлять будет не на что.

2. Это! Спасибо. Именно то, что мне было нужно для условного ответа API.

Ответ №2:

 410 Gone

The requested resource is no longer available at the server and no forwarding
address is known. This condition is expected to be considered permanent.
  

Ответ №3:

Я выбрал 410 Gone при попытке проверить код подтверждения с истекшим сроком действия в C # Web API. Я использую руководство по REST API для справкиhttps://www.restapitutorial.com/httpstatuscodes.html

     /// <summary>
    /// Verify email address
    /// </summary>
    /// <param name="verificationCode">Verification Code for ownership of an email address</param>
    /// <returns>Verify Email Update Api Response</returns>
    [HttpPut]
    [Route("{verificationCode}/verify-email-update")]
    [ResponseType(typeof(VerifyEmailChangeApiResponse))]
    public async Task<IHttpActionResult> VerifyEmailUpdate(Guid verificationCode)
    {
        var response = await this.emailVerificationService
            .VerifyEmailUpdate(verificationCode)
            .ConfigureAwait(false);

        switch (response.Result)
        {
            case VerifyEmailUpdateApiResultType.Ok:
                return this.Ok(response);

            case VerifyEmailUpdateApiResultType.EmailAddressAlreadyVerified:
                return this.Content(HttpStatusCode.Conflict, response);

            case VerifyEmailUpdateApiResultType.Expired:
                return this.Content(HttpStatusCode.Gone, response);

            case VerifyEmailUpdateApiResultType.UnknownProblem:
                return this.Content(HttpStatusCode.BadRequest, response);
        }

        return this.Ok(response);
    }