배경
- 아무생각없이 request로 크롤링을하다가, request의 사용방법이 궁금해졌다.
- 각 메서드(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 |