프록시를 테스트하고 사이트를 동시에 스크랩할 수 있는 도구를 찾고 있다면 제대로 찾아오셨습니다. cURL은 프록시를 테스트하고 몇 가지 기본적인 웹 스크래핑을 수행할 수 있는 명령줄 도구입니다. 직관적이고 배우기 쉬운 cURL은 무엇보다도 요청 보내기, 쿠키 추가, 디버그, 프록시 연결 등을 수행할 수 있습니다.

이 단계별 가이드에서는 cURL이 무엇인지, 다양한 명령을 사용하는 방법, 간단한 웹 스크래핑에 사용하는 방법, 프록시 서버에서 cURL을 사용하는 방법을 알려줍니다. 가이드가 다소 복잡해질 수 있으므로 읽기를 시작하기 전에 프록시가 무엇인지 기본적으로 이해하고 있는지 확인하세요. 일부 웹 스크래핑 기본 사항을 아는 것도 도움이 될 것입니다.

목차

cURL이란 무엇입니까?

"클라이언트 URL"의 약자인 cURL은 인터넷을 통한 데이터 전송을 용이하게 하는 명령줄 도구입니다. 여기에는 명령줄 컬.exe와 크로스 플랫폼 라이브러리가 포함되어 있습니다. libcurl, 서버 간 데이터 교환이 가능합니다.

인터넷 프로토콜을 활용하는 다양한 최신 운영 체제와 호환되는 cURL은 노트북에서 자동차에 이르는 다양한 장치에서 작동합니다. 다음과 같은 다양한 인터넷 프로토콜을 지원합니다.

  • DICT
  • 파일
  • FTP
  • FTPS
  • 부지런한 사람
  • HTTP
  • HTTPS
  • IMAP
  • IMAPS
  • LDAP
  • LDAPS
  • MQTT
  • POP3
  • POP3S
  • RTSP
  • SCP
  • SFTP
  • 중소기업
  • SMBS
  • SMTP
  • SMTPS
  • 텔넷
  • TFTP

상당한 커뮤니티에서 오픈 소스 Linux 소프트웨어 성능 테스트 도구인 컬로더(curl-loader)를 포함하여 다양한 cURL용 도구를 개발했습니다. Curl-loader는 수많은 FTP/FTPS 및 HTTP/HTTPS 클라이언트의 애플리케이션 동작을 에뮬레이트할 수 있습니다. 단일 컬 로더 프로세스는 2,500~100,000개의 가상 클라이언트를 지원할 수 있으며 각 클라이언트는 고유한 소스 IP 주소를 갖습니다.

cURL의 기원

cURL의 역사는 명령줄 도구가 널리 사용되던 1990년대로 거슬러 올라갑니다. 1996년 스웨덴 개발자 다니엘 스텐버그 채팅 참가자의 통화를 변환하기 위한 IRC(인터넷 릴레이 채팅) 룸 스크립트 작업을 시작했습니다. 이로 인해 그는 서버를 통해 데이터를 전송하는 데 널리 사용되는 HTTP 방법인 httpget이라는 도구에 기여하게 되었습니다. Stenberg의 실험 결과 "단일 C 파일의 300줄 미만"으로 구성된 httpget 0.1이 탄생했습니다.

몇 달 후 FTP(파일 전송 프로토콜)가 등장하면서 Stenberg는 FTP 지원을 자신의 도구에 통합하고 이름을 urlget 2.0으로 바꾸게 되었습니다. 1998년 3월 30일에 그는 FTP 업로드 지원을 추가하고 도구 이름을 다시 한 번 cURL 3.0으로 변경했습니다.

cURL은 큰 잠재력을 갖고 있었지만 처음에는 거의 주목을 받지 못했습니다. 1998년 15번의 업데이트와 재출시 이후 cURL은 Stenberg 사이트에서 300회 이상 다운로드되었습니다. 그해 후반에 Red Hat Linux는 cURL을 채택했고, 1999년에는 Debian, 2001년 8월에는 Mac OS X 10.1이 채택되었습니다. 2001년부터 cURL은 Windows 10, iOS 및 Android 장치를 포함하여 거의 모든 인터넷 연결 가능 소프트웨어의 기본 기능이 되었습니다. Sony PS5, Nintendo Switch, Xbox, 심지어 자동차까지.

왜 cURL을 사용하나요?

