Linux 에서 curl 을 사용하여 서버 연결 테스트하는 방법

LinuxBeginner
지금 연습하기

소개

Linux 시스템 관리에서 서버 연결 상태를 확인하는 것은 기본적인 기술입니다. 이 튜토리얼에서는 cURL 도구를 사용하여 서버 연결 상태를 테스트하는 과정을 안내합니다. cURL (Client URL) 은 다양한 네트워크 프로토콜을 통해 데이터를 전송할 수 있는 명령줄 유틸리티로, 네트워크 진단 및 문제 해결에 필수적인 도구입니다.

이 튜토리얼을 마치면 cURL 을 사용하여 서버 가용성을 확인하고, 응답 시간을 확인하며, HTTP 상태 코드를 분석하고, 연결 문제를 해결하는 방법을 이해하게 될 것입니다. 이러한 기술은 웹 서버, API 또는 Linux 환경의 모든 네트워크 서비스를 관리하는 데 유용합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 82%입니다.학습자들로부터 98%의 긍정적인 리뷰율을 받았습니다.

cURL 기본 이해

cURL 은 HTTP, HTTPS, FTP 등 다양한 프로토콜을 사용하여 데이터를 전송할 수 있는 강력한 명령줄 도구입니다. 연결 테스트를 시작하기 전에 cURL 이 무엇인지, 그리고 기본적인 작업을 위해 어떻게 사용하는지 알아보겠습니다.

cURL 설치

cURL 유틸리티는 Ubuntu 22.04 환경을 포함한 대부분의 Linux 배포판에 미리 설치되어 있습니다. cURL 이 설치되었는지 확인하려면 터미널을 열고 다음 명령을 실행합니다.

curl --version

다음과 유사한 출력을 볼 수 있습니다.

curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.13
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd

이것은 cURL 이 설치되었음을 확인하고 지원되는 프로토콜 및 기능과 함께 버전을 보여줍니다.

기본 cURL 구문

cURL 사용에 대한 기본 구문은 다음과 같습니다.

curl [options] [URL]

웹사이트의 콘텐츠를 검색하기 위해 간단한 cURL 명령을 시도해 보겠습니다.

curl https://example.com

이 명령은 example.com 에 GET 요청을 보내고 HTML 응답을 터미널에 표시합니다. 다음과 유사한 HTML 코드를 볼 수 있습니다.

<!doctype html>
<html>
  <head>
    <title>Example Domain</title>
    <!-- More HTML content -->
  </head>
  <body>
    <div>
      <h1>Example Domain</h1>
      <p>This domain is for use in illustrative examples in documents...</p>
      <!-- More content -->
    </div>
  </body>
</html>

출력을 파일에 저장

터미널에 출력을 표시하는 대신 -o 또는 --output 옵션을 사용하여 파일에 저장할 수 있습니다.

curl -o example.html https://example.com

이 명령은 example.com 의 응답을 example.html이라는 파일에 저장합니다. 파일이 생성되었는지 확인하려면 다음을 실행합니다.

ls -l example.html

파일이 존재함을 확인하는 출력을 볼 수 있습니다.

-rw-rw-r-- 1 labex labex 1256 Mar 28 12:34 example.html

파일의 내용을 보려면 다음을 실행합니다.

cat example.html

이전에 터미널에 표시되었던 것과 동일한 HTML 콘텐츠를 볼 수 있습니다.

cURL 을 사용한 HTTP 메서드 이해

cURL 은 기본적으로 HTTP GET 메서드를 사용하지만, -X 옵션을 사용하여 다른 메서드를 지정할 수 있습니다. 일반적인 HTTP 메서드는 다음과 같습니다.

  • GET: 서버에서 데이터 검색
  • POST: 서버에 데이터 제출
  • PUT: 서버에서 기존 데이터 업데이트
  • DELETE: 서버에서 데이터 제거
  • HEAD: GET 과 유사하지만 헤더만 검색

