본문 바로가기

N8N 사용법 - HTTP Request 노드 및 HTTP 메소드 이해

by Tech.Knockknows 2025. 9. 8.

HTTP Request 노드는 외부 API나 웹 서비스와 직접 통신할 수 있게 해주는 n8n의 핵심 노드예요. GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 지원해 데이터를 가져오거나 전송할 수 있습니다. 인증 방식(OAuth2, Basic Auth 등)과 헤더, 쿼리 파라미터, 바디 등을 자유롭게 설정할 수 있어 확장성이 뛰어납니다. 별도의 전용 노드가 없는 서비스도 HTTP Request 노드를 활용하면 연동이 가능해 자동화 범위가 넓어집니다. 주로 외부 API 호출, 웹훅 연계, 데이터 수집·전송 등 다양한 통합 작업에 활용됩니다.

안녕하세요, 낙노즈입니다.

이번 글에서는 지난 글에서 작성한 워크플로우에서 잠깐 사용했던 HTTP Request에 대해 자세히 알아볼게요.

 

HTTP 기본 이해

HTTP Request 노드 개요

HTTP Request 노드는 외부 사이트와 통신하는 핵심 노드예요. 메서드, URL, 쿼리 파라미터, 헤더, 바디, 인증, 타임아웃 등 옵션을 설정해서 실제 서비스와 연동할 수 있어요.

HTTP Request

HTTP 메서드 개념: GET / POST

HTTP에는 여러 메서드가 있어요. GET(조회), POST(등록/제출), PUT/PATCH(수정), DELETE(삭제)처럼요. 이 글에서는 가장 자주 쓰는 GETPOST를 중심으로 설명해요. 아래 예제를 따라 하면서 각각의 차이(데이터를 어디에 담아 보내는지, 멱등성 등)를 자연스럽게 익혀봐요.

GET

 

서버에 있는 정보를 읽어오는 용도예요. 주소 뒤에 쿼리(Query)를 붙여 값을 보내요.

예: https://www.google.com/search?q=http+method 물음표 뒤의 값이 쿼리(Query)예요.

  • 서버의 리소스를 조회할 때 써요.
  • 바디 없이 URL/쿼리로 전달하는 게 일반적이에요.
  • 멱등성, 캐싱에 적합해요. 성공 시 보통 200 OK예요.
  • 데이터 전달 방식: URL의 Query에 담아요 (주소창에 보임)

POST

 

서버에 새로운 정보를 보낼 때 써요. 실제 데이터는 요청 바디(Body)에 담겨요. URL에는 드러나지 않아서 폼 전송, 로그인, 주문 같은 작업에 자주 써요.

  • 서버에 데이터 생성/전달할 때 써요.
  • JSON, form-data 등 다양한 바디 형태를 지원해요.
  • 멱등성이 없을 수 있어요.
  • 성공 시 보통 201 Created 또는 200 OK예요.
  • 데이터 전달 방식: URL은 단순히 엔드포인트만, 실제 데이터는 Body에 담아요 (JSON, FormData 등)

httpbin.org로 기본 요청 테스트

 

https://httpbin.org는 HTTP를 테스트하기 위해 제공되는 서비스예요. 로컬에도 구성할 수 있지만,

간단한 실습을 위해 제공되는 클라우드 서비스를 이용할게요.

httpbin.org

 

GET 요청 테스트

HTTP GET Method를 통한 요청을 해볼게요. N8N 워크 플로우에서 HTTP Request 노드를 추가해주시고, 아래와 같이 설정해주세요.

  1. 노드 추가: HTTP Request
  2. Method: GET
  3. URL: https://httpbin.org/get
  4. Query: name=n8n, role=test
  5. Execute → 응답의 args, headers 확인
HTTPGET /get
Request
https://httpbin.org/get?name=n8n&role=test

N8N HTTP Request Node GET Configure

 

정상적으로 GET Method로 HTTP Request가 되어 우측의 OUTPUT에 Response된 값을 볼 수 있어요.

POST 요청 테스트

HTTP POST Method를 통한 요청을 해볼게요. 이전 GET 실습 시 추가한 HTTP Request Node의 설정만 아래와 같이 바꿔주세요.

  1. Method: POST, URL: https://httpbin.org/post
  2. Body: JSON, {"username":"n8n","role":"tester"}
  3. Headers: Content-Type: application/json (자동 설정일 수 있어요)
  4. Execute → 응답의 json 필드에서 바디 확인
HTTPPOST /post
Request
POST https://httpbin.org/post
Content-Type: application/json

{"username":"n8n","role":"tester"}

정상적으로 POST Method로 HTTP Request가 되어 우측의 OUTPUT에 Response된 값을 볼 수 있어요.

인증과 보안 테스트

인증 (Basic / Bearer)

일부 웹 서비스의 APi를 사용하기 위해서 인증을 수행하는 경우가 있어요. 간단하게 API Key로 인증하는 경우도 있지만,