cURL은 복잡한 작업을 효과적으로 처리할 수 있는 능력으로 인해 개발자들 사이에서 인기 있는 선택입니다. 다재다능함, 스크립팅 가능성 및 포함된 라이브러리를 통해 사용자 정의 HTTP 구문 분석 및 네트워킹 코드를 작성할 필요 없이 다른 프로그램과 원활하게 통합할 수 있습니다.

cURL은 다양한 기능을 제공합니다. 이익, 와 같은:

  1. 엔드포인트 테스트 및 디버깅 기능
  2. 전송 및 수신된 데이터에 대한 자세한 통찰력
  3. 포괄적인 오류 로깅
  4. 광범위한 프로토콜 지원
  5. http2, Metalink, gzip, 자동 압축 풀기 및 콘텐츠 인코딩과의 호환성
  6. FTP 업로드, 쿠키, 사용자 인증, 프록시 지원, SSL 연결 등과 같은 고급 기능
  7. 기본 프로토콜이 실패하면 자동 프로토콜 전환
  8. 프로토콜 종속 URL 구문
  9. 속도 제한 기능
  10. 괄호를 사용하여 URL 부분 또는 여러 URL을 지정하는 기능(예: https://google.{one, two, three}.com)
  11. 명령줄을 통해 원하는 수의 URL을 지정하는 옵션

또한 개발자는 cURL의 기본 SSL 인증서 확인 및 HTTPS 지원을 높이 평가합니다. cURL은 HTTPS를 통해 서버에 연결할 때 서버의 인증서를 획득하고 이를 CA 인증서와 비교하여 원격 서버의 신뢰성을 보장합니다.

cURL 설치 방법

컴퓨터에 cURL을 설치하는 방법을 살펴보겠습니다.

맥 OS

cURL은 운영 체제에 이미 통합되어 있으므로 macOS에 설치할 필요가 없습니다. 터미널 애플리케이션에서 기본적으로 사용할 수 있습니다.

윈도우

Windows 10부터 운영 체제에는 cURL 복사본이 포함됩니다. 그러나 cURL 명령은 PowerShell 호출-WebRequest 명령. 결과적으로 Windows 터미널에서 cURL 명령을 실행하면 백그라운드에서 Invoke-Request가 시작됩니다. 대신 cURL을 사용하려면 'curl'을 'curl.exe'로 바꾸면 PowerShell이 Invoke-Request 대신 cURL을 실행합니다.

예를 들어 Windows 시스템에 설치된 cURL의 현재 버전을 확인하려면 터미널에 다음 명령을 입력합니다.

curl.exe --version

출력은 다음과 유사해야 합니다.

curl 7.83.1 (Windows) libcurl/7.83.1 Schannel 

Release-Date: 2022-05-13 

Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp 

Features: AsynchDNS HSTS IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI UnixSockets

cURL과 Windows에 대해 자세히 알아보려면 이 동영상을 시청하는 것이 좋습니다. cURL이 무엇인지, Windows에서 실행하는 방법, cURL을 사용하여 API 요청 GET, POST, PUT, DELETE를 실행하는 방법에 대해 알려드립니다.

리눅스

Linux 사용자의 경우 cURL 설치 프로세스는 특정 배포판에 따라 다릅니다. Ubuntu 및 Fedora와 같은 인기 배포판에는 cURL이 사전 설치되어 있으므로 터미널에서 직접 사용할 수 있습니다.

기본적으로 cURL이 포함되지 않은 배포판의 경우 배포판의 패키지 관리자를 사용하여 설치할 수 있습니다. 예를 들어 Debian 기반 운영 체제에서는 다음 명령을 사용하여 cURL을 설치합니다.

sudo apt-get install curl

cURL 사용 방법

cURL이 장치에 설치되어 있는지 확인하십시오. cURL을 사용하기 전에 시스템에 cURL이 설치되어 있는지 확인하세요. 그렇지 않은 경우 cURL 웹사이트에서 다운로드하세요.

A. 장치에 cURL 설치 확인

cURL이 시스템에 설치되어 있는지 확인하려면 다음 단계를 따르세요.

  1. Windows PC 또는 MacBook에서 명령줄 인터페이스 또는 PowerShell 터미널을 엽니다.
  2. 유형 'curl --version'
  3. 엔터 키를 치시오.

cURL이 장치에 설치되어 있으면 다음과 유사한 메시지가 표시됩니다.

curl --version 

curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL 

Release-Date: 2017-11-14, security patched: 2020-11-05 

Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp 

Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL

또는

curl --version 

curl 7.31.0 (x86_64-apple-darwin12.4.0) libcurl/7.31.0 OpenSSL/0.9.8x zlib/1.2.5 

Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 

Features: IPv6 Largefile NTLM NTLM_WB SSL libz

다른 메시지가 표시되면 장치에 cURL이 설치되지 않았으므로 설치해야 함을 나타냅니다.

B. 사용할 적절한 cURL 구문 결정

기본적으로 cURL은 다음 구문과 함께 HTTP 프로토콜을 사용합니다. cURL [옵션] [URL]

cURL은 여러 프로토콜을 지원하므로 각 프로토콜마다 구문이 약간 다를 수 있습니다. 다음은 다양한 네트워크 프로토콜에 대한 cURL 명령의 몇 가지 예입니다.

  • 파일 전송 프로토콜(FTP): cURL -T “선택한 파일” “ftp://[대상 대상]”
  • 단순 메일 전송 프로토콜(SMTP): cURL smtp://[smtp-서버] –mail-from [발신자] –mail-rcpt [수신자] –upload-file [메일 내용 파일]
  • 사전 네트워크 프로토콜 [DICT]: cURL “dict://dict.org/d:hi”

cURL 경험을 최적화하려면 어떤 네트워크 프로토콜을 사용할지 아는 것이 중요합니다.

C. 목표에 적합한 cURL 구문을 사용하세요.

cURL을 사용하면 파일 다운로드 및 업로드, 사용자 인증 처리 등 다양한 작업을 수행할 수 있습니다. 각 작업에는 주로 관련된 특정 매개변수 및 네트워크 프로토콜로 인해 서로 다른 cURL 구문이 필요합니다.

다음은 몇 가지 일반적인 작업과 해당 cURL 명령입니다.

  1. 파일을 다운로드하려면: 컬 -o [파일 이름] [URL]
  2. FTP 프로토콜을 사용하여 파일을 업로드하려면: 컬 -u [사용자 이름:비밀번호] -T [로컬 파일 경로] ftp://[URL]
  3. HTTP 헤더를 요청하려면 다음 안내를 따르세요. 컬 -I [URL]

가벼운 스크래핑에 cURL을 사용하는 방법

cURL은 PHP와 같은 프로그래밍 언어와 함께 가벼운 웹 스크래핑에 사용할 수 있습니다.

스크래핑을 시작하기 전에 대상 웹사이트의 robots.txt 파일을 검토하세요. 비논리적으로 보이더라도 규칙을 준수하세요. 웹사이트 소유자는 매개변수와 제한사항을 설정할 권리가 있기 때문입니다. 웹 크롤링이 표준 관행으로 간주될 때 robots.txt 파일을 준수하면 법적 문제가 발생할 수 있습니다.

이를 염두에 두고 가벼운 웹 스크래핑을 위해 cURL을 사용하는 방법에 대한 가이드가 있습니다.

스크래핑을 시작하려면 다음 단계를 따르세요.

  1. PHP와 같은 스크래핑을 위한 프로그래밍 언어를 선택하세요. 이 튜토리얼에서는 PHP를 사용합니다.
  2. 새 PHP 파일을 만듭니다.
  3. cur_init를 사용하여 cURL 핸들을 초기화합니다. $curl = curl_init
  4. CURLOPT_RETURNTRANSFER를 TRUE로 설정하면 전송 페이지를 문자열로 반환합니다. 이 명령은 기본적으로 전체 페이지를 표시하는 대신 스크랩된 페이지를 변수로 저장하도록 cURL에 지시합니다. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  5. 요청을 시작하고 오류 검사를 수행합니다. $page = curl_exec($curl); if(curl_errno($curl)) // check for execution errors { echo 'Scraper error: ' . curl_error($curl); exit; }
  6. 연결을 닫습니다. curl_close($curl);

정보의 특정 부분만 추출하려면 id=”case_textlist” 아래에 추출하려는 내용을 지정해야 합니다. 기본적으로 cURL은 전체 페이지를 추출합니다.

$regex = '<div id="case_textlist">(.*?)</div>/s';

if (preg_match($regex, $page, $list)) echo $list[0]; else echo "Not found";

PHP에서 프록시 서버를 사용하여 웹사이트를 구문 분석하려면 cURL 라이브러리를 사용할 수 있습니다. 다음은 프록시 서버를 사용하여 웹페이지를 가져오는 PHP 스크립트의 예입니다.

PHP 코드:

<?php
// Set the URL to fetch
$url = "http://www.example.com";

// Set the proxy server and port
$proxy = "proxy.example.com:8080";

// Create a new cURL resource
$ch = curl_init();

// Set the cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Fetch the URL and output the response
$response = curl_exec($ch);
echo $response;

// Close the cURL resource
curl_close($ch);
?>

위 스크립트에서 $url 변수를 구문 분석하려는 웹사이트의 URL로 변경하고, $proxy 변수를 사용하려는 프록시 서버의 주소와 포트로 변경할 수 있습니다. URL, 프록시 서버 등의 cURL 옵션을 설정하고, 응답을 직접 출력하는 대신 문자열로 반환하는 데는 URL_setopt() 함수가 사용됩니다. 마지막으로, URL을 가져오는 데는 URL_exec() 함수가 사용되며 에코와 함께 응답이 출력됩니다. cURL 리소스를 닫기 위해 컬_close() 함수가 호출됩니다.

아래 동영상에서는 cURL을 사용하여 웹사이트의 URL을 로드하고 이를 정규식과 일치시켜 프록시 스크래퍼를 만드는 방법을 배우게 됩니다.

고급 스크래핑에 cURL을 사용하는 방법

웹 스크래핑 세션을 최적화하는 데 도움이 될 수 있는 몇 가지 세련된 cUrl 구성은 다음과 같습니다.

소제목: 사용자 에이전트 통합

cURL을 사용하여 링크를 다운로드하거나 스크랩할 때 웹사이트에 대해 cURL을 식별합니다. 어떤 경우에는 특정 웹사이트가 cUrl을 봇으로 인식하여 차단할 수 있으므로 이를 원하지 않을 수도 있습니다.

이를 방지하려면 -A 또는 –user-agent 옵션을 사용하여 user-agent를 포함하십시오. 이 예에서는 Windows 10 사용자 에이전트에서 Firefox 65를 활용했습니다.

curl -x https://fineproxy.de/ -v -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

또는 -H 옵션을 사용하여 헤더 내에서 사용자 에이전트를 보낼 수 있습니다.

curl -x https://fineproxy.de/ -v -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0"

소제목: 헤더 구성

웹사이트를 스크랩할 때 봇으로 인식되지 않는 것이 중요합니다. 현재 많은 웹사이트에서는 봇이 서버를 압도하고 인간 사용자에 대한 서비스를 손상시킬 수 있기 때문에 봇이 데이터를 추출하는 것을 차단합니다.

이를 달성하려면 cURL을 사용하여 적절한 헤더를 보내야 합니다.

먼저, 마우스 오른쪽 버튼을 클릭하고 "검사"를 선택하여 일반적으로 대상 웹사이트에 보내는 헤더를 결정합니다. 다음으로 '네트워크' 탭으로 이동합니다. 대상 사이트를 새로 고치면 사이트가 로드되는 동안 이루어진 요청이 표시됩니다. 요청을 더 자세히 조사하려면 해당 요청을 마우스 오른쪽 버튼으로 클릭하고 cUrl 명령줄로 복사할 수도 있습니다.

그런 다음 -H 또는 –header 옵션을 사용하여 cUrl에서 헤더를 구성합니다. 예를 들어, 대상 사이트에 "Accept" 헤더를 보내는 방법은 다음과 같습니다.

curl -x https://fineproxy.de/ -v -H "Accept: text/html"

프록시 서버에서 cURL을 사용하는 방법

프록시와 함께 cURL을 활용하면 사이트 금지 및 차단을 방지하기 위해 프록시가 필요한 웹 스크래핑과 같은 다양한 사용 사례가 가능해집니다. 이 가이드에서는 cURL을 사용하여 프록시 서버를 통해 데이터를 보내는 방법을 알아봅니다.

프록시와 함께 cURL을 사용하려면 다음 단계를 따르세요.

1. 프록시 서버 설정

먼저, 프록시 공급자가 제공한 지침에 따라 프록시를 설정하세요. 프록시가 올바르게 설정되었는지 확인하려면 터미널에 다음 명령을 입력하십시오.

curl https://httpbin.org/ip 

이 명령은 장치의 IP 주소를 반환합니다. 값이 장치의 원래 IP 주소와 일치하면 프록시 서버가 제대로 설정되지 않은 것입니다. 일치하지 않으면 프록시 서버가 올바르게 구성된 것입니다.

2. cURL 명령과 작동하도록 프록시 구성

cURL과 함께 사용할 프록시를 구성하는 방법에는 세 가지가 있습니다.

A. 구성 파일(.curlrc) 사용

구성 파일은 원하는 설정이 포함된 텍스트 파일로, cURL 명령을 실행할 때 쉽게 액세스할 수 있도록 시스템 디렉터리에 .curlrc 파일 형식으로 저장됩니다.

프록시 구성 파일에는 다음 형식의 데이터가 포함됩니다.

proxy = "[protocol://][host][:port]"

여러 구성 설정을 파일에 저장하고 필요에 따라 활성화할 수 있습니다. cURL 명령을 실행하기 전에 파일을 열면 실행하는 모든 cURL 명령은 구성 파일의 프록시 설정을 사용합니다.

구성 파일을 생성하는 것은 프록시와 함께 cURL을 반복적으로 사용하고 대량의 데이터를 추출하는 사람들에게 가장 좋은 방법입니다. 매번 cURL용 프록시를 구성할 필요가 없으므로 시간이 절약됩니다.

B. 명령줄 인수 사용

이 방법은 직접 cURL 프록시 구문만 필요하므로 cURL 명령과 함께 일회성 프록시를 사용하는 데 적합합니다. 구문은 다음과 같습니다.

curl -x "[protocol://][host][:port]" [URL] [options]

cURL의 기본 프로토콜은 HTTP이므로 특히 다른 네트워크 프로토콜을 사용하는 경우 프로토콜 및 프록시 서버 세부 정보를 지정해야 합니다.

C. 환경 변수 사용

세 번째 방법은 시스템 수준에서 실행되는 프로세스에 영향을 미치는 환경 변수로 알려진 http_proxy 및 https_proxy 변수를 설정하는 것입니다. 이러한 명령은 운영 체제의 일부이며 다른 매개변수를 재정의할 수 있습니다.

환경 변수를 통한 cURL 프록시 설정 구문은 다음과 같습니다.

export http_proxy="[protocol://][host][:port]" 

export https_proxy="[protocol://][host][:port]"

이러한 명령을 실행한 후 실행하는 모든 cURL 명령은 자동으로 프록시 서버를 통과합니다. 이제 이 방법에 대해 조금 더 이야기해 보겠습니다.

환경 변수를 통해 프록시와 함께 cURL 사용

환경 변수는 하나 이상의 소프트웨어 프로그램에서 사용할 수 있는 편집 가능한 값을 메모리에 저장하는 개체와 유사합니다. 이 경우 프록시 정보가 포함된 http_proxy 또는 https_proxy라는 변수를 cURL에 전달할 수 있으며 명령을 실행할 때마다 이를 지정할 필요가 없습니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.

$ export http_proxy="http://fineproxy.proxy_type=datacenter.device=desktop:<YOUR-API-KEY>@proxy.fineproxy.de:80"

cURL이 이를 이해하려면 변수 이름을 http_proxy 또는 https_proxy로 지정해야 합니다. 그게 다야. 더 이상 명령을 실행할 때마다 자격 증명을 제공할 필요가 없으며 이제 다음과 같이 간단하게 cURL을 실행할 수 있습니다.

$ curl http://httpbin.org/get

그러면 다음과 같은 출력이 제공됩니다.

{ "args": {}, "headers": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Host": "httpbin.org", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", "X-Amzn-Trace-Id": "Root=1-633bf912-66ace1104304ddaf5ea8ac65" }, "origin": "132.255.134.104", "url": "http://httpbin.org/get" }

