- cURL / curl
- 오픈소스 명령줄 도구이자 libcurl 라이브러리. 명령줄에서 URL을 통해 HTTP/HTTPS/FTP 등 프로토콜 요청을 전송하기 위한 것으로, 개발자가 API를 디버깅하는 가장 일반적인 도구.
- HTTP 메서드
- HTTP 요청 동작. 일반적인 것: GET(읽기), POST(생성), PUT(전체 업데이트), PATCH(부분 업데이트), DELETE(삭제), HEAD(헤더 가져오기), OPTIONS(서버 기능 조회).
- 요청 헤더(Header)
- HTTP 요청의 메타데이터 키-값 쌍. Content-Type, Authorization, User-Agent, 쿠키, Accept 등. curl에서 -H/--header로 지정.
- 요청 본문(Body)
- HTTP 요청의 데이터 부분. POST/PUT/PATCH에서 자주 사용되며 curl에서 -d/--data/--data-binary/-F로 지정. 일반적인 형식: JSON, form-urlencoded, multipart/form-data.
- Content-Type
- 본문의 미디어 유형을 나타내는 요청/응답 헤더. application/json은 JSON, application/x-www-form-urlencoded는 URL 인코딩 폼, multipart/form-data는 파일 업로드 폼.
- Basic 인증
- HTTP 기본 인증. Authorization: Basic base64(user:pass) 헤더로 사용자 이름과 비밀번호를 전달합니다. curl에서 -u user:pass로 지정.
- Bearer Token
- 토큰 기반 인증 방식. Authorization: Bearer <token> 헤더로 전달하며 JWT/OAuth2에서 일반적으로 사용.
- User-Agent
- 클라이언트 유형(브라우저/크롤러/스크립트)을 식별하는 요청 헤더. curl은 기본적으로 "curl/버전번호"를 전송합니다. 많은 웹사이트가 비브라우저 UA를 차단하므로 -A로 지정하는 것이 일반적.
- 쿠키(Cookie)
- 서버가 Set-Cookie로 전송하고 브라우저가 후속 요청에서 Cookie 헤더로 반환하는 키-값 쌍으로 세션 유지에 사용. curl -b로 쿠키 전송, -c로 쿠키 저장.
- Referer
- 현재 요청의 출처 페이지 URL을 나타내는 요청 헤더. 일부 핫링크 방지/CSRF 검사에서 확인. curl -e로 설정.
- 리디렉션(3xx)
- 서버가 301/302/303/307/308 상태 코드를 반환하여 브라우저에 새 URL로 이동하도록 지시하는 것. curl은 기본적으로 따라가지 않으며 -L/--location을 추가하면 따라갑니다.
- --compressed
- curl 옵션. Accept-Encoding: deflate, gzip 헤더를 자동으로 추가하고 응답을 자동으로 압축 해제. 설정하지 않으면 응답이 깨진 압축 데이터가 될 수 있음.
- -k/--insecure
- curl 옵션. HTTPS 인증서 검증을 건너뜁니다. 자체 서명 인증서 테스트 환경에서만 사용하고 프로덕션 환경에서는 사용 금지.
- fetch API
- 브라우저 네이티브 JavaScript HTTP 요청 API. Promise를 반환하며 모든 모던 브라우저에서 지원.
- Axios
- Promise 기반 인기 HTTP 클라이언트 라이브러리. 브라우저와 Node.js 범용, 자동 JSON 직렬화, 인터셉터, 타임아웃 취소.
- OkHttp
- Square사에서 만든 Java/Android HTTP 클라이언트 라이브러리. 고성능, HTTP/2 지원, 연결 풀, 투명한 GZIP.
- HttpClient(.NET)
- C#/.NET에서 권장되는 HTTP 클라이언트. System.Net.Http 네임스페이스, .NET Core/.NET 5+ 표준 API.
- Invoke-RestMethod
- PowerShell 3.0+ 내장 HTTP 요청 cmdlet. JSON/XML 응답을 자동으로 PowerShell 객체로 파싱.