이후 단계에서 이러한 다양한 메서드를 사용하여 서버 연결 및 기능을 테스트하는 방법을 살펴보겠습니다.

기본 서버 연결 테스트

cURL 의 기본 사항을 이해했으므로, 이를 사용하여 서버 연결 상태를 테스트해 보겠습니다. 서버가 정상적으로 작동하고 응답하는지 확인하는 능력은 시스템 관리자 및 개발자에게 중요한 기술입니다.

간단한 연결 테스트

가장 기본적인 연결 테스트는 서버에 요청을 보내고 응답하는지 확인하는 것입니다. Google 서버에 대한 연결 상태를 테스트해 보겠습니다.

curl -I https://www.google.com

-I 옵션 (또는 --head) 은 cURL 에 HEAD 요청을 보내도록 지시합니다. HEAD 요청은 본문 내용 없이 헤더만 검색합니다. 이는 빠른 연결 확인에 유용합니다. 다음과 유사한 출력을 볼 수 있습니다.

HTTP/2 200
content-type: text/html; charset=ISO-8859-1
date: Tue, 28 Mar 2023 12:34:56 GMT
server: gws
content-length: 219
x-xss-protection: 0
x-frame-options: SAMEORIGIN

HTTP/2 200은 성공적인 연결을 나타냅니다. 즉, 서버가 작동하고 응답하고 있습니다.

HTTP 상태 코드 확인

HTTP 상태 코드는 서버가 클라이언트 요청의 결과를 나타내기 위해 보내는 표준화된 응답입니다. 몇 가지 일반적인 상태 코드는 다음과 같습니다.

  • 200: OK - 요청이 성공했습니다.
  • 301/302: Redirect - 리소스가 이동했습니다.
  • 404: Not Found - 리소스가 존재하지 않습니다.
  • 500: Internal Server Error - 서버에서 오류가 발생했습니다.

존재하지 않는 URL 을 테스트하여 404 응답을 확인해 보겠습니다.

curl -I https://www.google.com/nonexistent-page

출력에는 404 상태 코드가 포함되어야 합니다.

HTTP/2 404
content-type: text/html; charset=UTF-8
date: Tue, 28 Mar 2023 12:35:01 GMT
server: gws
content-length: 1565
...

응답 시간 측정

서버가 응답하는 데 걸리는 시간을 측정하려면 형식 문자열과 함께 -w 옵션을 사용합니다.

curl -s -o /dev/null -w "Connect: %{time_connect}s\nTotal: %{time_total}s\n" https://www.google.com

이 명령은 다음과 같습니다.

  • -s: 사일런트 모드에서 작동합니다 (진행률 또는 오류 메시지 없음).
  • -o /dev/null: 출력을 /dev/null로 리디렉션합니다 (폐기).
  • -w "...": 타이밍 정보와 함께 형식이 지정된 출력을 표시합니다.

다음과 유사한 출력을 볼 수 있습니다.

Connect: 0.052s
Total: 0.157s

이는 연결을 설정하는 데 걸린 시간과 요청 완료에 걸린 총 시간을 알려줍니다.

도메인 이름 확인 테스트

때로는 연결 문제가 DNS 문제에서 비롯됩니다. 도메인 이름을 IP 주소로 확인할 수 있는지 테스트하려면 다음을 수행합니다.

curl -v https://www.example.com 2>&1 | grep "Trying"

이것은 -v (자세한 정보) 옵션을 사용하고 "Trying" 줄을 필터링합니다. 이 줄은 연결되는 IP 주소를 보여줍니다. 다음과 같은 출력을 볼 수 있습니다.

* Trying 93.184.216.34:443...

이는 도메인 이름이 IP 주소로 성공적으로 확인되었음을 확인합니다.

간단한 연결 테스트 스크립트 만들기

여러 사이트에 대한 연결 상태를 테스트하는 간단한 셸 스크립트를 만들어 보겠습니다. 텍스트 편집기를 엽니다.