보시다시피, IP 주소는 프록시의 주소이며, 이는 프록시 설정 작업을 훌륭하게 수행했음을 확인합니다. 이 시점에서는 cURL이 프록시 정보를 처리하므로 프록시 정보를 지정하지 않고도 cURL 명령을 실행할 수 있습니다.

7가지 중요한 요령과 팁

이 섹션에서는 특정 요구 사항에 맞게 cUrl을 사용하여 프록시를 사용하기 위한 몇 가지 흥미로운 요령과 귀중한 팁을 제시합니다.

팁 1: cUrl 전용 프록시 설정

cUrl 기반 작업에만 프록시를 지정하려면 다음 명령 순서를 사용하십시오.

  1. cd ~ $ nano .curlrc
  2. 파일에 다음 줄을 추가합니다.
proxy=http://user:pwd@IP_address_or_FQDN:port

예:

proxy=http://testuser:[email protected]:3128
  1. 평소대로 cUrl을 실행합니다:
$ curl "https://www.reddit.com"

팁 2: 프록시 활성화 및 비활성화

이를 수행하려면 편집기에서 .bashrc 파일에 별칭을 만듭니다.

$ cd ~
alias proxyon="export http_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port';export https_proxy='http://user:pwd@Proxy_IP_or_FQDN:Port'"
alias proxyoff="unset http_proxy;unset https_proxy"

