"Curl 사용법"의 두 판 사이의 차이
DB CAFE
(→최대 전송 속도 지정) |
(→파일이용 로그인) |
||
(같은 사용자의 중간 판 8개는 보이지 않습니다) | |||
9번째 줄: | 9번째 줄: | ||
---- | ---- | ||
− | === Curl | + | === Curl 옵션 (파라미터) === |
<source lang=shell> | <source lang=shell> | ||
curl [options] [URL...] | curl [options] [URL...] | ||
19번째 줄: | 19번째 줄: | ||
curl example.com | curl example.com | ||
</source> | </source> | ||
+ | ==== 기본 파라미터 ==== | ||
+ | <source lang=shell> | ||
+ | $ curl --help | ||
+ | Usage: curl [options...] <url> | ||
+ | -d, --data <data> HTTP POST data | ||
+ | -f, --fail Fail fast with no output on HTTP errors | ||
+ | -h, --help <category> Get help for commands | ||
+ | -i, --include Include protocol response headers in the output | ||
+ | -o, --output <file> Write to file instead of stdout | ||
+ | -O, --remote-name Write output to a file named as the remote file | ||
+ | -s, --silent Silent mode | ||
+ | -T, --upload-file <file> Transfer local FILE to destination | ||
+ | -u, --user <user:password> Server user and password | ||
+ | -A, --user-agent <name> Send User-Agent <name> to server | ||
+ | -v, --verbose Make the operation more talkative | ||
+ | -V, --version Show version number and quit | ||
+ | </source> | ||
==== 출력을 파일에 저장 ==== | ==== 출력을 파일에 저장 ==== | ||
* curl 명령의 결과를 저장하려면 -o 또는 -O 옵션을 사용합니다. | * curl 명령의 결과를 저장하려면 -o 또는 -O 옵션을 사용합니다. | ||
50번째 줄: | 67번째 줄: | ||
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso | curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso | ||
</source> | </source> | ||
+ | ==== URL POST 방식 사용하기 ==== | ||
+ | * POST 요청 기본 | ||
+ | <source lang=shell> | ||
+ | curl -X POST [options] [URL] | ||
+ | </source> | ||
+ | # -X 옵션은 원격 서버와 통신할 때 사용할 HTTP 요청 방법 지정 | ||
+ | # 요청 본문의 유형은 Content-Type 헤더로 표시 | ||
+ | ## 일반적으로 POST 요청은 HTML/Form 양식을 통해 전송됩니다. | ||
+ | ## 일반적으로 다중 파트/양식 데이터 또는 응용 프로그램/x-www-form-urlencoded 콘텐츠 유형으로 인코딩 | ||
+ | # POST 요청을 만들려면 -F 옵션과 field=값 쌍을 차례로 사용 | ||
+ | # 다음은 "id" 및 "password" 필드가 있는 양식에 POST 요청을 하는 예시 | ||
+ | <source lang=shell> | ||
+ | curl -X POST -F 'id=cykim' -F 'password=elqlzkvp' https://dbcafe.co.kr/index.php | ||
+ | </source> | ||
+ | |||
+ | * POST -F 옵션 | ||
+ | # -F 옵션을 사용하면 컬이 멀티파트/폼 데이터 Content-Type을 사용하여 데이터를 전송 | ||
+ | # POST 요청을 하는 또 다른 방법은 -d 옵션을 사용하는 것입니다. | ||
+ | # 그러면 CURL 이 응용 프로그램/x-www-form-urlencoded Content-Type을 사용하여 데이터를 전송합니다. | ||
+ | <source lang=shell> | ||
+ | curl -X POST -d 'id=cykim' -d 'passwd=elqlzkvp' https://dbcafe.co.kr/index.php | ||
+ | </source> | ||
+ | ** -d 옵션을 두 번 이상 사용하는 경우 & 기호를 사용하여 데이터를 병합할 수 있습니다. | ||
+ | **:<source lang=shell> | ||
+ | curl -X POST -d 'id=cykim&passwd=elqlvkzp' https://dbcafe.co.kr/index.php | ||
+ | </source> | ||
+ | |||
+ | * Content-Type을 지정 | ||
+ | # 특정 헤더 또는 Content-Type을 설정하려면 -H 옵션 | ||
+ | #:다음 명령은 POST 요청 유형을 application/json으로 설정하고 JSON 개체를 전송합니다. | ||
+ | #:<source lang=shell> | ||
+ | curl -X POST -H "Content-Type: application/json" \ | ||
+ | -d '{"name": "linuxize", "email": "linuxize@example.com"}' \ | ||
+ | https://example/contact | ||
+ | </source> | ||
+ | |||
+ | * 파일을 업로드 | ||
+ | # curl이 있는 파일을 POST하려면 파일 위치 앞에 @ 기호를 추가합니다. | ||
+ | # 파일은 아카이브, 이미지, 문서 등이 될 수 있습니다. | ||
+ | #:<source lang=shell> | ||
+ | curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload | ||
+ | </source> | ||
+ | |||
==== URL의 HTTP 헤더 가져오기 ==== | ==== URL의 HTTP 헤더 가져오기 ==== | ||
* HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론 구분 키 값 쌍입니다. | * HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론 구분 키 값 쌍입니다. | ||
74번째 줄: | 134번째 줄: | ||
Curl버전 7.47.0 이상이 있는 경우 HTTP/2는 기본적으로 모든 HTTPS 연결에 대해 사용 가능하므로 --http2 옵션을 사용할 필요가 없습니다. | Curl버전 7.47.0 이상이 있는 경우 HTTP/2는 기본적으로 모든 HTTPS 연결에 대해 사용 가능하므로 --http2 옵션을 사용할 필요가 없습니다. | ||
− | |||
==== 리디렉션을 따르기 ==== | ==== 리디렉션을 따르기 ==== | ||
122번째 줄: | 181번째 줄: | ||
==== 쿠키 보내기 ==== | ==== 쿠키 보내기 ==== | ||
* 원격 리소스에 액세스하거나 문제를 디버깅하기 위해 특정 쿠키를 사용하여 HTTP 요청을 해야 하는 경우 | * 원격 리소스에 액세스하거나 문제를 디버깅하기 위해 특정 쿠키를 사용하여 HTTP 요청을 해야 하는 경우 | ||
− | + | * 기본적으로 Curl이 있는 리소스를 요청할 때 쿠키는 전송되거나 저장되지 않습니다. | |
− | 기본적으로 Curl이 있는 리소스를 요청할 때 쿠키는 전송되거나 저장되지 않습니다. | + | * 서버로 쿠키를 보내려면 -b 스위치 다음에 쿠키 또는 문자열이 들어 있는 파일 이름을 사용합니다. |
− | |||
− | 서버로 쿠키를 보내려면 -b 스위치 다음에 쿠키 또는 문자열이 들어 있는 파일 이름을 사용합니다. | ||
예를 들어 Oracle Java JDK rpm 파일 jdk-10.0.2_192-x64_bin.rpm을 다운로드합니다. | 예를 들어 Oracle Java JDK rpm 파일 jdk-10.0.2_192-x64_bin.rpm을 다운로드합니다. | ||
131번째 줄: | 188번째 줄: | ||
<source lang=shell> | <source lang=shell> | ||
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm | curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm | ||
− | </source> | + | </source> |
+ | |||
==== 프록시 사용 ==== | ==== 프록시 사용 ==== | ||
− | + | * HTTP, HTTPS 및 SOCKS를 비롯한 다양한 유형의 프록시 지원 | |
− | 프록시 서버를 통해 데이터를 전송하려면 -x(--proxy) 옵션을 선택한 다음 프록시 URL을 사용합니다. | + | * 프록시 서버를 통해 데이터를 전송하려면 -x(--proxy) 옵션을 선택한 다음 프록시 URL을 사용합니다. |
다음 명령은 192.168.44.1 포트 8888에서 프록시를 사용하여 지정된 리소스를 다운로드합니다. | 다음 명령은 192.168.44.1 포트 8888에서 프록시를 사용하여 지정된 리소스를 다운로드합니다. | ||
144번째 줄: | 202번째 줄: | ||
curl -U username:password -x 192.168.44.1:8888 http://linux.com/ | curl -U username:password -x 192.168.44.1:8888 http://linux.com/ | ||
</source> | </source> | ||
+ | |||
+ | ==== 파일이용 로그인 ==== | ||
+ | <source lang=shell> | ||
+ | curl --netrc-file ~/.netrc https://example.com | ||
+ | -- .netrc 파일정보 | ||
+ | machine example.com login bob password passd | ||
+ | </source> | ||
+ | |||
+ | ==== 그외 ==== | ||
+ | 응답에서 포맷에 맞는 데이터를 출력할 수 있다. | ||
+ | |||
+ | %{variable_name} 과 같은 식으로 출력할 수 있다. | ||
+ | |||
+ | |||
+ | |||
+ | content_type, http_code, time_total 등의 정보를 출력할 수 있다. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 기타 | ||
+ | |||
+ | |||
+ | |||
+ | -x, —proxy <url:port> | ||
+ | |||
+ | HTTP 요청을 보낼 때, 프록시를 사용한다. | ||
+ | |||
+ | |||
+ | |||
+ | curl -x http://localhost:8888 http://naver.com | ||
+ | |||
+ | |||
+ | |||
+ | -p, —proxytunnel | ||
+ | |||
+ | -x 파라미터와 함께 사용되며, HTTP 요청이 아닌 것을 HTTP 요청으로 보낸다. | ||
+ | |||
+ | |||
+ | |||
+ | -s, —slient | ||
+ | |||
+ | 프로그레스나 에러 정보를 보여주지 않는다. | ||
+ | |||
+ | |||
+ | |||
+ | —retry <num> | ||
+ | |||
+ | —retry-delay <seconds> | ||
+ | |||
+ | 요청 실패 시 재시도 한다. | ||
+ | |||
+ | |||
+ | |||
+ | -L, —location | ||
+ | |||
+ | 서버 응답이 3XX로 와서 페이지가 이동된 걸로 판단된 경우, | ||
+ | |||
+ | 해당 페이지로 다시 요청을 보낸다. | ||
+ | |||
+ | |||
+ | |||
+ | -D, —dump-header <file name> | ||
+ | |||
+ | 응답 헤더를 특정 파일에 저장할 수 있다. | ||
+ | |||
+ | 헤더에서 쿠키 등을 저장했다가 다음 요청에 쓰는 용도로 활용할 수 있다. (-b, —cookie 옵션) | ||
+ | |||
+ | 다만, 쿠키를 저장해서 활용하는 용도라면 이것보단 -c, —cookie-jar 옵션이 더 유용하다. | ||
+ | |||
+ | |||
+ | |||
+ | -c, —cookie-jar <filename> | ||
+ | |||
+ | 요청이 완료된 후 쿠키를 모두 저장한다. | ||
+ | |||
+ | 저장한 쿠키는 -b, —cookie 옵션으로 사용할 수 있다. |
2023년 2월 21일 (화) 17:29 기준 최신판
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 Curl[편집]
- Curl 은?
- curl은 명령줄이나 스크립트에서 데이터를 전송하는 데 사용됩니다. curl은 자동차, 텔레비전 세트, 라우터, 프린터, 오디오 장비, 휴대폰, 태블릿, 셋톱 박스, 미디어 플레이어에도 사용되며 100억 개가 넘는 설치에서 수천 개의 소프트웨어 애플리케이션을 위한 인터넷 전송 엔진입니다.
- HTTP, HTTPS, SCP , SFTP 및 FTP 등 지원
- curl은 전송을 재개하고 대역폭을 제한하며 프록시 지원, 사용자 인증 등을 수행할 수 있는 다양한 옵션 제공
- Download https://curl.se/download.html
2 Curl 설치[편집]
2.1 Ubuntu / Debian 설치[편집]
sudo apt update
sudo apt install curl
2.2 CentOS / Fedora 설치[편집]
sudo yum install curl
3 Curl 옵션 (파라미터)[편집]
curl [options] [URL...]
가장 간단한 형태로 옵션 없이 호출될 경우, Curl은 지정된 리소스를 표준 출력에 표시합니다.
예시)
curl example.com
3.1 기본 파라미터[편집]
$ curl --help
Usage: curl [options...] <url>
-d, --data <data> HTTP POST data
-f, --fail Fail fast with no output on HTTP errors
-h, --help <category> Get help for commands
-i, --include Include protocol response headers in the output
-o, --output <file> Write to file instead of stdout
-O, --remote-name Write output to a file named as the remote file
-s, --silent Silent mode
-T, --upload-file <file> Transfer local FILE to destination
-u, --user <user:password> Server user and password
-A, --user-agent <name> Send User-Agent <name> to server
-v, --verbose Make the operation more talkative
-V, --version Show version number and quit
3.2 출력을 파일에 저장[편집]
- curl 명령의 결과를 저장하려면 -o 또는 -O 옵션을 사용합니다.
- 소문자 -o 는 미리 정의된(Save As ..) 파일 이름을 사용하여 파일을 저장합니다. 아래 예에서는 vue-v2.6.10.js입니다.
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
대문자 -O 는 파일을 원래 파일 이름으로 저장합니다.
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
여러 파일을 다운로드
- 여러 파일을 한 번에 다운로드하려면 여러개 -O 옵션과 다운로드하려는 파일의 URL을 차례로 사용
다음 예에서는 Arch Linux 및 Debian ISO 파일을 다운로드합니다.
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \
-O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
3.3 다운로드 재시작[편집]
- -C - 옵션을 사용하여 다운로드를 재개할 수 있습니다.
- 이 기능은 대용량 파일을 다운로드하는 동안 연결이 끊긴 경우 유용하며 처음부터 다운로드를 시작하는 대신 이전 파일을 계속할 수 있습니다.
예를 들어 다음 명령을 사용하여 Ubuntu 18.04 ISO 파일을 다운로드하는 경우입니다.
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
그리고 갑자기 연결이 끊기면 다음을 사용하여 다운로드를 재개할 수 있습니다.
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
3.4 URL POST 방식 사용하기[편집]
- POST 요청 기본
curl -X POST [options] [URL]
- -X 옵션은 원격 서버와 통신할 때 사용할 HTTP 요청 방법 지정
- 요청 본문의 유형은 Content-Type 헤더로 표시
- 일반적으로 POST 요청은 HTML/Form 양식을 통해 전송됩니다.
- 일반적으로 다중 파트/양식 데이터 또는 응용 프로그램/x-www-form-urlencoded 콘텐츠 유형으로 인코딩
- POST 요청을 만들려면 -F 옵션과 field=값 쌍을 차례로 사용
- 다음은 "id" 및 "password" 필드가 있는 양식에 POST 요청을 하는 예시
curl -X POST -F 'id=cykim' -F 'password=elqlzkvp' https://dbcafe.co.kr/index.php
- POST -F 옵션
- -F 옵션을 사용하면 컬이 멀티파트/폼 데이터 Content-Type을 사용하여 데이터를 전송
- POST 요청을 하는 또 다른 방법은 -d 옵션을 사용하는 것입니다.
- 그러면 CURL 이 응용 프로그램/x-www-form-urlencoded Content-Type을 사용하여 데이터를 전송합니다.
curl -X POST -d 'id=cykim' -d 'passwd=elqlzkvp' https://dbcafe.co.kr/index.php
- -d 옵션을 두 번 이상 사용하는 경우 & 기호를 사용하여 데이터를 병합할 수 있습니다.
curl -X POST -d 'id=cykim&passwd=elqlvkzp' https://dbcafe.co.kr/index.php
- -d 옵션을 두 번 이상 사용하는 경우 & 기호를 사용하여 데이터를 병합할 수 있습니다.
- Content-Type을 지정
- 특정 헤더 또는 Content-Type을 설정하려면 -H 옵션
- 다음 명령은 POST 요청 유형을 application/json으로 설정하고 JSON 개체를 전송합니다.
curl -X POST -H "Content-Type: application/json" \
-d '{"name": "linuxize", "email": "linuxize@example.com"}' \
https://example/contact
- 파일을 업로드
- curl이 있는 파일을 POST하려면 파일 위치 앞에 @ 기호를 추가합니다.
- 파일은 아카이브, 이미지, 문서 등이 될 수 있습니다.
curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload
3.5 URL의 HTTP 헤더 가져오기[편집]
- HTTP 헤더는 사용자 에이전트, 내용 유형 및 인코딩과 같은 정보를 포함하는 콜론 구분 키 값 쌍입니다.
- 헤더는 요청 또는 응답과 함께 클라이언트와 서버 간에 전달됩니다.
-I 옵션을 사용하여 지정된 리소스의 HTTP 헤더만 가져옵니다.
curl -I --http2 https://www.ubuntu.com/
3.5.1 웹 사이트가 HTTP/2를 지원하는지 테스트[편집]
- 특정 URL이 새 HTTP/2 프로토콜을 지원하는지 확인하려면 -I와 함께 HTTP 헤더를 --http2 옵션과 함께 가져옵니다.
curl -I --http2 -s https://linuxize.com/ | grep HTTP
-s 옵션은 curl을 무음(조용)으로 실행하고 진행률 미터와 오류 메시지를 숨깁니다.
원격 서버가 HTTP/2를 지원하는 경우, curl은 HTTP/2.0 200을 인쇄합니다.
HTTP/2 200
그렇지 않으면 응답은 HTTP/1.1 200입니다.
HTTP/1.1 200 OK
Curl버전 7.47.0 이상이 있는 경우 HTTP/2는 기본적으로 모든 HTTPS 연결에 대해 사용 가능하므로 --http2 옵션을 사용할 필요가 없습니다.
3.6 리디렉션을 따르기[편집]
- 기본적으로 컬은 HTTP 위치 머리글을 따르지 않습니다.
google.com의 non-ww 버전을 검색하려고 하면 페이지의 원본을 가져오는 대신 www 버전으로 리디렉션됩니다.
curl google.com
-L 옵션은 컬이 최종 대상에 도달할 때까지 모든 리디렉션을 따르도록 지시합니다.
curl -L google.com
3.7 사용자 에이전트 변경[편집]
- 경우에 따라 파일을 다운로드할 때 방문자 장치 및 브라우저에 따라 사용자 에이전트 컬을 차단하거나 다른 내용을 반환하도록 원격 서버를 설정할 수 있습니다.
- 이런 경우 다른 브라우저를 에뮬레이트하려면 -A 옵션을 사용합니다.
예를 들어 Firefox 60을 에뮬레이트하는 경우 다음을 사용합니다.
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
3.8 최대 전송 속도 지정[편집]
- --limit-rate 옵션을 사용하면 데이터 전송 속도를 제한할 수 있습니다.
- 값은 바이트, k 접미사로 킬로바이트, m 접미사로 메가바이트, g 접미사로 기가바이트로 표현할 수 있습니다.
다음 예제에서는 이동 바이너리를 다운로드하고 다운로드 속도를 1MB로 제한합니다.
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
이 옵션은 컬이 사용 가능한 모든 대역폭을 소비하는 것을 방지하는 데 유용합니다.
3.9 FTP로 파일 전송[편집]
- curl로 보호된 FTP 서버에 액세스하려면 -u 옵션을 사용하고 아래 그림과 같이 사용자 이름과 암호를 지정합니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
로그인하면 사용자의 홈 디렉토리에 있는 모든 파일과 디렉터리가 나열됩니다.
다음 구문을 사용하여 FTP 서버에서 단일 파일을 다운로드할 수 있습니다.
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
파일을 FTP 서버에 업로드하려면 업로드할 파일 이름 뒤에 -T를 사용합니다.
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
3.10 쿠키 보내기[편집]
- 원격 리소스에 액세스하거나 문제를 디버깅하기 위해 특정 쿠키를 사용하여 HTTP 요청을 해야 하는 경우
- 기본적으로 Curl이 있는 리소스를 요청할 때 쿠키는 전송되거나 저장되지 않습니다.
- 서버로 쿠키를 보내려면 -b 스위치 다음에 쿠키 또는 문자열이 들어 있는 파일 이름을 사용합니다.
예를 들어 Oracle Java JDK rpm 파일 jdk-10.0.2_192-x64_bin.rpm을 다운로드합니다. 값을 가진 oracle license라는 쿠키를 전달해야 합니다.
curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm
3.11 프록시 사용[편집]
- HTTP, HTTPS 및 SOCKS를 비롯한 다양한 유형의 프록시 지원
- 프록시 서버를 통해 데이터를 전송하려면 -x(--proxy) 옵션을 선택한 다음 프록시 URL을 사용합니다.
다음 명령은 192.168.44.1 포트 8888에서 프록시를 사용하여 지정된 리소스를 다운로드합니다.
curl -x 192.168.44.1:8888 http://linux.com/
프록시 서버에 인증이 필요한 경우 -U(--proxy-user) 옵션을 사용하고 사용자 이름과 암호를 콜론(user:password)으로 구분합니다.
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
3.12 파일이용 로그인[편집]
curl --netrc-file ~/.netrc https://example.com
-- .netrc 파일정보
machine example.com login bob password passd
3.13 그외[편집]
응답에서 포맷에 맞는 데이터를 출력할 수 있다.
%{variable_name} 과 같은 식으로 출력할 수 있다.
content_type, http_code, time_total 등의 정보를 출력할 수 있다.
기타
-x, —proxy <url:port>
HTTP 요청을 보낼 때, 프록시를 사용한다.
curl -x http://localhost:8888 http://naver.com
-p, —proxytunnel
-x 파라미터와 함께 사용되며, HTTP 요청이 아닌 것을 HTTP 요청으로 보낸다.
-s, —slient
프로그레스나 에러 정보를 보여주지 않는다.
—retry <num>
—retry-delay <seconds>
요청 실패 시 재시도 한다.
-L, —location
서버 응답이 3XX로 와서 페이지가 이동된 걸로 판단된 경우,
해당 페이지로 다시 요청을 보낸다.
-D, —dump-header <file name>
응답 헤더를 특정 파일에 저장할 수 있다.
헤더에서 쿠키 등을 저장했다가 다음 요청에 쓰는 용도로 활용할 수 있다. (-b, —cookie 옵션)
다만, 쿠키를 저장해서 활용하는 용도라면 이것보단 -c, —cookie-jar 옵션이 더 유용하다.
-c, —cookie-jar <filename>
요청이 완료된 후 쿠키를 모두 저장한다.
저장한 쿠키는 -b, —cookie 옵션으로 사용할 수 있다.