cURL이란? 완벽 가이드 (정의, 사용법, 예제까지)
cURL은 "Client URL"의 약자로, 다양한 프로토콜을 사용하여 데이터를 전송할 수 있는 강력한 명령줄 도구입니다. 주로 HTTP 요청을 보내거나, 웹 서버와 통신할 때 사용되며, 개발자와 서버 관리자들 사이에서 매우 인기 있는 툴입니다.
1. cURL의 정의
cURL (Client URL): 명령줄 또는 스크립트에서 HTTP, FTP, SMTP, LDAP 등 다양한 프로토콜을 사용하여 데이터를 송수신할 수 있는 도구입니다.
주요 특징:
- 다양한 프로토콜 지원: HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP, SMTP 등
- 자동화에 적합: 스크립트와 함께 사용하기 쉬움
- 플랫폼 호환성: Windows, macOS, Linux 등 대부분의 OS 지원
2. cURL 설치 방법
리눅스/우분투
sudo apt update
sudo apt install curl
macOS (Homebrew 사용)
brew install curl
윈도우 (Chocolatey 사용)
choco install curl
설치 확인
curl --version
3. cURL 기본 사용법
1) GET 요청 보내기 (기본 요청)
2) HTTP 헤더 정보만 확인하기
curl -I https://www.example.com
3) POST 요청 보내기 (데이터 전송)
curl -X POST -d "username=test&password=1234" https://www.example.com/login
4) 파일 다운로드하기
curl -O https://www.example.com/file.zip
5) 파일 업로드하기 (FTP 서버로 전송)
curl -T file.txt ftp://ftp.example.com/ --user username:password
4. 고급 사용법 (API 테스트 & 보안)
1) REST API 테스트하기 (JSON 데이터 전송)
curl -X POST https://api.example.com/data -H "Content-Type: application/json" -d '{"name": "John", "age": 30}'
2) 인증이 필요한 API 요청 (Bearer Token 사용)
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.example.com/user
3) SSL 인증서 무시하고 요청 보내기 (보안 예외 처리)
curl -k https://self-signed.badssl.com/
5. cURL 자주 사용하는 옵션 요약
옵션설명예제
-I | 헤더 정보만 출력 | curl -I https://www.example.com |
-X | HTTP 메서드 지정 (POST, PUT 등) | curl -X POST https://api.example.com |
-d | 데이터 전송 (POST 요청에 사용) | curl -d "key=value" https://example.com |
-H | HTTP 헤더 추가 | curl -H "Content-Type: application/json" |
-O | 파일 다운로드 | curl -O https://example.com/file.zip |
-T | 파일 업로드 | curl -T file.txt ftp://ftp.example.com |
-k | SSL 인증서 검증 무시 | curl -k https://example.com |
마무리
cURL은 단순한 HTTP 요청 도구를 넘어, API 테스트, 자동화 스크립트, 서버 모니터링 등 다양한 용도로 활용할 수 있는 필수 도구입니다. 기본적인 GET/POST 요청뿐만 아니라 인증, 파일 전송, API 호출 등에도 유용하므로, 개발자라면 꼭 익혀두세요.
'개발 관련 > Server' 카테고리의 다른 글
HttpServlet 정리 (0) | 2025.02.07 |
---|---|
서블릿, 서블릿 컨테이너(Servlet vs Servlet Container) 차이점 (1) | 2025.02.07 |
[nodejs] 00. nodejs 설치 (0) | 2024.08.27 |
계정에 sudo 권한 주는법 (0) | 2024.08.27 |
우분투 맨날 초기화를 하다보니.. 매번 막히는데서 막힘.. (0) | 2024.08.18 |