1. Client URL (cURL)
ㅇ 다양한 통신 프로토콜(HTTP,HTTPS,FTP,SCP,IMAP,SMTP,POP3,LDAP 등)에 대응되는
`라이브러리 libcurl` 및 `명령줄 도구 curl`를 제공하는 오픈소스 프로젝트
ㅇ 유닉스,리눅스,윈도우즈 10 등에 기본 설치됨
2. curl 명령형 형식
ㅇ curl [options...] url
3. curl 주요 옵션
ㅇ -d,--data : HTTP POST 메소드에 의한 폼 전송 형식으로, 데이터를 하나씩 지정 가능
- 例) curl -d "title=welcome&hello=world" http://www.example.com:80
ㅇ -F : HTTP POST 메소드에 의한 폼 전송 형식으로, 복수개 파일 전송 가능
- 例) curl -F "attachment-file@test.txt;type=text/html" http://www.example.com:80
. 파일명이 test.txt인 파일을 읽어와서, 그 내용을 첨부 전송
ㅇ -h,--help : 옵션 정보 보여줌
ㅇ -I,--head : header 만 보여주고, content는 감춤
- (HTTP 요청 메소드 중 HEAD 메소드를 요청한 것과 같음)
ㅇ -i,--include : header도 포함시켜, content와 함께 보여줌
ㅇ --http1.0, --http1.1, --http2 : HTTP 각 버전별 프로토콜을 사용함
ㅇ -H,--header="헤더행" : 실제 헤더 항목을 덧붙여 요청함
- (기본으로, User-Agent,Accept 헤더 항목은 무조건 덧붙여 보냄)
- 例) curl -d "{\"hellow\": \"word\"}" -H "Content-Type: application/json" http://www.example
ㅇ -L : HTTP 응답코드만 출력 (헤더,콘텐츠는 제외)
ㅇ -O : 서버에 저장된 파일명 그대로 다운로드
ㅇ -x : 프록시 서버 지정
ㅇ -X : HTTP 요청 메소드별로 일일이 지정 가능
- (-X HEAD, -X POST 등)
ㅇ -v : 요청,응답 헤더도 보여줌
4. 주요 예시
ㅇ GET 메소드에 의한, HTTP 요청 메세지
- curl http://www.example.com : 바디 위주로 보여줌
- curl http://www.example.com -I : 헤더 만 보여줌
- curl http://www.example.com -v : 바디, 헤더 모두 보여줌