curl은 리눅스 환경에서 HTTP, HTTPS, FTP 등 다양한 프로토콜을 통해 데이터를 전송하거나 서버에서 데이터를 가져오는 데 사용하는 명령어입니다. 주로 API 요청을 테스트하거나, 원격 서버에서 파일을 다운로드하는 데 사용됩니다. curl은 명령줄에서 간편하게 사용할 수 있으며, 매우 강력한 옵션들을 지원해 다양한 네트워크 작업에 활용됩니다.
curl 명령어의 기본 사용법
curl [옵션] [URL]
가장 기본적인 형태는 URL에서 데이터를 가져오는 것입니다. 다운로드된 데이터는 기본적으로 표준 출력(stdout)으로 출력됩니다.
curl 사용 예시
1. 기본 GET 요청
user@linux:~/projects$ curl http://example.com
<!doctype html>
<html>
<head>
<title>Example Domain</title>
</head>
<body>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents.</p>
</body>
</html>
위 예제에서 curl은 http://example.com에 GET 요청을 보내고, 해당 URL에서 가져온 HTML 데이터를 출력합니다.
2. 파일 다운로드
user@linux:~/downloads$ curl -O http://example.com/file.zip
-O 옵션을 사용하면 URL에서 가져온 파일을 원본 이름 그대로 저장할 수 있습니다. 위 명령어는 file.zip을 현재 디렉토리에 다운로드합니다.
3. POST 요청 보내기
user@linux:~/projects$ curl -X POST -d "name=user&age=25" http://example.com/api/users
{
"success": true,
"message": "User created successfully"
}
-X POST 옵션을 사용하면 POST 요청을 보낼 수 있으며, -d 옵션을 통해 데이터를 전송할 수 있습니다. 위 명령어는 name과 age 데이터를 POST 방식으로 전송합니다.
4. 헤더 정보 확인하기
user@linux:~/projects$ curl -I http://example.com
HTTP/1.1 200 OK
Date: Sat, 05 Oct 2024 10:00:00 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
-I 옵션을 사용하면 서버로부터 받은 헤더 정보만을 출력할 수 있습니다. 이는 웹 서버가 어떻게 응답하는지 확인할 때 유용합니다.
5. JSON 데이터 전송
user@linux:~/projects$ curl -X POST -H "Content-Type: application/json" -d '{"name": "user", "age": 25}' http://example.com/api/users
{
"success": true,
"message": "User created successfully"
}
-H 옵션을 사용하여 Content-Type을 application/json으로 설정하고, -d 옵션을 통해 JSON 데이터를 서버에 전송할 수 있습니다. 이는 API 개발 및 테스트 시 자주 사용하는 방식입니다.
6. 파일 업로드
user@linux:~/projects$ curl -F "file=@/path/to/file.txt" http://example.com/upload
{
"success": true,
"message": "File uploaded successfully"
}
-F 옵션을 사용하면 multipart/form-data 형식으로 파일을 업로드할 수 있습니다. 위 명령어는 file.txt 파일을 example.com에 업로드합니다.
curl 명령어의 주요 옵션
- -O: URL에서 파일을 다운로드하여 파일로 저장
- -I: 서버로부터 받은 헤더 정보만 출력
- -X [메소드]: HTTP 메소드를 지정 (예: GET, POST, PUT, DELETE)
- -d [데이터]: POST 요청으로 전송할 데이터 지정
- -F [필드]: 파일 업로드를 위한 필드 지정
- -H: 헤더 정보를 추가
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] scp 명령어 완벽 가이드 사용법(파일 전송) (0) | 2024.10.12 |
---|---|
[리눅스] traceroute 명령어 완벽 가이드 사용법(IP 도메인 추적) (1) | 2024.10.11 |
[리눅스] nslookup 명령어 완벽 가이드 사용법(DNS 조회) (5) | 2024.10.08 |
[리눅스] netstat 명령어 완벽 가이드 사용법(네트워크 연결/포트 상태 확인) (0) | 2024.10.08 |
[리눅스] wget 명령어 완벽 가이드 사용법(웹 파일 다운로드) (0) | 2024.10.08 |
[리눅스] su 명령어 완벽 가이드 사용법(사용자 전환) (0) | 2024.10.07 |
[리눅스] whoami 명령어 완벽 가이드 사용법(로그인 사용자 확인) (0) | 2024.10.07 |
[리눅스] passwd 명령어 완벽 가이드 사용법(비밀번호 설정) (0) | 2024.10.07 |