1. Curl 이란?
curl (client url) 이란 프로토콜을 이용해 URL 로 데이터를 전송하여
서버에 데이터를 보내거나 가져올때 사용하기 위한 명령줄 도구 및 라이브러리이다.
예를들면 자바스크립트 환경에서 REST API (http) 를 테스트 하고 싶다면
ajax, fetch 를 이용해 요청을 보내느것과 동일하다.
쉘 (커맨드라인 환경) 에서 REST API (http) 테스트를 하고 싶을때
curl 명령어를 이용하면 된다고 이해하면 된다.
이밖에 HTTP / HTTPS / FTP / LDAP / SCP / TELNET / SMTP / POP3 등
다양하고 주요한 프로토콜을 지원하며 Linux/Unix 계열 및 Windows 등
주요한 OS 에서 구동되므로 여러 플랫폼과 OS에서 유용하게 사용할 수 있다.
이렇게 다양하고 강력한 기능을 가진 옵션들을 제공하지만,
보통 특정 서버에서 빠르게 방화벽 예외 상태를 테스트 하거나,
REST 서비스 테스트를 위해 사용되는 편이다.
2. curl 설치
Linux나 Mac OS 에는 curl 명령어 패키지가 기본 탑재되어 있다.
Window에서도 설치하여 사용할수 있지만 일반적으로 윈도우에는 편리하게 사용 가능한
tool이나 Postman과 같은 프로그램들이 많기 때문에 잘 사용하지 않는 편이긴 하다.
윈도우
curl for Windows
curl 8.9.0 for Windows These are the latest and most up to date official curl binary builds for Microsoft Windows. curl version: 8.9.0 Build: 8.9.0_1 Date: 2024-07-24 Changes: 8.9.0 changelog curl for 64-bit Size: 7.4 MB sha256: dfac2df82fd98369c23fea194d8
curl.se
3. curl 명령어 옵션
특정 URL을 대상으로 동작하며 URL 앞에는 curl의 옵션을 사용하면 된다.
curl 명령의 옵션은 하이픈 하나(-)로 시작하는 short 형식과 하이픈 두개(--)로 시작하는 long 형식 모두 지원한다.
$ curl [options...] <url>
$ curl --help all # 전체 명령어 보기

4. curl http 메서드
1) GET 요청
$ curl www.example.com
$ curl -X GET www.example.com
# GET방식은 Body 없음
# -X 요청메소드 종류 명시
2) POST 요청
# url 형식 데이터
$ curl -d "key1=value1&key2=value2" \
-H "Content-Type: application/x-www-form-urlencoded" \
-X POST http://localhost:8080/data
# -d 옵션으로 body 데이터를 기재
# -H 옵션으로 전송할 헤더 지정 (디폴트 : application/x-www-form-urlencoded)
# -X 옵션으로 POST 메소드 지정하고 요청할 url명시
# JSON 형식 데이터
$ curl -d '{"key1":"value1", "key2":"value2"}' \
-H "Content-Type: application/json" \
-X POST http://localhost:8080/data
# 파라미터값을 파일로 지정해서 보내기
curl -d "@data.txt" -X POST http://localhost:8080/data
curl -d "@data.json" -X POST http://localhost:8080/data
3) PUT 요청
$ curl -X PUT -d 'name=inpa&email=inpa@gmail.com' http://localhost:8080/user/100
$ curl -X PUT -H "Content-Type: application/json" -d '{"name":"inpa","email":"inpa@gmail.com"}' http://localhost:8080/user/100
# 파일명으로 PUT
$ curl -T filename.txt http://www.example.com/dir/
4) DELETE 요청
$ curl -X DELETE http://localhost:8080/user/100
'DevOps' 카테고리의 다른 글
| [DevOps] 도커 이미지 생성 및 온프레미스 환경 jar 띄우기 (0) | 2024.09.04 |
|---|---|
| [DevOps] 리눅스 크론탭(Linux Crontab) 사용법 (0) | 2024.03.06 |
| [DevOps] Elastic Alert (0) | 2023.12.15 |
| [DevOps] Grafana Alert (0) | 2023.12.05 |
| [DevOps] 도커 네트워크 종류 (0) | 2023.07.19 |