본문 바로가기

IT/네트워크

CURL 이란?

  • curl = Client URL

서버와 통신할 수 있는 커맨드 명령어 툴이다. 웹개발에 매우 많이 사용되고 있는 무료 오픈소스이다 curl의 특징으로는 다음과 같은 수 많은 프로토콜을 지원한다는 장점이 있다.

 

cURL은 리눅스 배포판에 대부분 기본으로 포함돼 있다. 보통은 리눅스 커뮤니티가 관리하는 패키지 관리 시스템을 이용해 간단히 설치할 수 있다. 아래 명령으로 설치한다.

 

$ sudo apt-get install curl

만일 보안 등의 이유로 이 프로그램이 없거나 사용이 금지돼 있다면 설치가 어려울 수도 있다.

 

요청 보내기

REST API를 사용할 때는 cURL 옵션 중 몇 가지를 꼭 알아두는 것이 좋다.

  • -i: 응답 헤더 출력 (옵션 없으면 응답 본문만 출력함)
  • -v: 중간 처리 과정, 오류 메시지, 요청 메시지와 응답 메시지를 헤더와 본문을 포함해 전체 출력
  • -X: 요청 메소드를 지정 (옵션 없으면 기본값은 GET)
  • -H: 요청 헤더를 지정
  • -d: 요청 본문을 지정 (옵션 없으면 요청 본문 없음)

예)

$ curl -X GET http://127.0.0.1:3000/api/users/bakyeono
$ curl -X POST http://127.0.0.1:3000/api/languages/ansi-common-lisp
$ curl -X PUT http://127.0.0.1:3000/api/resources/1789

위 명령은 cURL을 이용해 각각 다음과 같은 요청을 보낸다.

  • http://127.0.0.1:3000/api/users/bakyeono 리소스를 GET
  • http://127.0.0.1:3000/api/languages/ansi-common-lisp 리소스를 POST
  • http://127.0.0.1:3000/api/resources/1789 리소스를 PUT

 


다양한 지원 프로토콜들
DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet, TFTP

또한 SSL 인증 방식 역시 가능하다.

 

여기서 내가 가장 잘 알고 있는 프로토콜은 역시나 HTTP와 HTTPS이다. 

HTTP 통신은 프로젝트에서도 많이 사용해 봤기 때문에 익숙하다.

 

커맨드라인 환경에서 REST API (HTTP) 요청 보내기 (cURL, resty, httpie, Vim REST Control) | 박연오

'IT > 네트워크' 카테고리의 다른 글

etc/init.d/network 에러  (0) 2021.02.19
쿠키와 세션 그리고 로컬 스토리지와 세션 스토리지  (0) 2021.02.17
Axios  (0) 2021.02.16
SSH란(extra. 공개키, 비공개키)  (0) 2020.11.18
[인프라] x86이란  (0) 2020.10.20