네트워크 관리

리눅스 curl 명령어 사용법: 간편하고 빠른 웹 데이터 요청 및 송신

커맨드프로 2024. 3. 27. 09:12

리눅스 curl 명령어 사용법: 간편하고 빠른 웹 데이터 요청 및 송신

 

 

안녕하세요! 오늘은 리눅스 curl 명령어를 사용하여 웹 데이터를 요청하고 송신하는 방법에 대해 알아보겠습니다. curl은 리눅스 커맨드 라인에서 URL을 통해 데이터를 가져오거나 보내는 강력한 도구로, 이 가이드를 통해 초보자도 쉽게 활용할 수 있도록 안내해 드리겠습니다. 아래에서 예제 코드와 함께 각 기능을 자세히 설명하겠습니다.

 

목차

curl에 대하여 함께 알아볼 내용들은 다음과 같습니다.

  • curl 명령어로 기본적인 데이터 요청하는 방법
  • 명령어 실행 결과 데이터를 저장하는 방법
  • HTTP 메서드를(http method) 지정하는 방법
  • HTTP 요청 헤더를(http request header) 지정하는 방법
  • JSON data를 사용해서 HTTP POST 요청 보내는 방법
  • SSL 인증서를 무시하고 실행하는 방법
  • 요청 제한 시간을(timeout) 설정하는 방법
  • 응답 헤더값을(response header) 조회하는 방법

 

curl 명령어로 기본적인 데이터 요청:

기본적으로 curl 뒤에 URL을 지정하는 방식으로 사용합니다.

curl https://example.com/data

 

이 명령은 지정된 URL에서 데이터를 가져옵니다.

결과 데이터 저장하기:

curl https://example.com/data -o data.txt

 

이 명령은 URL에서 가져온 데이터를 지정한 파일명인 data.txt로 저장합니다.

HTTP 메서드 지정하기:

HTTP 메서드(method)를 지정하기 위해서는 -X 옵션을 사용합니다.

curl -X GET https://example.com/data

 

이 명령을 사용하여 HTTP GET 요청을 보냅니다.

HTTP 요청 헤더 지정하기:

curl -H "Authorization: Bearer token" https://example.com/data

 

이 명령은 -H 옵션을 사용하여 HTTP 요청에 특정 헤더를 추가합니다. 여기서는 Authorization 헤더에 Bearer 토큰을 포함시킵니다. 이 토큰은 인증된 사용자를 식별하는 데 사용됩니다.

curl 명령어로 HTTP POST 요청 보내기 (JSON 데이터):

POST 메서드를 지정하기 위해 -X 옵션을 사용했고 JSON 형식을 지정하기 위해 -H 옵션으로 헤더를 설정했습니다. -d 옵션은 요청 데이터를 지정하는 용도로 사용합니다.

curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' https://example.com/data

 

이 명령은 HTTP POST 요청을 보내는데, 여기서는 JSON 형식의 데이터를 전송합니다. 이 경우 Content-Type 헤더가 application/json으로 설정되어 있습니다.

HTTP POST 요청 보내기 (파라미터):

curl -X POST -d "param1=value1&param2=value2" https://example.com/data

 

이 명령은 HTTP POST 요청을 보내는데, 여기서는 파라미터를 사용하여 데이터를 전송합니다. 이 데이터는 URL 인코딩되어 전송됩니다.

SSL 인증서 무시하기:

curl -k https://example.com/data

 

이 명령은 SSL 인증서를 무시하고 요청을 보냅니다.

요청 시간 제한 설정하기:

curl --max-time 10 https://example.com/data

 

이 명령은 요청에 대한 시간 제한을 설정합니다. 여기서는 10초로 설정되어 있습니다.

응답 헤더 내용 조회하기:

curl -i https://example.com/data

HTTP/2 200
date: Fri, 01 Apr 2024 12:00:00 GMT
content-type: application/json
content-length: 1234
server: Apache/2.4.38 (Ubuntu)
x-powered-by: Express
cache-control: no-cache

 

이 명령은 요청에 대한 응답 헤더를 함께 출력합니다. 이 헤더에는 응답의 상태 코드, 서버 정보 등이 포함됩니다.

위의 예시에서, 응답은 HTTP/2 프로토콜을 사용하고 있으며 상태 코드는 200입니다. Date 헤더는 응답이 수신된 날짜와 시간을 나타냅니다. Content-Type 헤더는 응답의 콘텐츠 유형이 JSON임을 나타내며 Content-Length 헤더는 응답 데이터의 크기를 나타냅니다. 나머지 헤더는 해당 서버 및 캐시 제어와 관련된 정보를 포함하고 있습니다.

참고하면 좋은 내용들

리눅스에서 curl 로 API를 호출하려면 어떻게 해야할까요? 아래 페이지에서 API 통신에 대하여 더욱 다양한 내용들을 확인할 수 있습니다.

https://www.redhat.com/sysadmin/use-curl-api

 

Use curl to interact with an API

Learn how to use command line gem curl to do more than simple file transfer.

www.redhat.com

 

맺음말

이제 리눅스 curl 명령어를 사용하여 웹 데이터를 손쉽게 요청하고 처리할 수 있습니다! 더 많은 기능과 옵션을 탐색하고 싶다면 curl 공식 문서를 참고해보시고 저에게도 알려주시면 감사하겠습니다. 궁금한 점이 있거나 도움이 필요하시면 언제든지 문의해주세요.