HTTP Request 노드 문서
HTTP Request 노드는 n8n에서 가장 다재다능한 노드 중 하나입니다. 이 노드를 사용하면 REST API 호출을 생성하게 됩니다. HTTP 요청을 생성하는 방법은 두 가지입니다: 노드 파라미터를 구성하거나 curl 명령어를 가져오기합니다.
HTTP Request 노드는 n8n에서 가장 다재다능한 노드 중 하나입니다. REST API를 제공하는 모든 앱 또는 서비스에서 데이터를 쿼리하기 위한 HTTP 요청을 만들 수 있습니다. HTTP Request 노드를 일반 노드로 사용하거나 AI 에이전트에 연결하여 툴{ data-preview }로 사용할 수도 있습니다.
이 노드를 사용하면 REST API 호출을 생성하게 됩니다. 기본적인 API 용어와 개념에 대한 이해가 필요합니다.
HTTP 요청을 생성하는 방법은 두 가지입니다: 노드 파라미터를 구성하거나 curl 명령어를 가져오기합니다.
인증 설정에 대한 안내는 HTTP Request 자격 증명을 참조하세요.
노드 파라미터#
Method#
요청에 사용할 메서드를 선택합니다:
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
URL#
사용할 엔드포인트를 입력합니다.
Authentication#
사용 가능한 경우 Predefined Credential Type 옵션을 사용하는 것을 권장합니다. 일반 자격 증명 구성에 비해 자격 증명을 보다 쉽게 설정하고 관리할 수 있습니다.
사전 정의된 자격 증명#
n8n이 지원하는 연동에 대한 자격 증명으로, 내장 노드와 커뮤니티 노드 모두 포함됩니다. 추가 설정 없이 커스텀 작업에 Predefined Credential Type을 사용하세요. 자세한 내용은 Custom API operations를 참조하세요.
일반 자격 증명#
n8n이 지원하지 않는 연동에 대한 자격 증명입니다. 필요한 API 엔드포인트, 파라미터, 인증 방법 등 인증 프로세스를 수동으로 구성해야 합니다.
다음 방법 중 하나를 선택할 수 있습니다:
- Basic auth
- Custom auth
- Digest auth
- Header auth
- OAuth1 API
- OAuth2 API
- Query auth
각 자격 증명 유형 설정에 대한 자세한 내용은 HTTP request 자격 증명을 참조하세요.
Send Query Parameters#
쿼리 파라미터는 HTTP 요청의 필터 역할을 합니다. 상호작용하는 API가 이를 지원하고 요청에 필터가 필요한 경우 이 옵션을 켜세요.
다음 옵션 중 하나를 사용하여 쿼리 파라미터를 지정합니다:
- Using Fields Below: Query Parameters의 Name/Value 쌍을 입력합니다. 더 많은 쿼리 파라미터 이름/값 쌍을 추가하려면 Add Parameter를 선택합니다. 이름은 필터링할 필드의 이름이고, 값은 필터 값입니다.
- Using JSON: JSON을 입력하여 쿼리 파라미터를 정의합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
Send Headers#
이 파라미터를 사용하여 요청과 함께 헤더를 전송합니다. 헤더에는 요청에 대한 메타데이터 또는 컨텍스트가 포함됩니다.
다음 옵션 중 하나를 사용하여 헤더를 지정합니다:
- Using Fields Below: Header Parameters의 Name/Value 쌍을 입력합니다. 더 많은 헤더 파라미터 이름/값 쌍을 추가하려면 Add Parameter를 선택합니다. 이름은 설정할 헤더이고, 값은 해당 헤더에 전달할 값입니다.
- Using JSON: JSON을 입력하여 헤더 파라미터를 정의합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
Send Body#
API 요청과 함께 바디를 전송해야 하는 경우 이 옵션을 켜세요.
그런 다음 전송하려는 바디 콘텐츠 형식에 가장 적합한 Body Content Type을 선택합니다.
Form URLencoded#
이 옵션을 사용하여 바디를 application/x-www-form-urlencoded로 전송합니다.
다음 옵션 중 하나를 사용하여 바디를 지정합니다:
- Using Fields Below: Body Parameters의 Name/Value 쌍을 입력합니다. 더 많은 바디 파라미터 이름/값 쌍을 추가하려면 Add Parameter를 선택합니다. 이름은 폼 필드 이름이고, 값은 해당 필드에 설정할 값입니다.
- Using Single Field: 단일 Body 파라미터에 이름/값 쌍을
fieldname1=value1&fieldname2=value2형식으로 입력합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
Form-Data#
이 옵션을 사용하여 바디를 multipart/form-data로 전송합니다.
Parameter Type을 선택하여 Body Parameters를 구성합니다:
- Form Data를 선택하면 Name/Value 쌍을 입력합니다.
- n8n Binary File을 선택하면 노드가 액세스할 수 있는 파일에서 바디를 가져옵니다.
- Name: 설정할 필드의 ID를 입력합니다.
- Input Data Field Name: 처리할 바이너리 파일 데이터가 포함된 수신 필드의 이름을 입력합니다.
더 많은 파라미터를 추가하려면 Add Parameter를 선택합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
JSON#
이 옵션을 사용하여 바디를 JSON으로 전송합니다.
다음 옵션 중 하나를 사용하여 바디를 지정합니다:
- Using Fields Below: Body Parameters의 Name/Value 쌍을 입력합니다. 더 많은 바디 파라미터 이름/값 쌍을 추가하려면 Add Parameter를 선택합니다.
- Using JSON: JSON을 입력하여 바디를 정의합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
n8n Binary File#
이 옵션을 사용하여 n8n에 저장된 파일의 내용을 바디로 전송합니다.
파일이 포함된 수신 필드의 이름을 Input Data Field Name으로 입력합니다.
파일 형식에 대한 자세한 안내는 서비스의 API 문서를 참조하세요.
Raw#
이 옵션을 사용하여 바디에 원시 데이터를 전송합니다.
- Content Type: 원시 바디 콘텐츠에 사용할
Content-Type헤더를 입력합니다. MIME 콘텐츠 유형의 전체 목록은 IANA 미디어 유형 문서를 참조하세요. - Body: 전송할 원시 바디 콘텐츠를 입력합니다.
자세한 안내는 서비스의 API 문서를 참조하세요.
노드 옵션#
Add Option을 선택하여 이 옵션들을 확인하고 선택합니다. 별도로 명시되지 않는 한 옵션은 모든 파라미터에 사용 가능합니다.
Array Format in Query Parameters#
이 옵션은 Send Query Parameters를 켰을 때만 사용 가능합니다.
쿼리 파라미터에 포함된 배열의 형식을 제어하는 옵션입니다. 다음 옵션 중 하나를 선택합니다:
- No Brackets: 배열의 각 항목에 대해 name=value 형식으로 표현합니다. 예:
foo=bar&foo=qux. - Brackets Only: 각 배열 이름 뒤에 대괄호를 추가합니다. 예:
foo[]=bar&foo[]=qux. - Brackets with Indices: 각 배열 이름 뒤에 인덱스 값이 있는 대괄호를 추가합니다. 예:
foo[0]=bar&foo[1]=qux.
어떤 옵션을 사용할지는 서비스의 API 문서를 참조하세요.
Batching#
많은 수의 입력 항목을 배치로 처리하는 방법을 제어합니다:
- Items per Batch: 각 배치에 포함할 입력 항목 수를 입력합니다.
- Batch Interval: 각 요청 배치 사이의 대기 시간을 밀리초 단위로 입력합니다. 배치 간격 없이 처리하려면 0을 입력합니다.
Ignore SSL Issues#
기본적으로 n8n은 SSL 인증서 유효성 검사가 성공한 경우에만 응답을 다운로드합니다. SSL 인증서 유효성 검사가 실패해도 응답을 다운로드하려면 이 옵션을 켜세요.
Lowercase Headers#
헤더 이름을 소문자로 변환(켜짐, 기본값)할지 여부를 선택합니다.
Redirects#
리디렉션을 따를지(기본값 켜짐) 여부를 선택합니다. 켜짐으로 설정하면 Max Redirects에서 요청이 따를 최대 리디렉션 수를 입력합니다.
Response#
예상 API 응답에 대한 세부 정보를 설정하는 옵션입니다:
- Include Response Headers and Status: 기본적으로 노드는 바디만 반환합니다. 바디뿐만 아니라 전체 응답(헤더와 응답 상태 코드)을 반환하려면 이 옵션을 켜세요.
- Never Error: 기본적으로 노드는 응답이 2xx 코드를 반환할 때만 성공을 반환합니다. 반환된 코드에 관계없이 성공을 반환하려면 이 옵션을 켜세요.
- Response Format: 데이터가 반환되는 형식을 선택합니다:
- Autodetect (기본값): 노드가 반환된 데이터를 기반으로 응답을 자동으로 감지하고 형식을 지정합니다.
- File: 이 옵션을 선택하면 응답을 파일에 저장합니다. Put Output in Field에 파일을 반환할 필드 이름을 입력합니다.
- JSON: 이 옵션을 선택하면 응답을 JSON으로 형식화합니다.
- Text: 이 옵션을 선택하면 응답을 일반 텍스트로 형식화합니다. Put Output in Field에 파일을 반환할 필드 이름을 입력합니다.
Pagination#
페이지네이션을 사용하여 결과를 페이지별로 처리합니다. API가 단일 호출로 반환하기에 너무 큰 쿼리 결과를 처리할 때 유용합니다.
페이지네이션 옵션 중 일부는 사용 중인 API가 반환하는 데이터에 대한 지식이 필요합니다. 페이지네이션을 설정하기 전에 API 문서를 확인하거나, 페이지네이션 없이 API 호출을 수행하여 반환되는 데이터를 확인하세요.
페이지네이션 이해하기
페이지네이션은 대용량 데이터 집합을 여러 페이지로 분할하는 것을 의미합니다. 각 페이지의 데이터 양은 설정한 한도에 따라 다릅니다.
예를 들어, /users라는 엔드포인트에 API 호출을 합니다. API는 300명의 사용자 정보를 보내려 하지만, 이는 API가 단일 응답으로 보내기에 너무 많은 데이터입니다.
API가 페이지네이션을 지원하는 경우 데이터를 점진적으로 가져올 수 있습니다. 이를 위해 페이지네이션 한도와 API에게 보낼 페이지를 알려주는 페이지 번호 또는 URL과 함께 /users를 호출합니다. 이 예시에서 한도 10, 0페이지부터 시작한다고 가정합니다. API는 응답에서 처음 10명의 사용자를 보냅니다. 그런 다음 다음 10개의 결과를 얻기 위해 페이지 번호를 1 증가시켜 API를 다시 호출합니다.
페이지네이션 설정을 구성합니다:
- Pagination Mode:
- Off: 페이지네이션을 끕니다.
- Update a Parameter in Each Request: 각 요청에 대한 파라미터를 동적으로 설정해야 할 때 사용합니다.
- Response Contains Next URL: API 응답에 다음 페이지의 URL이 포함되어 있을 때 사용합니다. 표현식을 사용하여 Next URL을 설정합니다.
예시 설정은 HTTP Request 노드 쿡북 | 페이지네이션을 참조하세요.
n8n은 페이지네이션을 사용할 때 HTTP 노드 요청 및 응답을 처리하기 위한 내장 변수를 제공합니다:
| 변수 | 설명 |
|---|---|
$pageCount |
페이지네이션 카운트. 노드가 가져온 페이지 수를 추적합니다. |
$request |
HTTP 노드가 전송한 요청 객체. |
$response |
HTTP 호출의 응답 객체. $response.body, $response.headers, $response.statusCode를 포함합니다. body와 headers의 내용은 API가 전송하는 데이터에 따라 달라집니다. |
API마다 페이지네이션을 다르게 구현합니다. 사용 중인 API의 문서를 확인하여 세부 사항을 파악하세요. 다음과 같은 사항을 확인해야 합니다:
- API가 다음 페이지의 URL을 제공하는가?
- 페이지 크기 또는 페이지 번호에 API별 제한이 있는가?
- API가 반환하는 데이터의 구조.
Proxy#
HTTP 프록시를 지정해야 하는 경우 이 옵션을 사용합니다.
요청이 사용해야 할 Proxy를 입력합니다. 이 설정은 HTTP_PROXY, HTTPS_PROXY 또는 ALL_PROXY 환경 변수로 정의된 전역 설정보다 우선 적용됩니다.
Timeout#
서버가 응답 헤더를 보낼 때까지(그리고 응답 바디를 시작할 때까지) 노드가 대기해야 하는 시간을 설정하는 옵션입니다. 초기 응답에 대해 이 값을 초과하는 요청은 중단됩니다.
대기할 Timeout 시간을 밀리초 단위로 입력합니다.
툴 전용 옵션#
다음 옵션은 AI 에이전트에 툴{ data-preview }로 연결된 경우에만 사용 가능합니다.
Optimize Response#
LLM에 전달되는 데이터 양을 줄이기 위해 툴 응답을 최적화할지 여부입니다. 응답을 최적화하면 비용을 절감하고 LLM이 중요하지 않은 세부 정보를 무시하도록 도와줄 수 있으며, 종종 더 나은 결과를 제공합니다.
응답을 최적화할 때 예상 응답 유형을 선택하면 구성할 수 있는 다른 옵션이 결정됩니다. 지원되는 응답 유형은 다음과 같습니다:
JSON#
JSON 응답을 예상할 때 다음 선택 항목으로 응답으로 사용할 JSON 데이터의 부분을 구성할 수 있습니다:
- Field Containing Data: 이 필드는 관련 데이터가 포함된 JSON 객체의 특정 부분을 식별합니다. 전체 응답을 사용하려면 비워두면 됩니다.
- Include Fields: 응답 객체에서 원하는 필드를 선택하는 방법입니다. 세 가지 선택 항목이 있습니다:
- All: 응답 객체의 모든 필드를 포함합니다.
- Selected: 아래에 지정된 필드만 포함합니다.
- Fields: 응답에 포함할 필드의 쉼표로 구분된 목록입니다. 중첩 필드를 지정하는 데 점 표기법을 사용할 수 있습니다. 입력 패널에서 필드를 드래그하여 필드 목록에 추가할 수 있습니다.
- Exclude: 아래에 지정된 필드를 제외한 모든 필드를 포함합니다.
- Fields: 응답에서 제외할 필드의 쉼표로 구분된 목록입니다. 중첩 필드를 지정하는 데 점 표기법을 사용할 수 있습니다. 입력 패널에서 필드를 드래그하여 필드 목록에 추가할 수 있습니다.
HTML#
HTML을 예상할 때 LLM에 관련된 HTML 문서의 부분을 식별하고 다음 옵션으로 응답을 최적화할 수 있습니다:
- Selector (CSS): 응답 HTML에 포함할 특정 요소 또는 요소 유형입니다. 기본적으로
body요소를 사용합니다. - Return Only Content: HTML 태그와 속성을 응답에서 제거하고 실제 콘텐츠만 남길지 여부입니다. 이렇게 하면 토큰이 적게 사용되고 모델이 이해하기 쉬울 수 있습니다.
- Elements To Omit: 콘텐츠 추출 시 제외할 CSS 선택자의 쉼표로 구분된 목록입니다.
- Truncate Response: 토큰 절약을 위해 응답 크기를 제한할지 여부입니다.
- Max Response Characters: HTML 응답에 포함할 최대 문자 수입니다. 기본값은 1000입니다.
Text#
일반 Text 응답을 예상할 때 다음 옵션으로 결과를 최적화할 수 있습니다:
- Truncate Response: 토큰 절약을 위해 응답 크기를 제한할지 여부입니다.
- Max Response Characters: HTML 응답에 포함할 최대 문자 수입니다. 기본값은 1000입니다.
curl 명령어 가져오기#
curl은 URL로 데이터를 전송하기 위한 명령줄 도구 및 라이브러리입니다.
curl을 사용하여 REST API를 호출할 수 있습니다. 사용하려는 서비스의 API 문서에 curl 예시가 있다면, 해당 예시를 문서에서 복사하여 n8n에 붙여넣어 HTTP Request 노드를 구성할 수 있습니다.
curl 명령어 가져오기:
이 옵션은 항상 파라미터 값을 문자열로 가져옵니다. 요청에서 숫자와 불리언의 유형을 유지하려면 Using Fields Below를 Using JSON으로 전환하고 파라미터가 포함된 JSON 객체를 붙여넣으세요.
- HTTP Request 노드의 Parameters 탭에서 Import cURL을 선택합니다. Import cURL command 모달이 열립니다.
- 텍스트 상자에 curl 명령어를 붙여넣습니다.
- Import를 선택합니다. n8n이 요청 구성을 노드 필드에 로드합니다. 이렇게 하면 기존 구성이 덮어쓰여집니다.
템플릿 및 예시#
이 노드의 워크플로 템플릿은 n8n 워크플로 템플릿 갤러리에서 확인할 수 있습니다.
자주 발생하는 문제#
자주 묻는 질문이나 문제 및 해결 방법은 자주 발생하는 문제를 참조하세요.