nano connection_test.sh

다음 내용을 파일에 추가합니다.

#!/bin/bash

echo "Testing server connectivity..."

for site in google.com example.com github.com nonexistent-site.xyz; do
  echo -n "Testing $site: "

  ## Use curl with a 5-second timeout
  status_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 "https://$site" 2> /dev/null)

  if [ $? -eq 0 ] && [ "$status_code" -lt 400 ]; then
    echo "OK (Status: $status_code)"
  else
    echo "Failed (Status: $status_code)"
  fi
done

echo "Testing complete!"

Ctrl+O를 누른 다음 Enter를 누르고 Ctrl+X를 눌러 파일을 저장하고 종료합니다.

스크립트를 실행 가능하게 만듭니다.

chmod +x connection_test.sh

스크립트를 실행합니다.

./connection_test.sh

각 사이트의 연결 상태를 보여주는 출력을 볼 수 있습니다.

Testing server connectivity...
Testing google.com: OK (Status: 200)
Testing example.com: OK (Status: 200)
Testing github.com: OK (Status: 200)
Testing nonexistent-site.xyz: Failed (Status: 000)
Testing complete!

이 스크립트는 여러 서버에 대한 연결 상태를 한 번에 확인할 수 있는 빠른 방법을 제공합니다.

cURL 을 사용한 고급 연결 테스트

기본 연결 테스트를 이해했으므로, 자세한 문제 해결 및 테스트에 도움이 될 수 있는 cURL 의 더 고급 기능을 살펴보겠습니다.

자세한 디버깅을 위한 Verbose 모드 사용

Verbose 모드 (-v 옵션) 는 전체 요청 및 응답 프로세스를 보여주므로 연결 문제를 해결하는 데 매우 유용합니다.

curl -v https://example.com

출력은 DNS 확인, TLS 핸드셰이크, 요청 헤더, 응답 헤더 등을 보여주는 포괄적인 내용이 될 것입니다.

*   Trying 93.184.216.34:443...
* Connected to example.com (93.184.216.34) port 443 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: C=US; ST=California; L=Los Angeles; O=Internet Corporation for Assigned Names and Numbers; CN=www.example.org
*  start date: Nov 24 00:00:00 2022 GMT
*  expire date: Nov 24 23:59:59 2023 GMT
*  subjectAltName: host "example.com" matched cert's "example.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
*  SSL certificate verify ok.
* using HTTP/2
* h2 [:method: GET]
* h2 [:path: /]
* h2 [:scheme: https]
* h2 [:authority: example.com]
* h2 [user-agent: curl/7.81.0]
* h2 [accept: */*]
* Using Stream ID: 1
> GET / HTTP/2
> Host: example.com
> user-agent: curl/7.81.0
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 200
< age: 587269
< cache-control: max-age=604800
< content-type: text/html; charset=UTF-8
< date: Tue, 28 Mar 2023 12:40:01 GMT
< etag: "3147526947+ident"
< expires: Tue, 04 Apr 2023 12:40:01 GMT
< last-modified: Thu, 17 Oct 2019 07:18:26 GMT
< server: ECS (nyb/1D2B)
< vary: Accept-Encoding
< x-cache: HIT
< content-length: 1256
<
<!doctype html>
<html>
<head>
    <title>Example Domain</title>
    <!-- More HTML content -->
</head>
<body>
    <div>
        <h1>Example Domain</h1>
        <p>This domain is for use in illustrative examples in documents...</p>
        <!-- More content -->
    </div>
</body>
</html>
* Connection #0 to host example.com left intact

이 자세한 출력은 연결이 실패할 수 있는 정확한 위치를 식별하는 데 도움이 됩니다.

다른 HTTP 메서드 테스트

테스트 API 엔드포인트에 POST 요청을 테스트해 보겠습니다.

curl -X POST -d "name=test&email=test@example.com" https://httpbin.org/post

이 명령은 다음과 같습니다.

  • -X POST: POST 요청을 지정합니다.
  • -d "name=test&email=test@example.com": 요청에 양식 데이터를 보냅니다.

제출된 데이터를 보여주는 JSON 응답을 받게 됩니다.

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "email": "test@example.com",
    "name": "test"
  },
  "headers": {
    "Accept": "*/*",
    "Content-Length": "32",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.81.0",
    "X-Amzn-Trace-Id": "Root=1-642295b1-0d2340ef34f2e8ea6270241a"
  },
  "json": null,
  "origin": "198.51.100.42",
  "url": "https://httpbin.org/post"
}

