728x90

CURL 버전 확인

$ curl --version

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

파일 다운로드

$ curl -O https://^_^.com/file.tar.gz         # file.tar.gz 로 저장
$ curl -o down_file.tar.gz https://^_^.com/file.tar.gz    #down_file.tar.gz로 저장

-C 옵션을 사용해 이어받기를 할 수 있다. 중요한건 -C뒤에 -를 붙여야한다.

# 무언가 받는 중간에 Ctrl+C로 연결을 종료한다.
$ curl -O https://^_^.com/some_text.txt

# -C 옵션을 통해 이어 받기 할 수 있다.
$ curl -C - -O https://^_^.com/some_text.txt

두개 이상의 파일은 이렇게 다운한다.

$ curl -O https://^_^.com/some_text.txt -O https://^_^.com/yeah.txt

파일에 있는 URL로 부터 다운로드 하기

$ cat list.txt
https://a.co.kr/a.txt
https://b.co.kr/b.txt
https://c.co.kr/c.txt

$ xargs -n 1 curl -O < list.txt # 이렇게 하면 파일안의 URL로 부터 다운할 수 있다.

다운로드 속도 제한 걸기

$ curl --limit-rate 100K https://^_^.com/somefile -O # 100KB/s 속도로 제한할 수 있다.

프로토콜 디버깅

verbosetrace, --trace-ascii를 사용해 HTTP 통신 과정에 대한 상세정보를 확인할 수 있다.

verbose로 불충분하면 trace-ascii를 사용하면된다.

디버깅 정보는 debug.dump에 저장된다.

$ curl --trace-ascii debug.dump https://some-server.com/test

GET

GET으로 데이터요청을 할 수 있다.

$ curl https://^_^.com/
$ curl https://^_^.com/some.php?id=1&pw=1

POST

POST 방식으로 데이터를 body에 담아서 전송할 수 있다. -d,--data옵션을 사용해 데이터를 보낼 수 있다. 또는 파일을 읽어서 body로 보낼경우 -d @<filename>을 하면 된다.

$ curl -d "name=jijijiji&age=20&address=Seoul ... .. ." https://^_^.com/some.php
$ curl -X POST https://^_^.com/some.php -d @some_file.json -H "Content-Type: application/json"

파일업로드

$ curl -F upload=@some.tar.gz -F "username=jijijiji" https://^_^.com/

User Agent

$ curl --user-agent "Mozilla/4.73 [en] (X11; U; Linux 2.2.15 i686)" https://^_^.com/

HTTP Header Dump

-D(--dump-header) <filename> 로 헤더 정보를 파일로 보낼 수 있다. filename을 -로 하면 헤더를 표준출력할 수 있다.

$ curl -D header.txt https://^_^.com/

헤더정보만 출력

$ curl https://^_^.com/ -I

헤더 정보 추가하기

$ curl -H "something: something" https://^_^.com/

자료 출처

https://www.joinc.co.kr/w/Site/Tip/curl

'TIP_TIP' 카테고리의 다른 글

개인정리  (0) 2019.08.09
fflush 귀찮을때  (0) 2019.07.18