검색엔진에 ‘curl’을 입력했더니 ‘컬’에 대해서 많이 나옵니다만,
프로그램에서 말하는것은 ‘C URL(시 유알엘: Client Uniform Resource Locator)’ 입니다.
한마디로 표현하면 ‘인터넷으로 접근 가능한 주소에서 데이터를 보내고 받는 것’ 입니다.
특징으로
– open software이고 commad line tool 또는 libCURL을 이용 할 수 있습니다.
– Linux와 Window에서 사용 가능합니다.
– 모든 브라우저에서 사용 가능합니다.
– 다음 프로토콜을 지원합니다.
FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE
– 뿐만아니라
SSL, HTTP POST, HTTP PUT, FTP uploading,
HTTP form기반의 upload, proxies, cookies, user+password 인증도 제공합니다.
이라이더의 주 사용 용도는 웹페이지를 가져와서 가공하여 필요한 데이터만 추출하는 용도와 반대로 웹페이지에 GET/POST 방식의 데이터를 보내는 용도로 사용하고 있습니다.
그외 ftp로 파일도 전송할 수 있고 쿠키로 로그인도 처리할 수 있고 셀에서 못하는게 없습니다.
curl 옵션을 살펴 볼까요
curl -X POST -H “header…” -H “header…” -d “data…” http://www.example.com/curl/test
옵션 설명
-X : 사용할 Method (Ex: GET, POST)
-H : 전송시 헤더 (EX: -H “Content-Type: application/json”)
여러개의 헤더가 필요 할때에는 헤더 하나당 -H 옵션 하나씩 붙여서 전송.
-d : body에 들어갈 데이터 추가하는 부분
마지막으로 보내야 할 곳의 url
ex) 실제 명령어
curl -X POST -H “header…” -H “header…” -d “{“uid”=”test”}” http://www.ttmart.co.kr/curl/test
HTTP 요청(GET)
curl http://ttmart.co.kr/
HTTP 요청(POST)
curl -X POST -d “<data>” http://ttmart.co.kr
curl -X POST -d “{“uid”=”test”}” http://www.ttmart.co.kr
한글일 때는 urlencode 하여 전송
curl -X POST -d “uid=%C6%BC%C6%BC%B8%B6%C6%AE&password=test”}” http://www.ttmart.co.kr
urlencode 하기 싫으면 –data-urlencode 옵션 사용
curl –data-urlencode “id=티티마트” http://ttmart.co.kr
HTTP authentication
curl -u <id>:<password> http://www.panlab.co.kr/
파일 전송(POST)
curl -X POST -d@<filename> http://www.panlab.co.kr/post
PUT
curl –upload-file uploadfile.zip http://www.panlab.co.kr/post
JSON 전송
curl -X POST http://www.panlab.co.kr/json/ -d@eridercokr.json -H “Content-Type: application/json”
모든 과정을 파일(eridercokr_dump.txt)로 저장하고 싶을 때
curl –trace-ascii eridercokr_dump.txt http://www.panlab.co.kr