크롤링

request에서 get, post, put 등의 의미와 사용예시

필만이 2025. 4. 22. 11:15

배경

  1. 아무생각없이 request로 크롤링을하다가, request의 사용방법이 궁금해졌다.
  2. 각 메서드(get, post, put )들의 사용방법조차 모르고 있다는 점을 깨달음.

내용

✅ 1. GET

  • 의미: 서버로부터 데이터를 조회
  • 특징: 서버 상태나 리소스를 변경하지 않음 (안전하고 반복 호출 가능)
  • 주요 사용 예시:
    • 게시글 목록 조회
    • 특정 상품 정보 조회
  • 예:
    requests.get('https://api.example.com/posts')

✅ 2. POST

  • 의미: 서버에 새로운 리소스를 생성하거나 데이터 전송
  • 특징: 서버 상태가 변함, 요청 본문에 데이터 포함
  • 주요 사용 예시:
    • 회원가입
    • 로그인
    • 게시글 작성
    • 댓글 작성
  • 예:
    requests.post('https://api.example.com/users', json={'name': '홍길동', 'email': 'test@example.com'})
    • 실제로는 post로 로그인이 안돼 셀레니움을 써야하는경우가 많다.

✅ 3. PUT

  • 의미: 서버의 기존 리소스를 전체 덮어쓰기(수정)
  • 특징: 지정된 리소스를 통째로 업데이트. 없으면 새로 만들 수도 있음 (idempotent)
  • 주요 사용 예시:
    • 사용자 정보 전체 수정 (이름, 이메일, 비밀번호 등 모두 변경)
  • 예:
    requests.put('https://api.example.com/users/123', json={'name': '홍길동', 'email': 'new@example.com'})

✅ 4. PATCH

  • 의미: 리소스의 일부만 수정
  • 특징: PUT보다 더 가볍고 효율적. 일부 필드만 변경 가능
  • 주요 사용 예시:
    • 비밀번호만 수정
    • 상태(status)만 변경
  • 예:
    requests.patch('https://api.example.com/users/123', json={'email': 'change@example.com'})

✅ 5. DELETE

  • 의미: 서버의 리소스를 삭제
  • 특징: 삭제 성공 시 일반적으로 응답 본문 없음 (204 No Content)
  • 주요 사용 예시:
    • 게시물 삭제
    • 유저 탈퇴
  • 예:
    requests.delete('https://api.example.com/posts/99')

✅ 6. HEAD

  • 의미: GET과 동일하지만, 본문 없이 헤더만 요청
  • 특징: 데이터 유무 확인, 다운로드 사전 체크에 사용
  • 주요 사용 예시:
    • 파일 유효성 검사
    • 캐시 확인
  • 예:
    requests.head('https://example.com/image.png')

✅ 7. OPTIONS

  • 의미: 서버가 지원하는 메서드, 옵션 등을 사전 조회
  • 특징: CORS 사전 요청(Preflight Request)으로 자주 사용됨
  • 주요 사용 예시:
    • 서버가 POST, PUT, DELETE를 지원하는지 확인
  • 예:
    requests.options('https://api.example.com/posts')

'크롤링' 카테고리의 다른 글

CSRF 토큰과 DOM  (1) 2025.04.22
로그인시 토큰을 요청하는 이유  (0) 2025.04.22
Post 로그인이 안됐던 이유  (1) 2025.04.22
크롤링 시 HEADERS를 활용해 사람인척 하기  (1) 2025.02.12