curl 속도 문의
본문
curl을 사용하여 데이터를 전송하는걸 만들고있는데요
https 로 시작하는 도메인과
http 로 시작하는 도메인
각각 2개가 있는데요
https 로 전송을 하면 속도가 느립니다
http 로 전송하면 속도가 무난하고요....
그래서 폭풍 구글링해서 찾은게
위 팁인데요
팁 내용중에
테스트 방법은 /etc/hosts에 아이피, 도메인을 매핑후 속도 체크를 하는것입니다
아이피 도메인이 해당 전송하는(본인) 아이피 + 본인도메인 을 적으라는건가요?
아 작업하면 산넘어 산이네요.... 해결하면 다른게 튀어나오고 아~~ ㅠㅠ
조언좀 부탁드립니다~
감사합니다.
답변 3
호출하는 쪽 서버 아이피, 도메인을 정의해야 합니다.
dns 서버에 질의하지 않고 직접 아이피를 찾아가는 방법이고 그렇기에 좀더 빠른데
이 경우는 http 로 접근했을때와 아닌때의 차이 이므로 그 방법이 크게 도움이 될것 같지는 않습니다.
CURLOPT_SSL_VERIFYPEER, CURLOPT_SSL_VERIFYHOST 를 0 으로 설정해보세요
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
...
curl_close($ch);
내용을 보고 유추해보건데,
1) https 느리고, http 는 무난한 경우는 서버가 http 의 경우 강제로 https 리다이렉트 응답을 보내는게 아닐까 합니다.
그러니까 실제 api 서버의 로직은 호출되지 않았을 가능성이 있습니다. 이를 확인할려면,
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 을 추가합니다.
2) namelookup_time 수치가 낮은 수치임으로 name resolv 이슈로 응답이 느린건 아닌것 같습니다.
결론) api 서버가 느린게 아니라, 응답 받은후 처리하는 쪽이 느린게 아닐까 합니다.(웹서버가 느린것일수도 있고,,)
이를ㄹ 확인하기 위해서 shell 에서 curl 을 호출하여 속도를 비교해보면 좋을것 같네요.
p2) xxxxx_us 라고 표기된 시간들은 마이크로 단위로 보입니다. (마이크로 세컨드 = µs)
마이크로 세컨드로 시간을 환산하면 그렇게 느린 응답들이 이 아닙니다. 242978us = 242.978ms = 0.242978s
단순히
HTTPS 서버가 느려서(낮은 성능)
그런 거 아닐까요.