curl - transfer a URL
curl [options] [URL...]
HTTP, HTTPS, FTP 등 다양한 프로토콜을 이용하여 데이터를 전송하거나, 서버에서 파일을 다운로드 받을 때 사용되지만 많은 프로토콜을 지원합니다.헤더나 쿠키를 조작할 수 있으며, 파일 업로드 및 다운로드도 가능합니다.
이런 특징 때문에 쉘 스크립트 등에서 자주 사용되며, 특히 API 테스트나 간단한 데이터 전송에 유용합니다. 또한, 웹 스크레이핑이나 다운로드 등의 다양한 용도로 사용할 수 있습니다.
지원 프로토콜 : DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP
-X, --request <command>: HTTP 요청 메서드를 설정합니다.
-H, --header <header/@file>: HTTP 헤더를 추가합니다. @file 구문으로 파일에서 헤더를 읽어올 수 있습니다.
-d, --data <data/@file>: POST 또는 PUT 요청에 사용할 데이터를 설정합니다. @file 구문으로 파일에서 데이터를 읽어올 수 있습니다.
-i, --include: 응답 헤더도 출력합니다.
-I, --head: 헤더 정보만 가져옵니다.
-L, --location: 리다이렉션을 따라갑니다.
-o, --output <file>: 결과를 파일에 저장합니다.
-s, --silent: 결과를 출력하지 않습니다.
-u, --user <user:password>: HTTP 인증 정보를 설정합니다.
-v, --verbose: 자세한 출력을 합니다.
URL 지정
curl 명령어를 실행할 때 가져올 URL을 지정합니다.
curl https://a3040.com/curl/1.txt
파일 다운로드
URL로 지정한 파일을 다운로드하려면 -O 옵션을 사용합니다.
curl -O https://a3040.com/curl/1.txt
헤더 전송
HTTP 요청에 헤더를 추가하려면 -H 옵션을 사용합니다.
curl -H "Content-Type: application/json" -H "Authorization: Bearer my_token" -X POST -d '{"name": "John", "age": 30}' https://www.example.com/api
HTTP 요청 방식 설정
HTTP 요청 방식을 설정하려면 -X 옵션을 사용합니다.
curl -X POST -d "name=John&age=30" https://www.example.com/form
데이터 전송
HTTP 요청에 데이터를 전송하려면 -d 옵션을 사용합니다.
curl -d "name=John&age=30" https://www.example.com/form
다중 URL 요청
다중 URL을 요청하려면 URL을 공백으로 구분하여 지정하면 됩니다.
curl https://a3040.com/curl/1.txt https://a3040.com/curl/2.txt
쿠키 전송
HTTP 요청에 쿠키를 추가하려면 -b 옵션을 사용합니다.
curl -b "session_id=123456" https://www.example.com/
http://site.{one,two,three}.com
or you can get sequences of alphanumeric series by using [] as in:
ftp://ftp.example.com/file[1-100].txt
ftp://ftp.example.com/file[001-100].txt (with leading zeros)
ftp://ftp.example.com/file[a-z].txt
Nested sequences are not supported, but you can use several ones next
to each other:
http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html