JSON 요청·인증·파일 업로드·재시도 등 자주 하는 HTTP 작업을 curl과 fetch 코드로 정리했습니다.
429 Too Many Requests(속도 제한) 응답을 만났을 때 잠시 기다렸다가 지수 백오프로 재시도하는 레시피입니다.
느리거나 응답 없는 서버에 무한정 매달리지 않도록 요청에 타임아웃을 거는 레시피입니다. 기본값은 대부분 무한대라 반드시 명시해야 합니다.
`Accept-Encoding`으로 압축된 응답을 요청해 전송량을 크게 줄이는 레시피입니다. 큰 JSON·텍스트 응답에서 특히 효과적입니다.
서버가 하나의 열린 연결로 이벤트를 계속 밀어 보내는 Server-Sent Events(SSE, `text/event-stream`)를 소비하는 레시피입니다.
GraphQL 엔드포인트에 쿼리와 변수를 담아 POST하는 레시피입니다. 하나의 요청으로 필요한 필드만 정확히 받아옵니다.
OAuth 2.0·JWT 등에서 발급한 액세스 토큰을 `Authorization: Bearer` 헤더로 보내는 레시피입니다. 오늘날 가장 흔한 API 인증 방식입니다.
사용자 이름과 비밀번호를 `user:pass` 형태로 base64 인코딩해 보내는 HTTP Basic 인증 레시피입니다.
이전에 받은 ETag를 `If-None-Match`로 되돌려 보내, 리소스가 바뀌지 않았으면 304 Not Modified만 받아 대역폭을 아끼는 조건부 GET 레시피입니다.
이미 받은 만큼 이후 바이트만 요청해 끊긴 다운로드를 이어받는 레시피입니다. `Range` 헤더와 206 Partial Content를 활용합니다.
응답 본문을 내려받지 않고 상태 코드와 응답 헤더만 확인하는 레시피입니다. 캐시 정책·콘텐츠 타입·리다이렉트 점검에 유용합니다.
요청·응답의 실제 헤더와 TLS 핸드셰이크까지 자세히 출력해 문제의 원인을 눈으로 확인하는 디버깅 레시피입니다.
자체 서명 인증서를 쓰는 로컬 개발 서버에 접속하기 위해 TLS 인증서 검증을 건너뛰는 레시피입니다. 반드시 개발 환경에서만 사용하세요.
브라우저가 크로스 오리진 요청 전에 보내는 CORS 프리플라이트(OPTIONS)를 curl로 재현해, 서버 CORS 설정을 검증하는 레시피입니다.
요청의 각 단계(DNS·연결·TLS·첫 바이트·전체) 소요 시간을 측정해 지연의 원인을 구간별로 파악하는 레시피입니다.
`multipart/form-data`로 파일과 텍스트 필드를 함께 업로드하는 레시피입니다. 브라우저 파일 업로드 폼과 같은 방식입니다.
원격 파일을 받아 디스크에 저장하는 레시피입니다. 이미지·PDF·바이너리 등 모든 종류의 파일에 적용됩니다.
GET 요청으로 서버에서 JSON 데이터를 받아 파싱하는 가장 기본적인 레시피입니다. 읽기 전용이며 본문을 보내지 않습니다.
요청 본문에 JSON을 담아 POST로 새 리소스를 생성하는 레시피입니다. 성공 시 보통 201 Created와 생성된 리소스를 돌려받습니다.
PUT으로 리소스 전체를 새 표현으로 교체하는 레시피입니다. 보낸 본문이 곧 리소스의 완전한 새 상태가 됩니다.
PATCH로 리소스의 일부 필드만 부분 수정하는 레시피입니다. 바꾸려는 필드만 보내면 나머지는 그대로 유지됩니다.
DELETE 메서드로 지정한 리소스를 삭제하는 레시피입니다. 성공 시 보통 본문 없는 204 No Content를 받습니다.
3xx 리다이렉트 응답의 `Location` 헤더를 따라 최종 목적지까지 이동하는 방법과, 반대로 리다이렉트를 따르지 않고 관찰하는 방법을 다룹니다.
요청에 임의의 커스텀 헤더를 추가하는 레시피입니다. 요청 추적 ID, API 버전, 언어 선호 등을 전달할 때 씁니다.
서버가 보낸 쿠키를 저장했다가 이후 요청에 자동으로 실어 보내는 레시피입니다. 세션 기반 로그인 흐름에 필수입니다.
`application/x-www-form-urlencoded`로 폼 데이터를 보내는 레시피입니다. 전통적인 HTML 폼 전송과 OAuth 토큰 엔드포인트 등에서 씁니다.