HTTP 프로토콜: 304
1471 단어 REST
var r = new XMLHttpRequest();r.onreadystatechange=function() {
if (r.readyState==4) {
if (r.status==200) { // "OK status"
displayData(r.responseText);
}
else if (r.status==304) {
// "Not Modified": No change to display
}
else {
alertProblem(r);
}
}}
r.open("GET",'http://myserver.example.com/latest_data/',true)
r.send(null);
HTTP의 간단한 사실 중 하나는 HTTP는 무상태 프로토콜로 HTTP의 가장 큰 장점이자 주요 단점이다.HTTP 서버 자원에 대한 모든 요청은 멱등입니다. 즉, 매번 같은 요청을 호출할 때마다 같은 결과를 되돌려야 합니다.멱등은 REST의 중심 사상이다. 언제 같은 요청을 보내든지, 고객 정보를 인코딩했든지, 똑같은 데이터를 되돌려야 한다.[하지만]'같은 데이터'를 어떻게 이해하는 것이 그렇게 쉬워 보이고 싶지 않다.같은 URI가 항상 같은 데이터를 되돌려주는 것은 거친 이해일 뿐이다.정적 페이지의 내용이 바뀌어도 (예를 들어 맞춤법 오류를 수정한 것)멱 등 배후의 의미는 관련 변화가 GET 요청 자체에 직접적인 영향을 미치지 말아야 한다는 것을 가리킨다.그래서 이렇게 항상 변화하는 자원은 완전히 합리적인 방법이다.
http://myserver.example.com/latest_data/
이 문제는'최신 데이터 (latest_data)'에 불과하다. 누가 언제 어떤 방식으로 얻었는지에만 의존하는 것이 아니다.하나의 서버는 완전히 RESTful일 수 있고 여전히 "세계의 현황"을 반영할 수 있다.
304 Not Modified 만약에 고객지원단이 조건부 요청을 완성했고 요청은 허용되지만 이 문서가 바뀌지 않으면 서버는 304 상태 코드를 되돌려야 합니다.304 상태 코드는 반드시 정보 주체를 포함할 수 없기 때문에 일반적으로 헤더 필드를 통과한 후 첫 번째 빈 줄을 통해 끝난다.클라이언트가 버퍼링된 문서를 가지고 조건부 요청을 보냈습니다. (일반적으로 If-Modified-Since 헤더는 고객이 지정한 날짜보다 업데이트하고 싶은 문서만 표시합니다.)서버는 원래 버퍼링된 문서를 계속 사용할 수 있다고 고객에게 알려 줍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
REST API (RESTfull API)란?REST는 Representational State Transfer라는 용어의 약자로 웹의 장점을 최대한 활용할 수 있도록 만들어진 네트워크 아키텍처 원리의 모음이다. 1. HTTP URI를 통해 자원을 명시하고 2...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.