인터넷 기술의 지속적인 발전으로 인해 당사 웹사이트의 프런트엔드와 백엔드가 점점 더 복잡해지고 있습니다. 이 과정에서 많은 문제가 발생할 수 있습니다. 예를 들어, PHP를 사용하여 웹사이트에 접속할 때 포트 번호를 취소하려고 하는데, 이는 번거로운 문제가 될 것입니다. 하지만 걱정하지 마세요. 이 문제에 대한 해결책이 있습니다.
먼저 포트 번호의 역할을 이해해 봅시다. 포트 번호는 TCP/IP 프로토콜에서 한 쌍의 통신 세트로 형성된 엔드포인트 식별자이며 프로세스나 애플리케이션에서 특정 서비스를 식별하는 데 사용됩니다. 포트 번호는 일반적으로 0~65535 범위의 16비트 정수입니다.
브라우저에 URL을 입력하면 기본적으로 포트 80이 사용됩니다. 예를 들어, http://www.test.com을 입력하면 브라우저는 기본적으로 포트 80을 사용하고 http://www.test.com:80에 직접 액세스합니다. 모든 웹사이트에는 기본 포트 번호가 있습니다. 일반적으로 HTTP 프로토콜은 포트 80을 사용하고 HTTPS 프로토콜은 포트 443을 사용합니다.
PHP 프로그램에서 cURL을 사용하여 웹 사이트에 액세스하려고 하는데 웹 사이트가 비표준 포트 번호를 사용하는 경우(예: GitHub에 액세스할 때 비표준 포트 번호가 443인 경우) 설정해야 합니다. PHP의 포트 번호를 443으로 변경합니다. 그렇지 않으면 액세스가 기본 포트인 포트 80으로 리디렉션됩니다.
그렇다면 PHP에서 포트 번호를 취소하는 방법은 무엇일까요? 다음은 몇 가지 가능한 해결 방법입니다.
cURL을 사용하여 웹 사이트에 액세스할 때 일반적으로 코드의 URL을 사용합니다. 예:
$url = "https://github.com"; $ch = curl_init($url);
포트 번호를 취소하려면 gethostbyname 함수를 사용하여 다음을 수행할 수 있습니다. URL을 IP 주소로 변환 :
$url = "https://github.com"; $ip = gethostbyname(parse_url($url, PHP_URL_HOST)); $ch = curl_init("https://$ip");
gethostbyname 함수를 사용하여 URL을 IP 주소로 변환하면 포트 번호가 취소됩니다. 그러나 IPv6 주소를 사용하는 경우 등 일부 환경에서는 이 기능이 실패할 수 있습니다.
stream_context_create 함수를 통해 PHP 프로그램에서 컨텍스트 매개변수를 설정할 수 있습니다. 컨텍스트 매개변수를 수정하여 포트 번호를 취소할 수 있습니다.
다음은 샘플 코드입니다.
$url = "https://github.com"; $options = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true, 'peer_name' => parse_url($url, PHP_URL_HOST), 'peer' => parse_url($url, PHP_URL_HOST) . ':443' ) ); $context = stream_context_create($options); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' )); curl_setopt($ch, CURLOPT_TIMEOUT_MS, 2000); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 2000); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'w')); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $response = curl_exec($ch);
stream_context_create 함수를 사용하여 컨텍스트 매개변수를 생성하고, 피어 매개변수를 웹사이트의 호스트 이름과 포트 번호로 설정한 후 포트 번호를 취소합니다.
PHP에서 포트 번호를 취소하는 방법은 여러 가지가 있습니다. 다음은 일반적인 방법 두 가지입니다. 실제 사용에서는 특정 상황에 따라 적절한 솔루션을 선택할 수 있습니다.
cURL을 사용하여 웹사이트에 액세스할 때 보안을 보장하려면 verify_peer 및 verify_peer_name 매개변수를 설정하는 것이 좋습니다. 이전 버전의 PHP를 사용하는 경우 더 나은 보안과 안정성을 위해 PHP 버전을 업그레이드하는 것이 좋습니다.
위 내용은 PHP에서 포트 번호를 취소하는 방법(솔루션 분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!