#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);
}