curl

curl은 command lines이나 스크립트에서 데이터를 전송하는 데 사용된다. 사실 크롤링에서만 사용되는 것은 아니지만, 여러 테스트를 하기 위한 좋은 도구이므로 짧게나마 간단하게 설명한다.

curl

curl 명령어를 사용하면 클라이언트에서 서버로 요청을 보내고 결과를 쉽게 확인할 수 있다.

요청 보내기

GET 요청을 전송할 때는 아무런 플래그 없이 바로 주소를 입력해 주면 된다.

curl https://jsonplaceholder.typicode.com/posts/1

GET 이외의 메서드로 요청을 보낼때는 -X 옵션을 사용한다.

curl -X DELETE https://jsonplaceholder.typicode.com/posts/1

HTTP 헤더 출력하기

curl명령어는 기본적으로 response body만 출력하지만, -i 옵션을 붙이면 HTTP 헤더도 같이 출력된다.

curl -i https://jsonplaceholder.typicode.com/posts/1

요청 헤더 지정하기

요청 헤더를 지정하려면 -H 옵션을 사용한다. 다중 헤더를 구성하고 싶다면 -H 옵션을 여러번 사용하면 된다.

curl -H 'Content-type: application/json' -H 'charset=UTF-8' https://jsonplaceholder.typicode.com/posts/1 

User-Agent 헤더를 지정할 때는 -A 옵션을 사용할 수 있다.

curl -A 'Cob note' https://jsonplaceholder.typicode.com/posts/1 

request body를 사용해 전송할 내용 지정하기

POST 메서드나 PUT 메서드에서 request body를 보내고 싶은 경우에 -d 옵션을 붙여 내용을 지정할 수 있다. 여러 개의 매개 변수를 전송하고 싶은 경우에는 &로 연결하거나 -d 옵션을 여러번 사용하면 된다.

curl -X POST https://jsonplaceholder.typicode.com/posts -d title=cob

JSON 등을 전송하고 싶은 경우에는 작은 따옴표를 사용하면 여러 줄의 텍스트를 지정할 수 있다. 다만 -d 옵션을 지정한 경우 요청의 Content-Type이 자동으로 application/x-www-form-urlencoded로 전송되기 때문에 서버에 따라 -H 옵션을 붙여 Content-Type을 명시적으로 지정한다.

curl -H 'Content-Type: application/json' -X POST https://jsonplaceholder.typicode.com/posts -d '{ "title": "cob" }'

요청과 응답의 내용을 모두 확인하기

요청과 응답을 모두 확인하고 싶은 경우에는 --verbose 옵션을 붙이면 된다.

curl -H 'Content-Type: application/json' -X POST https://jsonplaceholder.typicode.com/posts -d '{ "title": "cob" }' --verbose

더 자세한 내용은?

위 내용은 curl로 테스트 하기 위한 가장 기본적인 내용만 담았다. 자세한 내용은 참고 자료에 curl 사용법 을 참고하자.

Last updated