curl 이란?

dongEon·2024년 7월 3일
0

curl 이란?

학습 배경

프로젝트를 진행하던 중 API가 정상적으로 작동하지 않는 문제를 발견했습니다. 이 상황을 백엔드 담당자에게 전달하자, 담당자는 재현 가능한 요청을 보내달라고 요청했습니다. 당시에는 '재현 가능한 요청'이 무엇을 의미하는지 몰랐기 때문에 단순히 실패하는 요청을 다시 보냈습니다.

백엔드 담당자는 curl 형식으로 재현 가능한 요청을 보내달라고 했고, 이때 처음으로 curl이라는 도구에 대해 알게 되었습니다.

이슈를 해결한 후, curl에 대해 더 깊이 학습해야겠다는 필요성을 느끼게 되었습니다.

그래서 curl이 뭔데?

curl 이란 client URL의 줄임말로 다양한 통신 프로토콜을 이용하여 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다.
주로 웹에서 데이터를 가져오거나 업로드할 때 사용됩니다.

curl은 다양한 프로토콜(HTTP, HTTPS, FTP, FTPS, SCP, SFTP, SMTP, POP3, IMAP)을 지원하며, 스크립트나 명령줄에서 HTTP 요청을 보내고 응답을 확인하는 데 매우 유용합니다.

기본 사용법

curl의 기본 구문은 다음과 같습니다.

curl [options] [URL]

주요 옵션들

  • -X : HTTP 메서드를 지정합니다. 예: GET, POST, PUT, DELETE.
  • -H : 요청 헤더를 설정합니다.
  • -d : 요청 본문을 설정합니다. 주로 POST 요청에 사용됩니다.
  • -i : 응답의 헤더를 포함합니다.
  • -o : 응답을 파일로 저장합니다.
  • -u : 사용자 인증을 설정합니다. 예: username:password.

HTTP,HTTPS 에서의 사용 예제

  1. GET 요청
curl https://api.example.com/data
  1. POST 요청
curl -X POST https://api.example.com/data -d '{"key":"value"}' -H "Content-Type: application/json"
  1. 헤더 포함
curl https://api.example.com/data -H "Authorization: Bearer your_token_here"
  1. 파일 다운로드
curl -o filename.zip https://example.com/file.zip
  1. 응답 헤더 포함
curl -i https://api.example.com/data
  1. 사용자 인증
curl -u username:password https://api.example.com/protected

예를 들어 로그인 요청을 재현하려면

curl -X POST https://api.example.com/login \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer exampletoken123" \
  -d '{"username":"user@example.com","password":"password123"}'

이 명령은 다음을 포함합니다

  • HTTP 메서드: POST
  • URL: https://api.example.com/login
  • 헤더: Content-Type과 Authorization 헤더
  • 본문 데이터: JSON 형식의 사용자명과 비밀번호
profile
개발하면서 생긴 이슈와 알게된 점, 알고리즘 등을 기록하는 블로그입니다.

0개의 댓글