예:

alias proxyon="export http_proxy='http://testuser:[email protected]:3128';export https_proxy='http://testuser:[email protected]:3128'"

터미널에서 alias 명령을 실행하여 별칭 설정을 빠르게 확인하세요. .bashrc를 저장하고 다음을 사용하여 셸을 업데이트합니다.

$ ~/.bashrc

팁 3: SSL 인증서 오류 우회

cUrl에 SSL 인증서 오류가 발생하면 해당 요청을 차단합니다. 특히 일회성 상황에서 디버깅을 위해 SSL 인증서 오류를 '건너뛰려면' cUrl 명령줄에 -k 또는 –insecure를 추가하세요.

curl -x "[protocol://][host][:port]" -k [URL]

팁 4: 요청에 대한 추가 정보 얻기

요청이 예상대로 작동하지 않으면 요청 경로, 헤더 및 다양한 오류를 검사할 수 있습니다. 요청을 조사하려면 cUrl 뒤의 요청에 -v(–verbose)를 추가하세요. 그러면 발생한 모든 요청 헤더와 연결이 출력됩니다.

팁 5: 단일 요청에 대해 프록시 무시하기

특정 요청에 대해 프록시를 재정의하려면 다음 명령줄을 사용하세요.

curl --proxy "http://user:pwd@Proxy_FQDN_or_IPAddress" "https://reddit.com"

