반응형
ASP.NET MVC에서 ETag를 어떻게 지원합니까?
ASP.NET MVC에서 ETag를 어떻게 지원합니까?
@Elijah Glover의 답변 은 답변의 일부이지만 실제로 완전하지는 않습니다. 이렇게하면 ETag가 설정되지만 서버 측에서 확인하지 않으면 ETag의 이점을 얻을 수 없습니다. 다음과 같이 수행합니다.
var requestedETag = Request.Headers["If-None-Match"];
if (requestedETag == eTagOfContentToBeReturned)
return new HttpStatusCodeResult(HttpStatusCode.NotModified);
또 다른 팁은 응답의 캐시 가능성을 설정해야한다는 것입니다. 그렇지 않으면 기본적으로 "비공개"이고 응답에 ETag가 설정되지 않습니다.
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
따라서 전체 예 :
public ActionResult Test304(string input)
{
var requestedETag = Request.Headers["If-None-Match"];
var responseETag = LookupEtagFromInput(input); // lookup or generate etag however you want
if (requestedETag == responseETag)
return new HttpStatusCodeResult(HttpStatusCode.NotModified);
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Response.Cache.SetETag(responseETag);
return GetResponse(input); // do whatever work you need to obtain the result
}
MVC의 ETAG는 WebForms 또는 HttpHandlers와 동일합니다.
ETAG 값을 생성하는 방법이 필요합니다. 내가 찾은 가장 좋은 방법은 File MD5 또는 ShortGuid를 사용하는 것 입니다.
.net은 문자열을 ETAG로 허용하므로 다음을 사용하여 쉽게 설정할 수 있습니다.
String etag = GetETagValue(); //e.g. "00amyWGct0y_ze4lIsj2Mw"
Response.Cache.SetETag(etag);
MIX의 비디오 , 마지막에는 REST와 함께 ETAG를 사용합니다.
참고 URL : https://stackoverflow.com/questions/937668/how-do-i-support-etags-in-asp-net-mvc
반응형
'Programing' 카테고리의 다른 글
memset이 정수 배열을 -1로 초기화하는 방법은 무엇입니까? (0) | 2020.12.02 |
---|---|
Python에서 예외 메시지를 올바르게 얻는 방법 (0) | 2020.12.02 |
Visual Studio 2010은 어떤 C ++ 11 기능을 지원합니까? (0) | 2020.12.02 |
JSF panelGrid에서 colspan과 rowspan을 설정하는 방법은 무엇입니까? (0) | 2020.12.02 |
팝업에 입력 오류를 표시하는 방법은 무엇입니까? (0) | 2020.12.02 |