사용자 정의 헤더로 테스트

많은 API 는 인증을 위해 또는 콘텐츠 유형을 지정하기 위해 특정 헤더가 필요합니다. 이를 테스트해 보겠습니다.

curl -H "User-Agent: MyCustomAgent" -H "Authorization: Bearer test-token" https://httpbin.org/headers

이 명령은 다음과 같습니다.

  • -H "User-Agent: MyCustomAgent": 사용자 정의 User-Agent 헤더를 설정합니다.
  • -H "Authorization: Bearer test-token": Authorization 헤더를 설정합니다.

응답은 요청에 전송된 헤더를 표시합니다.

{
  "headers": {
    "Accept": "*/*",
    "Authorization": "Bearer test-token",
    "Host": "httpbin.org",
    "User-Agent": "MyCustomAgent",
    "X-Amzn-Trace-Id": "Root=1-642295c3-73cac0a73b34b1c93a8ce520"
  }
}

다른 엔드포인트에 대한 응답 시간 테스트

다른 서버에 대한 응답 시간을 비교하는 스크립트를 만들어 보겠습니다.

nano response_time.sh

다음 내용을 추가합니다.

#!/bin/bash

echo "Testing response times..."

for site in google.com bing.com baidu.com duckduckgo.com yahoo.com; do
  echo -n "$site: "
  curl -s -o /dev/null -w "%{time_total}s" "https://$site"
  echo ""
done

echo "Testing complete!"

파일을 저장하고 실행 가능하게 만듭니다.

chmod +x response_time.sh

스크립트를 실행합니다.

./response_time.sh

출력은 각 사이트의 응답 시간을 표시합니다.

Testing response times...
google.com: 0.187s
bing.com: 0.232s
baidu.com: 0.412s
duckduckgo.com: 0.298s
yahoo.com: 0.342s
Testing complete!

이는 서로 다른 서버의 성능을 비교하거나 시간이 지남에 따라 서버의 성능을 모니터링하는 데 유용합니다.

특정 포트에 대한 TCP 연결 테스트

때로는 서버에서 특정 포트가 열려 있는지 테스트해야 합니다. cURL 도 이 용도로 사용할 수 있습니다.

curl -v telnet://example.com:80

포트가 열려 있으면 성공적인 연결 메시지가 표시됩니다.

