HTTP 요청 → cURL
브라우저 처리브라우저 개발자 도구나 로그에서 복사한 HTTP 요청 원문(첫 줄·헤더·본문)을 그대로 실행할 수 있는 curl 명령으로 바꿉니다. 경로만 있는 요청은 Host 헤더로 전체 주소를 만듭니다.
- 파일·이미지·문서 처리 도구는 브라우저 안에서 처리되더라도 원본에 개인정보나 민감 정보가 포함될 수 있습니다. 공유·제출 전 원본과 결과를 한 번 더 확인하세요.
버그 보고서나 서버 로그에는 'POST /api/tools HTTP/1.1'로 시작하는 요청 원문이 남는 경우가 많습니다. 이 도구는 그 원문을 읽어 같은 요청을 다시 보낼 수 있는 curl 명령을 만들어, 문제를 터미널에서 바로 재현할 수 있게 합니다.
curl 'https://api.example.com/tools' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sample' \
--data-raw '{"name":"Markdown","note":"it'\''s"}'
HTTP 요청 → cURL 사용 가이드
버그 보고서나 서버 로그에는 'POST /api/tools HTTP/1.1'로 시작하는 요청 원문이 남는 경우가 많습니다. 이 도구는 그 원문을 읽어 같은 요청을 다시 보낼 수 있는 curl 명령을 만들어, 문제를 터미널에서 바로 재현할 수 있게 합니다.
첫 줄의 메서드와 주소, 헤더 줄, 빈 줄 뒤의 본문을 나눠 읽습니다. 주소가 /search처럼 경로만 있으면 Host 헤더를 붙여 https://주소로 만들고, curl이 알아서 정하는 Host·Content-Length·Connection 헤더는 뺍니다. Accept-Encoding에 gzip이 있으면 --compressed를 붙입니다.
모든 값은 작은따옴표로 감싸고 값 속 작은따옴표는 '\''로 처리해, $나 공백이 든 본문도 셸이 바꾸지 않고 그대로 보냅니다. GET과 본문 있는 POST는 -X를 생략하고, HEAD는 -I로 바꿔 curl의 관례를 따릅니다.
사용 방법
- 'HTTP 요청 원문' 칸에 요청 첫 줄, 헤더, 빈 줄, 본문 순서로 붙여 넣습니다.
- '실행'을 누르면 줄마다 \로 이어진 curl 명령이 나옵니다.
- 터미널(bash·zsh)에 붙여 넣어 요청을 다시 보냅니다.
예시: JSON 본문이 있는 POST 요청
POST https://api.example.com/tools HTTP/1.1
Content-Type: application/json
Authorization: Bearer sample
{"name":"Markdown","note":"it's"}curl 'https://api.example.com/tools' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sample' \
--data-raw '{"name":"Markdown","note":"it'\''s"}'본문 속 it's의 작은따옴표는 '\''로 안전하게 처리됐습니다.
이럴 때 쓰면 좋아요
- 로그에 남은 실패 요청을 터미널에서 그대로 재현할 때
- 버그 보고서의 요청 원문을 개발자가 바로 실행할 명령으로 바꿀 때
- 프록시 도구(Fiddler·Charles)에서 복사한 요청을 curl로 옮길 때
- API 문서에 예시 요청을 curl 명령으로 실을 때
문제가 생겼을 때
첫 줄이 GET /path처럼 경로만 있는데 Host 헤더가 없습니다. Host: example.com 줄을 추가하거나 첫 줄에 https://까지 전체 주소를 쓰세요.
헤더와 본문 사이에 빈 줄이 하나 있어야 본문으로 인식합니다. 마지막 헤더 다음에 빈 줄을 넣으세요.
활용 팁
- Host 헤더의 포트가 :80이면 http://로, 그 밖에는 https://로 주소를 만듭니다. 사내망 http 서버라면 첫 줄에 http://로 전체 주소를 쓰세요.
- Cookie나 Authorization 헤더에는 로그인 정보가 들어 있으니 결과 명령을 공유하기 전에 값을 지우세요.
자주 묻는 질문
결과는 bash·zsh용 작은따옴표 형식입니다. 윈도우에서는 Git Bash나 WSL에서 실행하거나 PowerShell의 Invoke-WebRequest로 바꿔 써야 합니다.
첫 줄이 메서드와 주소로 시작하고 헤더가 '이름: 값' 형식이면 됩니다. :authority 같은 가상 헤더는 빼고 붙여 넣으세요.
본문은 글자로 다루므로 이미지 같은 바이너리 본문은 옮길 수 없습니다. 파일 업로드는 curl -F 'file=@파일명'으로 직접 바꾸세요.