curl (Client URL)은 데이터 전송을 위한 명령어 기반 툴 및 라이브러리입니다.
주로 HTTP, HTTPS, FTP, SFTP, SCP 등 다양한 프로토콜을 지원하며, 웹에서 데이터를 가져오거나 업로드하는 데 사용됩니다.
✔ 다양한 프로토콜 지원 – HTTP, HTTPS, FTP, SFTP, SCP, LDAP 등
✔ 파일 다운로드/업로드 가능 – wget처럼 파일을 내려받거나 업로드 가능
✔ API 요청 및 응답 처리 가능 – REST API 호출 및 JSON 데이터 전송 가능
✔ 다양한 인증 방식 지원 – Basic Auth, Bearer Token, OAuth 등
✔ SSL/TLS 지원 – HTTPS 요청 가능 (OpenSSL, NSS, GnuTLS 등 사용)
✔ 운영체제(OS) 독립적 – Windows, Linux, macOS 등에서 사용 가능
curl https://example.com
👉 해당 웹사이트의 HTML을 출력
curl -O https://example.com/file.zip
👉 -O 옵션: 원본 파일명을 유지하며 다운로드
curl -T myfile.txt ftp://example.com --user username:password
👉 -T 옵션: FTP 서버에 파일 업로드
curl -X POST -d "name=John&age=30" https://example.com/api
👉 -X POST 옵션으로 POST 요청 수행
👉 -d 옵션으로 데이터 전송
curl -X POST -H "Content-Type: application/json" -d '{"name":"Alice"}' https://example.com/api
👉 -H 옵션으로 헤더 추가
👉 -d 옵션으로 JSON 데이터 전송
| 구분 | curl | wget |
| 주요 목적 | 데이터 전송 및 API 호출 | 파일 다운로드 |
| 지원 프로토콜 | HTTP, HTTPS, FTP, SCP, SFTP 등 | 주로 HTTP, HTTPS, FTP |
| 파일 다운로드 | 가능 (-O, -o 옵션) | 가능 (기본 기능) |
| API 요청 가능 | 가능 (-X, -d, -H 옵션) | 제한적 |
| 반복 다운로드 | 수동 설정 필요 | 기본 제공 (-r 옵션) |
👉 curl은 다양한 프로토콜과 API 호출 지원이 강점, wget은 대량 다운로드에 최적화!
curl은 단순 명령어 도구뿐만 아니라 libcurl이라는 C 기반 라이브러리를 제공하며, 이를 활용하면 프로그램에서 curl 기능을 사용할 수 있음.
예제 (Python에서 pycurl 사용)
import pycurl curl = pycurl.Curl() curl.setopt(curl.URL, "https://example.com") curl.perform() curl.close()
즉, curl은 웹과 네트워크 프로그래밍에서 필수적인 도구
| MGMT VPC 란? (0) | 2025.04.14 |
|---|---|
| Transit GW와 Internet GW 차이는? (0) | 2025.04.14 |
| 백업관리와 소산관리의 차이는? (0) | 2025.03.31 |
| cmd 창에서 ipconfig 명령어 쳤을 경우 나오는 결과 의미는? (0) | 2025.03.09 |
| cmd창에서 telnet으로 ip, port 명령어 쳐서 통신 확인하는 방법은? (0) | 2025.03.09 |