* Trying 93.184.216.34:80...
* Connected to example.com (93.184.216.34) port 80 (#0)

Ctrl+C를 눌러 연결을 종료합니다.

마찬가지로 보안 연결을 테스트할 수 있습니다.

curl -v https://example.com:443

Verbose 출력은 연결이 성공했는지 또는 문제가 있었는지 보여줍니다.

포괄적인 서버 모니터링 도구 만들기

연결 테스트를 위한 다양한 cURL 기술을 배웠으므로, 이러한 기술을 결합한 보다 포괄적인 서버 모니터링 도구를 구축해 보겠습니다.

포괄적인 서버 모니터링 스크립트

새 스크립트 파일을 만듭니다.

nano server_monitor.sh

다음 내용을 추가합니다.

#!/bin/bash

## Server Monitoring Script
## This script checks the availability and performance of specified servers

## Define colors for output
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m' ## No Color

## Function to check server status
check_server() {
  local url=$1
  local timeout=5

  echo -e "\n${YELLOW}Testing $url:${NC}"

  ## Test connection and get status code
  status_code=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout $timeout "$url" 2> /dev/null)

  if [ "$status_code" -eq 200 ]; then
    echo -e "${GREEN}✓ Status: $status_code (OK)${NC}"
  elif [ "$status_code" -ge 100 ] && [ "$status_code" -lt 400 ]; then
    echo -e "${GREEN}✓ Status: $status_code (Success/Redirect)${NC}"
  elif [ "$status_code" -ge 400 ] && [ "$status_code" -lt 500 ]; then
    echo -e "${RED}✗ Status: $status_code (Client Error)${NC}"
  elif [ "$status_code" -ge 500 ]; then
    echo -e "${RED}✗ Status: $status_code (Server Error)${NC}"
  else
    echo -e "${RED}✗ Status: Connection failed${NC}"
  fi

  ## Measure response time if connection successful
  if [ "$status_code" -gt 0 ]; then
    response_time=$(curl -s -o /dev/null -w "%{time_total}" --connect-timeout $timeout "$url" 2> /dev/null)
    echo -e "• Response time: ${response_time}s"

    ## Get server headers
    echo "• Server headers:"
    curl -s -I --connect-timeout $timeout "$url" | grep -E 'Server:|Content-Type:|Date:' | sed 's/^/  /'
  fi
}

## Main function
main() {
  echo -e "${YELLOW}===== Server Connectivity Monitor =====${NC}"
  echo "Started at: $(date)"

  ## List of servers to monitor
  servers=(
    "https://www.google.com"
    "https://www.github.com"
    "https://www.example.com"
    "https://httpbin.org/status/404" ## This will return a 404 status
    "https://httpbin.org/status/500" ## This will return a 500 status
  )

  ## Check each server
  for server in "${servers[@]}"; do
    check_server "$server"
  done

  echo -e "\n${YELLOW}===== Monitoring Complete =====${NC}"
  echo "Finished at: $(date)"
}

## Run the main function
main

파일을 저장하고 실행 가능하게 만듭니다.

chmod +x server_monitor.sh

스크립트를 실행합니다.

./server_monitor.sh

출력은 각 서버에 대한 포괄적인 상태 개요를 제공합니다.

===== Server Connectivity Monitor =====
Started at: Tue Mar 28 13:15:01 UTC 2023

Testing https://www.google.com:
✓ Status: 200 (OK)
• Response time: 0.186s
• Server headers:
  Date: Tue, 28 Mar 2023 13:15:02 GMT
  Content-Type: text/html; charset=ISO-8859-1
  Server: gws

Testing https://www.github.com:
✓ Status: 200 (OK)
• Response time: 0.247s
• Server headers:
  Server: GitHub.com
  Date: Tue, 28 Mar 2023 13:15:02 GMT
  Content-Type: text/html; charset=utf-8

Testing https://www.example.com:
✓ Status: 200 (OK)
• Response time: 0.132s
• Server headers:
  Content-Type: text/html; charset=UTF-8
  Date: Tue, 28 Mar 2023 13:15:03 GMT
  Server: ECS (nyb/1D2B)

Testing https://httpbin.org/status/404:
✗ Status: 404 (Client Error)
• Response time: 0.189s
• Server headers:
  Date: Tue, 28 Mar 2023 13:15:03 GMT
  Content-Type: text/html; charset=utf-8
  Server: gunicorn/19.9.0

Testing https://httpbin.org/status/500:
✗ Status: 500 (Server Error)
• Response time: 0.192s
• Server headers:
  Date: Tue, 28 Mar 2023 13:15:03 GMT
  Content-Type: text/html; charset=utf-8
  Server: gunicorn/19.9.0

===== Monitoring Complete =====
Finished at: Tue Mar 28 13:15:04 UTC 2023

정기적인 연결 확인 예약

