Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provider 측의 server 부담 줄이기 위한 http cache 기능 사용하기. #311

Open
kimalec opened this issue Jun 12, 2015 · 3 comments

Comments

@kimalec
Copy link
Member

kimalec commented Jun 12, 2015

정기적인 요청으로 Provider측에서 의도적 지연이 발생하고 있음.

If-Modified-Since 나 Etag를 활용하여, 지금 요청하는 api 의 결과가 변함없음을 받을 수 있고, 서로 원활한 동작을 도와줄 수 있을 듯함.

@kimalec
Copy link
Member Author

kimalec commented Jun 25, 2015

provider에서는 지속적으로 요청하는 request에 대하여 아래와 같이 응답을 확 느리게 하는 경우가 있음.
service time이 7459ms

2015-06-24 16:10:49.610 373 <158>1 2015-06-24T16:10:49.531613+00:00 heroku router - - at=info method=GET path="/google/bot_posts/6319813625635004694?after=2015-06-24T16:09:41.979Z&userid=558aaecd5339ca1100b3cc75" host=www.justwapps.com request_id=3e31980a-c621-4fe7-9b12-0e5cd10d5181 fwd="54.91.162.58" dyno=web.1 connect=1ms service=7459ms status=200 bytes=359

@neoqmin
Copy link
Contributor

neoqmin commented Sep 3, 2015

우선, ETag를 지원하는 google에 대해서는 ETag를 사용하기 위해서 blogid와 ETag를 쌍으로 하는 배열을 생성하여 관리하고, If-None-Match를 사용할 예정입니다.
그리고, response의 304 에러를 처리할 예정입니다.

아래의 예제가 정상작동됨을 테스트 했습니다.

req.get('https://www.googleapis.com/blogger/v3/blogs/TEST_BLOG_ID?key=TEST_API_KEY',{
        headers: {
            "If-None-Match": "\"GtyIIQmNmmUjEA0nwhSqMElCJ1g/jeQ9BmQGdi_D7ig1OS0f8nW_EI8\""
        }
    }, function(error, response, body) {
        if(response.statusCode === 304) {
            console.log("304");
        } else {
            console.log(response.statusCode);
        }
});

etag에 " 가 포함되기 때문에 "를 추가해 주어야 정상 작동하였습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants