검색결과 리스트
cURL에 해당되는 글 1건
- 2011.02.18 cURL
글
cURL
curl은 URL 문법을 사용해서 네트웍으로 데이터를 전송할 수 있는 커맨드 라인 툴로, DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS,
IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP,SMTP, STMPS, TELNET 등 다양한 프로토콜을 지원한다.
curl 명령에 -v 옵션을 사용하여, curl 명령이 서버에 보내는 명령들을 볼 수 있다.
웹페이지를 요청하는 다음과 같은 요청을 할 수 있다.
curl http://curl.haxx.se
위와 같이 요청을 하면, 웹페이지 소스를 확인할 수 있다.
-i 옵션을 사용하여, 헤더를 볼수 있으며, -I 옵션을 사용하여 헤더만 볼수도 있다.
curl -I http://curl.haxx.se
GET 방식의 요청
curl "www.hotmail.com/when/junk.cgi?birthday=1906&press=OK"
POST 방식의 요청
curl -d "birthday=1905&press=OK" www.hotmail.com/when/junk.cgi
특수문자를 포함하기 위해서 curl에 --data-urlencode 옵션을 사용하여 인코딩할 수 있다.
curl -data-urlencode "name=I am dDaniel" www.example.com
File Upload 하기
위와 같이 html 문서내 파일업로드를 다음과 같은 curl 명령으로 수행할 수 있다.
curl -F upload=@로컬파일이름 -F press=OK www.example.com
PUT 방식
HTTP 서버에 데이터를 업로드하는 가장 좋은 방법은 PUT 을 사용하는 것이다. 물론 서버단에 HTTP PUT 스트림을
받는 방법을 아는 프로그램이나 스크립트가 존재해야한다. 파일을 HTTP 서버로 전송하는 명령이다 .
curl -T 파일 www.upload.com/receive.cgi
HTTP 인증
HTTP 인증은 서버에 사용자명과 비밀번호를 전송하여 컨텐츠 접근권한을 허용받는 것이다. HTTP 는 디폴트로 순수 텍스트
기반 인증을 수행하기 때문에 비밀번호가 언제든지 네트워상에서 노출될 위험이 있다.
curl -u name:password www.secret.com
사이트 마다 다른 인증방식을 요구할 수 있기때문에 서버로부터의 헤더를 확인하여, ---ntlm, --digest, --negotiate, -- anyauth 등
적합한 옵션을 주어야 할 수있다.
User Agent 설정
웹 요청시 User-Agent 헤더를 설정하여 원하는 버전의 웹페이지를 얻어 올 수 있다.
Window에서 Internet Explorer를 사용하고 있다면,
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" www.example.com
리눅스에서 Netscape를 사용하고 있다면,
curl -A "Mozilla/4.0 [en] (X11; U; Linux 2.2.15 i686)" www.example.com
curl을 사용하여 트위터에 tweet 하기
트위터 API를 사용에서 글을 트윗 하기 위해서, 인증을 거쳐야하는데 curl을 사용하여 인증처리 및 글을 등록해보자!
--basic --user 사용자명:비밀번호
옵션을 사용하여 Basic Auth 을 처리할 수 있다. 그을 트윗하는 완전한 예는 다음과 같다.
curl --basic --user 사용자명:비밀번호 --data status="my test tweet!!" http:// twitter.com/statuses/update.xml
세션쿠키값을 파일에 저장하여 로그인상태 유지하기
트위터의 특정 사람에게 DM을 보내기 위해 로그인 처리를 다음과 같이 할 수 있다.
curl --cookie /tmp/cookies.txt --cookie-jar /tmp/cookies.txt --user-agent Mozilla/4.0 --data 'username=사용자명' --data 'password=비밀번호' --data 'commit=Sign In' http://twitter.com/login
--cookie /tmp/cookies.txt --cookie-jar /tmp/cookies.txt
위 옵션은 /tmp/cookies.txt 파일에서 쿠키를 읽어오고 저장하게 한다. 최초에 빈파일이지만, 로그인 완료되면 세션쿠키가 해당 파일에
저장되게 된다. 이후 요청에서는 이 쿠키를 읽어서 별도의 인증과정 없이 아래와 같이 DM을 전송 할 수 있다.
curl --cookie /tmp/cookies.txt --cookie-jar /tmp/cookies.txt --user-agent Mozilla/4.0 --data "text=보낼 메시지를 이곳에" --data 'commit=Send' http://twitter.com/direct_messages/create/대상사용자아이디(숫자)
이 글은 스프링노트에서 작성되었습니다.
'운영체제로그 > Linux' 카테고리의 다른 글
| 리눅스 파일시스템 계층 표준(Filesystem Hierarchy Standard) (0) | 2011.03.09 |
|---|---|
| su, sudo : 특정 사용자 권한으로 쉘/명령 실행 (0) | 2011.03.08 |
| cURL (0) | 2011.02.18 |
| grub에서 디폴트 부팅 os 변경하기 (0) | 2011.02.16 |
| Bash 스크립트 (0) | 2011.01.20 |
| [Ubuntu] NFS 사용하기 (0) | 2011.01.10 |