서버를 정기적으로 모니터링하려면 cron 작업을 설정할 수 있습니다. 실제 프로덕션 환경에서는 이 스크립트를 crontab 에 추가하여 정기적으로 실행할 수 있습니다. 데모 목적으로, 지정된 기간 동안 매분 모니터링을 실행하는 간단한 래퍼 스크립트를 만들어 보겠습니다.

nano scheduled_monitor.sh

다음 내용을 추가합니다.

#!/bin/bash

## Scheduled monitoring script
## This script runs the server_monitor.sh at regular intervals

## Check if duration parameter is provided
if [ $## -ne 1 ]; then
  echo "Usage: $0 <duration_in_minutes>"
  exit 1
fi

duration=$1
interval=60 ## seconds
iterations=$((duration * 60 / interval))

echo "Starting scheduled monitoring for $duration minutes..."
echo "Press Ctrl+C to stop monitoring"

for ((i = 1; i <= iterations; i++)); do
  echo -e "\n===== Run $i of $iterations ====="
  ./server_monitor.sh

  ## Don't sleep after the last iteration
  if [ $i -lt $iterations ]; then
    echo "Next check in $interval seconds..."
    sleep $interval
  fi
done

echo "Scheduled monitoring completed."

파일을 저장하고 실행 가능하게 만듭니다.

chmod +x scheduled_monitor.sh

2 분 동안 스크립트를 실행합니다 (필요에 따라 늘리거나 줄일 수 있습니다).

./scheduled_monitor.sh 2

이렇게 하면 2 분 동안 매분 서버 모니터링 스크립트가 실행됩니다.

Starting scheduled monitoring for 2 minutes...
Press Ctrl+C to stop monitoring

===== Run 1 of 2 =====
===== Server Connectivity Monitor =====
...
(monitoring output)
...
Next check in 60 seconds...
(waits for 60 seconds)

===== Run 2 of 2 =====
===== Server Connectivity Monitor =====
...
(monitoring output)
...
Scheduled monitoring completed.

프로덕션 환경에서는 일반적으로 cron 작업을 설정하지만, 이 스크립트는 이 랩 연습 중에 예약된 모니터링을 수행하는 간단한 방법을 제공합니다.

요약

이 랩에서는 Linux 환경에서 서버 연결 테스트를 위해 cURL 을 사용하는 방법을 살펴보았습니다. 기본 사항부터 시작하여 간단한 HTTP 요청을 보내고 응답을 파일에 저장하는 방법을 배웠습니다. 그런 다음 HTTP 상태 코드 확인, 응답 시간 측정, 자세한 디버깅을 위한 verbose 모드 사용을 포함한 보다 복잡한 작업으로 발전했습니다.

서버 모니터링 및 연결 테스트를 위한 cURL 의 강력함을 보여주는 몇 가지 실용적인 스크립트를 만들었습니다.

  1. 여러 서버에 대한 연결을 확인하는 기본 연결 테스트 스크립트
  2. 서버 성능을 측정하고 비교하기 위한 응답 시간 비교 스크립트
  3. 서버 상태, 응답 시간 및 헤더 정보에 대한 자세한 정보를 제공하는 포괄적인 서버 모니터링 도구
  4. 정기적인 연결 확인을 자동화하는 예약된 모니터링 스크립트

이러한 도구와 기술은 시스템 관리자, 개발자 및 네트워크 시스템으로 작업하는 모든 사람에게 매우 유용합니다. cURL 을 마스터함으로써 이제 Linux 환경에서 연결 문제를 진단하고 해결하기 위한 강력한 도구를 갖게 되었습니다.

Linux 시스템으로 계속 작업하면서 cURL 은 연결 테스트뿐만 아니라 API 와 상호 작용하고, 파일을 다운로드하고, 다양한 네트워크 관련 작업을 자동화하는 데에도 유용하다는 것을 기억하십시오. 이 랩에서 얻은 기술은 향후 보다 고급 네트워크 작업 및 문제 해결의 기반이 될 것입니다.