제육's 휘발성 코딩
article thumbnail
반응형

curl 이란?

curl은 Client Url 이란 의미로 클라이언트에서 url을 사용해서 서버와 데이터를 송수신하는 명령어 툴이다.

Linux, MacOS, Window 등 다양한 환경에서 HTTP, HTTPS, SMTP, TELNET, FTP, LDAP 등 다양한 프로토콜을 지원하여 통신 환경에서 자주 쓰인다. 

 

curl 사용법

curl [OPTIONS] [URL]
  • curl의 OPTION은 short 형인 "-" 와 long 형인 "--" 를 제공한다. 가장 기본적인 사용법은 옵션 입력 후에 URL을 입력이다.

 

short long 설명
-k --insecure https URL 접속 시 SSL 인증서 검사 없이 연결
-i --head HTTP 응답 헤더를 표시
-d --data POST 요청이나 JSON 방식과 같이 request body에 데이터를 담을 때 사용
-o --output -o [파일명] 을 사용하면 출력 결과를 파일로 저장
-O --remote-name 파일 저장 시 remote의 file 이름으로 저장
-s --silent 진행 내역이나 메시지 등을 출력하지 않는다.
-X --request Request에 사용할 메서드(GET, POST, PUT 등)를 지정
-v --verbose 동작하는 과정을 출력
-A --user-agent 특정 브라우저인 것처럼 동작하기위한 설정
-H --header 요청할 헤더 설정
-L --location 서버에서 HTTP (301,302 -리다이렉트) 응답이 오면 리다이렉트 URL로 따라감 (--max-redirs 횟수)로 지정 가능
-D --dump-header<file> 파일에 응답 헤더를 기록
-u --user 사용자 아이디 / 비밀번호 입력
-f --fail 오류 발생 시 출력 없이 실패
-T --upload-file 로컬 파일을 서버로 전송
-C --continue-at 중지된 다운로드를 재시작
-J --remote-header-name 응답 헤더에 있는 파일 이름으로 파일 저장 (curl 7.20 이상)
-I --head 응답 헤더만 출력

 

curl 사용 예제

curl https://sasca37.tistory.com
  • URL 요청에 대한 응답 값 출력 

 

curl -o dummy.txt google.com
curl -O google.com/dummy2.txt
  • URL 요청에 대한 응답을 dummy.txt라는 파일에 저장 
  • -O의 경우 서버에 해당하는 파일명을 갖고 오기 때문에 해당 파일명이 존재하지 않으면 404 응답이 파일명으로 저장된다.

 

curl --connect-timeout 15 \
 -i \
 -H 'Content-Type: application/json' \
 -d '{ "info" : { "country" : "korea", "name" : "sasca", "secretIdentity" : "nknown"}, "reqData" : { "id" : "sasca37","password" : "sasca37"}}' \
 -X POST http://localhost:8080/getToken
  • POST 방식으로 JSON 데이터 요청 및 타임아웃 설정 

 

curl --data-binary -d @data.txt http://localhost:8080
  • HTTP POST에서 파일을 전송할 경우 파일명 앞에 @를 붙여준다.

 

curl -# -O ftp://example.com/download.zip
curl --silent ftp://example.com/download.zip
curl ftp://example.com/download[1-20].jpeg
curl --limit-rate 1000K -O ftp://example.com/download.zip
  • FTP 방식으로 통신 (-# : 진행률 #으로 한줄 표시, --silent : 진행 과정 비활성화, [1-20] 숫자 시퀀스라면 여러 파일 전송, --limit-rate 전송 속도 제한)

 

curl -u [사용자]:[비밀번호] -x [프록시_이름]:[포트] [URL...]
  • 사용자 정보 입력 및 프록시가 필요한 경우 사용 

 

curl –url [SMTP URL] \
 –mail-from [sender_mail] \
 –mail-rcpt [receiver_mail] \
 -n \
 –ssl-reqd \
 -u {email}:{password} \
 -T [메일 텍스트 파일]
  • SMTP 방식으로 메일 전송 방식 

 

curl -v -L  -X POST -H 'Accept: application/json' -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9' 'http://localhost:8080'
  • Bearer token을 사용할 경우 -H 옵션 뒤에 토큰을 추가하여 전송 

 

curl -I -c cookie.t http://localhost:8080
  • 쿠키 정보를 cookie.t 파일에 저장 

 

curl -b "JSESSIONID=3CB361E0BE1A9A7DE7DB926DF0772BAE" http://localhost:8080
  • 쿠키 값을 지정하여 서버에 전송 

 

 

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^