curl - http 프로토콜 정리
2021. 4. 6. 01:36ㆍComputerScience/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 |
---|