또는 다음을 사용하십시오:

$ curl --noproxy "*" https://www.reddit.com

프록시를 완전히 우회합니다. -v 옵션을 사용하면 프록시를 사용하지 않고 Reddit으로 직접 연결되는 것을 보여줍니다.

팁 6: SOCK 프록시 활용

모든 유형의 SOCK 프록시(4/4a/5/5h)를 사용하려는 경우 관련 섹션을 적절한 SOCKS 유형으로 바꾸는 것을 제외하고 코드 구조는 이전과 동일하게 유지됩니다.

curl -x "socks5://user:pwd@Proxy_IP_or_FQDN:Port" https://www.reddit.com

예:

$ curl -x "socks5://testuser:[email protected]:3128" https://www.reddit.com

전문가 팁 7: 프로토콜을 지정하지 않으면 cURL의 기본값은 SOCKS4입니다!

컬 대 Wget

Wget은 HTTP, HTTPS, FTP와 같은 표준 네트워크 프로토콜을 사용하여 파일을 전송할 수 있는 다양한 기능을 갖춘 명령줄 도구입니다. 이름은 WWW의 첫 글자와 'get'을 조합한 것으로 Wget이 주로 웹 데이터 교환을 위해 만들어졌음을 인정합니다.

Wget 명령의 표준 구문은 다음과 같습니다.

