리눅스, 윈도우에서 브라우저 없이 웹페이지를 가져올 때 CURL을 사용해보자

검색엔진에 ‘curl’을 입력했더니 ‘컬’에 대해서 많이 나옵니다만,

프로그램에서 말하는것은 ‘C URL(시 유알엘: Client Uniform Resource Locator)’ 입니다.

한마디로 표현하면 ‘인터넷으로 접근 가능한 주소에서 데이터를 보내고 받는 것’ 입니다.

특징으로
open software이고 commad line tool 또는 libCURL을 이용 할 수 있습니다.
LinuxWindow에서 사용 가능합니다.
– 모든 브라우저에서 사용 가능합니다.
– 다음 프로토콜을 지원합니다.
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

#리눅스 #url #Curl #시유알엘 #Client URL