curl - http 프로토콜 정리

2021. 4. 6. 01:36ComputerScience/Linux

curl 이란

curl은 command line 용 data transfer tool.

HTTP/HTTPS/FTP/LDAP/SCP/TELNET/SMTP/POP3 등 프로토콜을 지원하고 linux,unix, winodws 계열등 주요 OS에서 구동됨. C/C++에서 역시 libcurl 라이브러리를 사용하여 연계가 가능하다.

 


사용법

curl + [options] + <url> 의 형식으로 사용됨. http/https 위주의 옵션을 정리함

 

short      
-k --insecure https 사이트를 SSL certificate 검증없이 연결한다. wget 의 --no-check-certificate 과 비슷한 역할 수행
-l --head HTTP header 만 보여주고 content 는 표시하지 않는다  
-D --dump-header <file> <file> 에 HTTP header 를 기록한다.  
-L --location

서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라간다.

--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있다. 기본 값은 50이다

 
-d --data HTTP Post data  
-v --verbose  동작하면서 자세한 옵션을 출력한다.  
-J --remote-header-name 어떤 웹서비스는 파일 다운로드시 Content-Disposition Header 를 파싱해야 정확한 파일이름을 알 수 있을 경우가 있다. -J 옵션을 주면 헤더에 있는 파일 이름으로 저장한다.  
-o --output FILE curl 은 remote 에서 받아온 데이타를 기본적으로는 콘솔에 출력한다. -o 옵션 뒤에 FILE 을 적어주면 해당 FILE 로 저장한다. (download 시 유용)  
-O --remote-name file 저장시 remote 의 file 이름으로 저장한다. -o 옵션보다 편리하다.  
-s --silent 정숙 모드. 진행 내역이나 메시지등을 출력하지 않는다. -o 옵션으로 remote data 도 /dev/null 로 보내면 결과물도 출력되지 않는다  
-X --request Request 시 사용할 method 종류(GET, POST, PUT, PATCH, DELETE) 를 기술한다.  
-H --header

특정한 HTTP Header 를 설정해서 보내야 할 경우(Ex: json data등) -H (–header) 옵션으로 헤더를 설정할 수 있다.

 

 

[POST]

curl -d "key1=value1&key2=value2" \
--data-urlencode "name=value"\
-H "Content-Type: application/json" \
-H "Authorization" Bearer abcddbg"\   
-X POST http://localhost:8000/data

-H 옵션은 다양한게 있다.  전송시에 추가할 헤더를 설정할 수 있다. data type등.

Authorizaton  header는 이 링크를 참고.

--data-urlencode 는 url 을 자동으로 인코딩해준다. 사용자가 %등을 +로 바꿔 입력할 필요가없어 편리한 옵션이다.

 

[PUT]

$ curl -X PUT\
-H "Content-Type: application/json; charset=utf-8"\
-d '{"message":"hello"}' http://127.0.0.1:3000/api/chat

[GET]

curl  -X GET  http://ip:port

 

[DELETE]

curl -X DELETE http://ip:port/key

 

차후 학습후 추가할게 있으면 추가할 예정

'ComputerScience > Linux' 카테고리의 다른 글

byobu 단축기  (0) 2020.03.02