Wget [option] [URL]

Wget 명령은 cURL 명령과 비슷하며 비슷한 기능을 수행하지만 방식이 다릅니다.

cURL과 Wget의 5가지 유사점

  • 둘 다 FTP, HTTP 또는 HTTPS에서 파일을 다운로드하고 HTTP POST 요청을 지원할 수 있는 명령줄 유틸리티입니다.
  • 둘 다 오픈 소스 소프트웨어입니다.
  • cURL과 Wget은 모두 같은 해인 1996년에 소개되었습니다.
  • 둘 다 유사한 라이센스인 GPLv3 라이센스를 가지고 있습니다.
  • 둘 다 여러 운영 체제에서 작동하는 경량 소프트웨어 패키지입니다.

cURL과 Wget의 10가지 차이점

cURL과 Wget의 주요 차이점은 이러한 유틸리티가 요청을 실행하는 방식과 목표를 달성하기 위해 사용하는 리소스에 있습니다. 다음 표에서는 이러한 차이점을 강조합니다.

곱슬 곱슬하다 Wget
1. 도서관 libcURL 라이브러리에서 지원됨 라이브러리가 필요하지 않습니다
2. 운영 재귀적인 다운로드 없이 단일 작업으로 데이터를 전송합니다. 재귀적 다운로드 지원
3. 프로토콜 다양한 네트워크 프로토콜 지원 HTTP(S) 및 FTP만 지원
4. 다운로드 먼 URL을 로컬 파일로 다운로드하려면 -o 또는 -O가 필요합니다. 먼 URL을 다운로드하기 위해 -o 또는 -O가 필요하지 않습니다.
5. 업로드 양방향으로 데이터 업로드 및 전송 가능 간단한 HTTP POST 요청만 지원
6. 프록시 HTTPS, SOCKS 4, SOCKS 5 프록시 유형 지원 HTTP 프록시는 지원하지만 SOCKS 프록시 유형은 지원하지 않습니다.
7. 인증 HTTP 프록시에 대한 추가 인증 기술 지원 HTTP 프록시에 대한 기본 인증 프로세스만 지원
8. 이식성 휴대성이 향상되었으며 Windows 및 macOS에 사전 설치되어 제공됩니다. 휴대성이 낮고 Windows 및 macOS에 사전 설치되지 않음
9. 특징 모든 기능을 직접 지정해야 함 기본적으로 쿠키 및 타임스탬프와 같은 기능이 활성화되어 있습니다.
10. 요구사항 gnulib 패키지 또는 C99 컴파일러가 필요하지 않습니다. gnulib 및 C99 컴파일러가 필요합니다.cURL 또는 Wget을 사용해야 하는 경우

