반응형
cURL을 이용하여 다양한 통신 프로토콜에 데이터를 전송할 수 있다.
일반적으로 웹 서비스 개발 시 테스트 및 디버깅 용도로 많이 사용되고 cmd에서 실행 가능하므로
웹 요청에 필요한 배치 작업을 자동화할 수 있다.
GET 요청
POST 요청
일반적으로 웹 서비스 개발 시 테스트 및 디버깅 용도로 많이 사용되고 cmd에서 실행 가능하므로
웹 요청에 필요한 배치 작업을 자동화할 수 있다.
옵션
- -G --get GET 데이터를 전송한다.
- -d --data POST 데이터를 전송한다.
- -X --request 요청 method를 지정한다.(기본 값 = POST)
- -L --location 리다이렉트 페이지를 추적한다.
- -l --head HTTP 헤더만 출력한다.
- -O --remote-name file 저장 시 원격 서버의 파일 이름으로 저장한다.
- -b --cookie 쿠키 값을 전송한다.
- -k, --insecure https 사이트를 SSL 인증서 검증없이 연결한다.
- -H --header Content-Type을 지정한다.
- --trace-ascii HTTP 데이터 통신 과정의 상세 정보를 출력한다.
사용 예제
GET 요청
curl -G http://webisfree.com/action/?param1=value1&m2=value2
POST 요청
예제 ①
curl http://test.com/post -d param1=value1 -d param2=value2
예제 ②
curl http://test.com/post -d "param1=value1&m2=value2"
curl은 https 사이트의 SSL 인증서를 검증한다. 인증서 목록이 없거나 알 수없는 기관에서 발급한 인증서는
다음과 같은 인증서 검증 에러를 발생시킨다.
프로토콜 디버깅
Content-Type 지정
curl: (77) schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.
아래처럼 HTTPS 검증을 하지않는 옵션을 사용하거나 인증기관 목록을 추가하여 해결한다. curl -k https://test.com/
프로토콜 디버깅
curl --trace-ascii test.dump http://www.test.com/test
Content-Type 지정
① 폼 데이터 전송
curl http://test.com/post -d "param1=value1&m2=value2" -H "Content-Type: application/x-www-form-urlencoded"
① JSON 데이터 전송
curl http://test.com/post -H "Content-Type: application/json" -d '{"key1":"value1", "key2":"value2"}'
쿠키 값 지정
curl http://test.com/home -b "JSESSIONID=7A22ABF5FBA40538BD06A97FFA815F7E"
반응형
'유틸리티-사이트' 카테고리의 다른 글
파티션 볼륨 확장 비활성화 문제 해결 (1) | 2021.02.21 |
---|---|
윈도우에 리눅스 터미널 설치하기 - WSL (0) | 2021.02.15 |
Highlight js를 활용한 코드 하이라이팅 (0) | 2021.02.07 |
온라인 SQL 쿼리 실행 사이트 (0) | 2021.01.30 |
사이트 정리 (0) | 2021.01.02 |