curl 공부 커리큘럼

m0d0ri205·2024년 12월 4일
0

curl 학습 커리큘럼 (실습 중심)


1. 초급: curl의 기본 동작 이해

목표: curl의 기본 동작 익히기

실습 내용:

  1. 간단한 GET 요청 실습

    curl https://example.com
    curl https://jsonplaceholder.typicode.com/todos/1
  2. 파일 다운로드

    curl -O https://speed.hetzner.de/100MB.bin
    curl -o renamed_file.bin https://speed.hetzner.de/100MB.bin
  3. HTTP 헤더만 가져오기

    curl -I https://example.com
  4. 실습 과제

    • https://httpbin.org/get에 GET 요청을 보내고 결과를 확인하세요.
    • https://speed.hetzner.de/에서 1GB 파일을 다운로드하세요.

2. 중급: 데이터 전송과 요청 조작

목표: 서버와의 데이터 전송 방법 익히기

실습 내용:

  1. POST 요청 실습

    curl -X POST -d "name=John&age=30" https://httpbin.org/post
    curl -X POST -H "Content-Type: application/json" -d '{"username":"john","password":"1234"}' https://httpbin.org/post
  2. 헤더 조작

    curl -H "Authorization: Bearer YOUR_TOKEN" https://httpbin.org/headers
  3. 쿠키 관리

    curl -c cookies.txt https://httpbin.org/cookies/set?name=value
    curl -b cookies.txt https://httpbin.org/cookies
  4. 실습 과제

    • https://httpbin.org/post에 JSON 데이터를 전송하고 서버 응답을 분석하세요.
    • https://httpbin.org/headers에 Authorization 헤더를 추가해 요청하세요.

3. 고급: 디버깅 및 네트워크 보안

목표: 네트워크 요청 디버깅과 SSL/TLS 활용

실습 내용:

  1. 디버깅 네트워크 요청

    curl -v https://example.com
    curl -L https://httpbin.org/redirect/3
  2. SSL/TLS 옵션

    curl -k https://self-signed.badssl.com/
    curl --cert mycert.pem https://example.com
  3. 프록시 설정

    curl -x http://proxy.example.com:8080 https://example.com
  4. 실습 과제

    • https://httpbin.org/redirect/5로 리다이렉션을 추적하며 최종 URL을 확인하세요.
    • https://badssl.com에서 SSL/TLS 설정을 조작하며 다양한 테스트를 진행하세요.

4. 전문가: 자동화 및 스크립트 활용

목표: curl을 이용해 스크립트를 작성하고 자동화

실습 내용:

  1. 다중 URL 처리

    curl -O https://example.com/file1.txt -O https://example.com/file2.txt
  2. API 상태 확인 스크립트

    curl -s -o /dev/null -w "%{http_code}" https://httpbin.org/status/200
  3. Bash 스크립트와 curl

    for url in $(cat urls.txt); do
        curl -O $url
    done
  4. JSON 응답 파싱

    curl -s https://jsonplaceholder.typicode.com/todos/1 | jq '.title'
  5. 실습 과제

    • Bash 스크립트를 작성해 5개의 URL에서 데이터를 다운로드하세요.
    • jq를 사용해 JSON 응답에서 특정 필드를 출력하세요.

5. 프로젝트: 실전 응용

목표: 실제 업무에 활용할 수 있는 프로젝트 수행

실습 내용:

  1. API 클라이언트 만들기

    curl -X GET https://jsonplaceholder.typicode.com/posts
    curl -X POST -H "Content-Type: application/json" -d '{"title":"foo","body":"bar","userId":1}' https://jsonplaceholder.typicode.com/posts
  2. 파일 업로드 자동화

    for file in /path/to/files/*; do
        curl -T $file ftp://ftp.example.com --user username:password
    done
  3. 모니터링 스크립트

    while true; do
        curl -s -o /dev/null -w "%{http_code}" https://example.com
        sleep 60
    done
  4. 실습 과제

    • GitHub API를 사용해 특정 사용자의 리포지토리 목록을 가져오세요.
    • 주기적으로 웹사이트 상태를 확인하고 문제가 발생하면 알림을 출력하세요.

6. 도전 과제: 문제 해결

  • API 호출 중 특정 오류 디버깅 (https://httpbin.org/status/500).
  • https://httpbin.org/basic-auth/user/passwd에 인증 요청.
  • 주어진 URL에서 동적 헤더를 사용하여 데이터를 가져오고 파싱하세요.

연습 사이트


이 커리큘럼을 기반으로 실습을 진행하며 스크립트와 네트워크 관련 기술을 탄탄히 다져보세요! 😊

profile
말하는 감자중.....

0개의 댓글