GrepBoardTools GrepBoard 매뉴얼 ↗ Log ↗

Tools / 네트워크

curl 명령 만들기

요청을 채우고 한 줄을 복사합니다. 거꾸로 curl -sSL -X POST -d @body.json … 같은 명령을 붙여 넣으면 풀어 줍니다.

입력한 값은 브라우저 안에서만 계산하고 서버로 보내지 않습니다.

옵션

명령

bash · zsh · sh 용(POSIX 따옴표)
curl -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"name":"grep","qty":2}' https://api.example.com/v1/items

각 부분의 뜻

무엇을 하나

요청의 메서드 · 헤더 · 본문 · 인증 · 옵션을 고르면 curl 명령 한 줄과 각 옵션의 뜻을 보여 줍니다. 값은 POSIX 셸(bash · zsh · sh)용 작은따옴표로 감싸고, 값 안의 작은따옴표는 '\'' 로 닫았다 다시 엽니다. 「명령 풀어 보기」 탭에 curl 명령을 붙여 넣으면 옵션을 하나씩 나눠 설명하고, 만들기 칸으로 다시 불러올 수 있습니다.

  • 본문은 --data-raw 로 보냅니다. -d 는 값이 @ 로 시작하면 파일을 읽어 버리기 때문입니다.
  • 폼은 --data-urlencode(값을 퍼센트 인코딩), 멀티파트는 --form-string(글자 그대로) · -F 이름=@경로(파일)로 만듭니다.
  • 빈 값 헤더는 -H '이름;' 으로 씁니다. -H '이름:' 은 curl 이 그 헤더를 빼라는 뜻입니다.
  • URL 에 [ ] { } 가 있으면 -g 를 붙여 curl 의 주소 묶음 문법을 끕니다.

예시

고른 것만들어지는 명령
POST · JSON {"a":1}curl -H 'Content-Type: application/json' --data-raw '{"a":1}' https://api.example.com/
헤더 값 it'scurl -H 'X-Note: it'\''s' https://example.com/
기본 인증 alice / s3cr3tcurl -u alice:s3cr3t https://example.com/
HEAD · 리다이렉트 · 10초curl -I -L --max-time 10 https://example.com/
폼 q = a&bcurl --data-urlencode 'q=a&b' https://example.com/form

흔한 실수

  • -X POST -d … 에 -L: -X 로 정한 메서드는 리다이렉트 뒤에도 그대로 갑니다. 본문이 있으면 -X POST 는 빼도 POST 로 갑니다(이 도구는 빼고 만듭니다).
  • -X HEAD: 오지 않는 본문을 기다리다 멈춥니다. -I 를 씁니다.
  • 큰따옴표로 감싼 JSON: "…$HOME…" 처럼 셸이 $ · ` `` 을 먼저 바꿉니다. 작은따옴표로 감쌉니다.
  • --data 와 -G: -G 가 있으면 데이터가 본문이 아니라 ?쿼리 로 붙습니다.

어떻게 확인했나

만든 명령 43가지를 bash 로 실제 curl 8.5.0 에 넘겨 127.0.0.1 의 작은 에코 서버로 보냈고, 서버가 받은 메서드 · 경로 · 헤더 · 본문 · 인증 값이 고른 것과 모두 같았습니다(작은따옴표 · $ · 백틱 · 한글 · 줄 바꿈이 든 값, 리다이렉트, 시간 제한 종료 코드 28 포함). 만든 옵션은 모두 curl --help all 목록에 있는지 확인했고, 풀이 쪽은 bash 의 낱말 나누기와 7가지, curl 이 실제로 보낸 요청과 12가지를 대조했습니다. 옵션 설명표는 curl 8.5.0 의 curl --help all(258개)에서 만들었습니다.

자주 묻는 것

Windows 명령 프롬프트나 PowerShell 에서도 쓰나요?

아니요. 따옴표 규칙이 달라서 이 도구의 명령은 bash · zsh · sh 같은 POSIX 셸용입니다. Windows 에서는 WSL 이나 Git Bash 에서 실행합니다. PowerShell 의 curl 은 버전에 따라 Invoke-WebRequest 의 별칭이므로 curl.exe 로 부릅니다.

브라우저 개발자 도구의 「Copy as cURL」 도 풀 수 있나요?

네. bash 용으로 복사한 명령($'…' 따옴표 포함)을 그대로 붙여 넣으면 됩니다. cmd 용(줄 끝 ^)은 풀지 못합니다. 쿠키 · 토큰이 들어 있을 수 있으니 남과 나누기 전에 지웁니다.

입력한 토큰이나 비밀번호가 서버로 가나요?

아니요. 명령은 브라우저 안에서 만들고, 입력값은 서버로 보내지 않으며 주소창 · 방문 통계 · 광고에도 넘기지 않습니다. 이 도구는 요청을 직접 보내지도 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.