일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- DB #mariaDB #SQL
- publishnotreadyaddress
- function #사용자 정의 함수
- CI #CD #CI/CD
- jgrp000032 #ocp #
- Python #pakage
- 백준 #10430
- EKS
- jmap #jstack
- dump #jattach
- 네트워크 #NW
- lvm #lv #vg #pv
- PODS #POD #pods #pod #파드 #재기동 #롤링재기동 #rolling
- istio #k8s #kubernetes
- dify
- lenova #레노버 #노트북
- EFK
- Kafka #카프카
- Linux #wc
- Node #POD #Container
- 티스토리챌린지
- shell #shell script
- Excel #엑셀
- Grid #CSS
- 오블완
- OCP
- bootstrap #css #CSS
- test #비교
- Swap Memory
- NameSpace #NS
Archives
- Today
- Total
BEOM_IT
Curl (Client URL) 명령어 본문
728x90
반응형
curl 명령어는 프로토콜들을 이용해 URL 로 데이터를 전송하여 서버에 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리
SHELL(커맨드라인 환경)에서 REST API(http) 테스트 하고 싶으면 curl 명령어를 이용
Curl 설치
# ubuntu
$ sudo apt update
$ sudo apt install curl
# CentOS
$sudo yum install curl
Curl 명령어 Option
short | long | 설명 |
-k | --insecure | https 프로토콜에서 SSL 인증서에 대한 검증없이 연결 |
-i | --head | HTTP 헤더만 보여주고 컨텐츠는 표시하지 않음 |
-D | --dump-header | HTTP 헤더를 file에 기록 (덤프) |
-L | --location | HTTP 301, 302 응답을 받은 경우 리디렉션 URL로 따라간다. --max-redirs 옵션 뒤에 숫자로 몇 번의 리디렉션까지 따라갈 것인지를 적을 수 있다. 기본 값은 50이다. |
-d | --data | HTTP POST 요청 데이터 입력 |
-v | --verbose | 동작하면서 세세한 내용을 출력 |
-J | --remote-header-name | 헤더에 있는 파일 이름으로 다운로드 파일을 저장 |
-o | --output FILE | curl로 받아온 내용을 FILE 이라는 이름의 파일로 저장 |
-O | --remote-name | 파일 저장시 리모트에 저장되어 있던 이름을 그대로 가져와서 로컬에 저장 |
-s | --silent | 진행 내용이나 메시지들을 출력하지 않음 HTTP response code 만 가져오거나 할 경우 유리 |
-X | --request | 요청시 사용할 메소드의 종류 (GET, POST, PUT, PATCH, DELETE) |
-i | --include | 응답에 Content 만 출력하지 않고 서버의 Reponse 도 포함해서 출력한다. (디버깅에 유용) |
-A | --user-agent | 서버에 User-Agent 보내기 |
-u | --user | 서버 사용자 및 비밀번호 |
-T | --upload-file | 로컬 FILE 을 대상으로 전송 |
-f | --fail | HTTP 오류 시 자동으로 실패 (출력 없음) |
-G | 전송할 사이트 url 및 ip 주소 | |
-H | 전송할 헤더를 지정 | |
-J | --remote-header-name | 어떤 웹서비스는 파일 다운로드시 Content-Disposition HeaderVisit Website 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다. |
-v | --verbose | 동작하면서 자세한 헤더 통신 옵션을 출력한다. |
-C | --continue-at | 파일 다운로드 재개 |
GET 요청
- $ curl-X GET <IP주소>
POST 요청
- POST의 기본 Content-Type 은 application/x-www-form-urlencoded 이다.
JSON 파일을 같이 첨부해 보내고 싶으면 헤더를 "Content-Type: application/json"로 설정해주어야 합니다.
# url 형식 데이터
- $ curl-d '{"key1":"value1", "key2":"value2"}'-X POST <IP주소>/<url 라우팅 주소>
# json 형식 데이터
- $ curl-d '{"key1":"value1", "key2":"value2"}'-H "Content-Type: application/json"-X POST <IP주소>/<url 라우팅 주소>
# 파라미터값을 파일로 지정해서 보내기
- $ curl-d "@data.txt"-X POST <IP주소>/<url 라우팅 주소>curl-d "@data.json"-H "Content-Type: application/json"-X POST <IP주소>/<url 라우팅 주소>
PUT 요청
- $ curl-X PUT -d 'name=kim&email=abc@gmail.com'<IP주소>/<url 라우팅 주소>
- $ curl-X PUT -H "Content-Type: application/json"-d '{"name":"kim","email":"abc@gmail.com"}'<IP주소>/<url 라우팅 주소>
# 파일명으로 PUT
- $ curl-T filename.txt http://www.sample.com/home/dir
DELETE 요청
- $ curl-X DELETE http://localhost:8080/user/1004
요청/응답 진행 상황을 자세히 출력
- $ curl-v www.sample.com
728x90
반응형
'OS > Linux' 카테고리의 다른 글
journalctl 명령어 사용 (0) | 2024.03.13 |
---|---|
linux 한글깨짐시(encoding) (0) | 2023.10.10 |
groups - 사용자 그룹 (0) | 2023.08.16 |
명령어 - MV (rm 대신 덮어쓰기..) (0) | 2023.07.25 |
원격 시스템 관리를 위한 Telnet 서버설치 (0) | 2023.07.25 |