ID/PW 또는 토큰 기반으로 인증해야할 수도 있어요. 그래서 이번에는 N8N에서 인증이 필요한 API를 만든 후 테스트해볼게요. 

 

우선 Basic Auth와 Bearer Token에 대해 알아볼게요.

🔒 Basic Auth(가장 단순한 방식)
  • 아이디/비밀번호를 Base64로 인코딩해 Authorization: Basic ... 헤더에 담아요.
  • 구현이 간단하지만, 항상 HTTPS에서만 써야 안전해요.
  • 작은 내부 API나 간단한 테스트에 자주 써요.
🔑 Bearer Token(토큰 기반 인증)
  • 서버가 발급한 토큰 문자열Authorization: Bearer <토큰>으로 보냅니다.
  • 아이디/비밀번호 대신 토큰으로 인증하므로, 만료시간/권한 등을 분리해 보안과 유연성을 높일 수 있어요.
  • JWT(JSON Web Token)를 Bearer로 쓰는 경우가 많아요:
    • 형태: header.payload.signature (각각 Base64URL 인코딩)
    • payload 예시: 사용자 ID, 권한(scope/role), exp(만료 시각) 등
    • 검증: 서버(또는 인증 서버)가 서명(signature)을 확인해 위조 여부를 검증해요.
  • 대부분의 외부 API(OAuth2 계열)에서 표준처럼 사용돼요.

N8N 자격증명(인증) 추가 및 테스트

이제 실제 인증이 필요한 엔드포인트를 시험하기 전에, N8N에 자격증명을 등록해둘게요.


Basic Auth Credential 추가 

 
  1. 좌측 Credentials  New  HTTP Basic Auth
  2. Username/Password 입력
  3. 상단 생성할 Basic Auth 이름 지정 -> Save

Add new credential(Basic Auth)
HTTP Basic Auth 생성


테스트용 Webhook 생성(Basic Auth)

 
  1. 좌측 [+] -> Workflow 새로운 워크 플로우 생성
  2. 노드 추가 [ + ] 선택 -> [ On webhook call ] 선택
  3. 노드 더블 클릭으로 구성창 열기
  4. Authentication에서 Authentication = Basic Auth 선택 → 생성한 Basic Auth Credentials 지정
  5. 상단 'Listen for test event' 선택

Webhook Node
Webhook Configure

Basic Auth 테스트

 
  1. 이전에 만들어둔 HTTP Request 노드 구성 창 열기
  2. URL:  '테스트용 Webhook 생성(Basic Auth)' 에서 만들어진 URL 입력
  3. Authentication에서 Geniric Credential Type -  Basic Auth 선택 → 생성한 Basic Auth Credentials 지정
  4. Execute → 응답 확인

Basic Auth 인증 성공 또는 실패


Bearer Auth Credential 추가

 
  1. Credentials  New  JWT Header Auth
  2. JWT Auth account에서 'Secret' 부분에 암호 키 입력 *(추정하기 어려운 암호 사용 권장)

JWT Auth Account Create
JWT Auth Account Generate

 

테스트용 Webhook 생성(Bearer Auth)

 
  1. 좌측 [+] -> Workflow
  2. 노드 추가 [ + ] 선택 -> [ On webhook call ] 선택
  3. 노드 더블 클릭으로 구성창 열기
  4. Authentication에서 Authentication = JWT Auth 선택 → 생성한 JWT Auth Credentials 지정

JWT Auth Webhook

Bearer Auth 테스트

 

Bearer Auth 테스트에서는 JWT 토큰을 사용할거에요.

그런데 JWT 토큰은 우리가 만들어서 입력해야합니다.

 

관련된 문서는 제가 작성한 JWT글 참고해주세요.

2025.09.06 - [기타] - JWT(Json Web Token)

 

JWT(Json Web Token)

JWT(Json Web Token)는 웹에서 사용자 인증과 정보 교환에 널리 쓰이는 토큰 기반 인증 방식이에요. 세 부분(Header, Payload, Signature)으로 구성되어 있고, Base64URL로 인코딩되어 문자열 한 줄로 표현됩니다

knockknows.com

 

  1. 이전에 만들어둔 HTTP Request 노드 구성 창 열기
  2. URL:  '테스트용 Webhook 생성(Bearer Auth)' 에서 만들어진 URL 입력
  3. Authentication에서 Geniric Credential Type -  Bearer Auth 선택 → [ Create new Credential ]
  4. JWT Auth 생성 시 입력한 Secret 키 기반으로 JWT 토큰 생성 후 선택
  5. Execute → 응답 확인

JWT 토큰 생성
Bearer Auth JWT Account 생성
HTTP Request JWT Auth 인증 성공

 

정리

 

이번 글에서는 HTTP Request와 인증에 대해서 알아봤어요.

여러 서비스를 통합할 때 인증이 필요한 부분들이 있기 때문에 꼭 알아야하는 기능들이에요.

 

다음엔 N8N을 활용할 수 있는 유익한 글을 작성해보겠습니다.

 

낙노즈였습니다.

감사합니다.