한 걸음 더 나아가서 연결하려는 사이트가 SSL을 지원하는지 확인할 수 있습니다 (한 프로젝트는 사용자에게 URL을 요청하고 http 또는 https 사이트에 API 팩을 설치했는지 확인해야합니다).
내가 사용하는 기능은 다음과 같습니다. 기본적으로 cURL을 통해 URL을 호출하여 https가 작동하는지 확인하십시오!
function hasSSL($url)
{
// take the URL down to the domain name
$domain = parse_url($url, PHP_URL_HOST);
$ch = curl_init('https://' . $domain);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'HEAD'); //its a HEAD
curl_setopt($ch, CURLOPT_NOBODY, true); // no body
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // in case of redirects
curl_setopt($ch, CURLOPT_VERBOSE, 0); //turn on if debugging
curl_setopt($ch, CURLOPT_HEADER, 1); //head only wanted
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // we dont want to wait forever
curl_exec($ch);
$header = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($header === 200) {
return true;
}
return false;
}
이것은 https를 사용하고 있는지 (질문과 같이) 확인하는 것뿐만 아니라 https를 사용해야 할 때 (또는 SHOULD) 확인하는 가장 신뢰할 수있는 방법입니다.
참고 : 사이트에 http 및 https 페이지가 다를 수 있습니다 (실제로는 아니지만 ...). 따라서 http를 사용하라는 메시지가 표시되면 변경할 필요가 없습니다 .. 대부분의 사이트 동일하고 아마도 자신을 다시 라우팅해야하지만이 추가 검사는 용도가 있습니다 (확실히 말하면 사용자가 사이트 정보를 입력하고 서버 측에서 확인하려는 프로젝트에서 말했듯이)