CURL 이란? cURL = Client URL
클라이언트에서 커맨드 라인이나 소스코드로 손 쉽게 웹 브라우저 처럼 활동할 수 있도록 해주는 기술(커맨드라인 Tool 혹은 라이브러리)
서버와 통신할 수 있는 커맨드 명령어 툴이다. 웹개발에 매우 많이 사용되고 있는 무료 오픈소스이다 curl의 특징으로는 다음과 같은 수 많은 프로토콜을 지원한다는 장점이 있다.
다양한 지원 프로토콜들
DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet, TFTP
또한 SSL 인증 방식 역시 가능하다.
--> 솔직히 이렇게 얘기하면 도저히 알수가 없다... 그래서 어떻게 쓰는건데??
리눅스 VM 설치편을 보라 쉽게 이해된다...거의 모든 IT를 공부할때는 개념만을 공부해서는 이해하기가 무척 어렵다. 개념페이지는 대충만 보고 용어만 좀 익숙하게 한다음 넘어가지 중요한것은 무조건 사용례 따라하기를 몰라도 먼저하고 다시 컨셉을 읽는것을 권한다. 그리고 Curl은 리눅스에서 그리고 다시 읽어보면 이해가 쉽다.
url을 가지고 할 수 있는 것들은 다할 수 있다. 예를 들면, http 프로토콜을 이용해 웹 페이지의 소스를 가져온다거나 파일을 다운받을 수 있다. ftp 프로토콜을 이용해서는 파일을 받을 수 있을 뿐 아니라 올릴 수도 있다. 심지어 SMTP 프로토콜을 이용하면 메일도 보낼 수 있다
여기서 내가 가장 잘 알고 있는 프로토콜은 역시나 HTTP와 HTTPS이다.
HTTP 통신은 프로젝트에서도 많이 사용해 봤기 때문에 익숙하다.
curl 로 post전송
curl -X POST -v -d @/home/cmail/group_list.txt -d type=group 000.000.000.000/api/test
curl -X POST http://www.test.te.st/test/ -d @curl.json -H "Content-Type: application/json"
curl 로 파일전송
- curl -v -F 'group=@/home/cmail/group_list.txt' "000.000.000.000/api/test?domain=xxx.xx.xx&type=group"
-F옵션으로 파일자체를 전송가능, 받을때는 각 랭귀지의 파일받는 함수로 받으면 된다.
ex)php