대부분의 상황에서는 cURL이 최선의 선택이지만 Wget이 더 적합한 경우도 있습니다. 이러한 명령줄 유틸리티 중 어떤 것이 작업을 더 빠르고 효과적으로 완료하는 데 도움이 되는지 결정해야 합니다. 예를 들어:

  • Wget은 불안정한 연결에 대한 다운로드 재시도를 cURL보다 더 잘 처리합니다.
  • Wget은 cURL에 부족한 결정적인 재귀 다운로드 및 대역폭 제어와 같은 다운로드 기능을 제공합니다.

따라서 이러한 상황에서는 Wget 명령을 사용하는 것이 가장 좋습니다. 또한 HTTP/HTTPS 및 FTP 이외의 네트워크 프로토콜을 사용하는 경우 cURL이 더 나은 옵션입니다. cURL을 사용할지 Wget을 사용할지 선택하는 것은 항상 수행 중인 작업의 특성에 따라 달라집니다.

결론

cURL 명령은 네트워크를 통해 대량의 데이터를 전송해야 하는 모든 사람을 위한 강력하고 다양한 도구입니다. 프록시와 함께 cURL을 사용하는 것은 사실상 모든 작업을 수행할 수 있는 바람직한 업그레이드입니다. 이 조합은 cURL 명령의 다양성을 잃지 않으면서 데이터 개인정보 보호와 보안을 보장합니다. Wget은 방대하지만 사용자 친화적인 인터페이스와 강력한 기능으로 인해 cURL이 선호됩니다.

지금까지 논의한 내용을 바탕으로 cURL의 멋진 효과를 시험해 보는 것을 고려해 볼 수 있습니다. 아직 고려하지 않았다면 고려해 보아야 합니다. 곱슬머리를 유지하세요(말장난 의도).

알렉산더 슈미트

Alexander Schmidt는 더 열심히 일하는 것이 아니라 더 똑똑하게 일하는 것을 믿는 소프트웨어 엔지니어입니다. 분석 및 연구를 위한 자동화 및 웹 데이터 추출을 다루는 12년의 경험을 바탕으로 그는 다른 사람들이 프록시 솔루션의 가치와 성능을 극대화할 수 있도록 재미있고 읽기 쉬운 방식으로 전달되는 실용적인 팁과 귀중한 통찰력을 기업에 제공합니다. Alexander가 설정을 조정하거나 중소기업을 위한 컨설팅을 하지 않을 때는 최신 기술 뉴스와 AI 발전에 대해 관심을 갖고 있는 것을 볼 수 있습니다.

프록시 선택 및 구매

유형, 위치, 수량을 선택하면 가격을 즉시 확인할 수 있습니다.

프록시 선택 및 구매