HTTP 요청과 REST API HTTP 요청의 차이점
HTTP 요청과 REST API HTTP 요청은 기본적으로 같은 기술을 기반으로 하지만, 사용 목적과 설계 철학에서 차이가 있다. 이를 이해하기 위해 먼저 HTTP 요청의 개념을 짚고, REST API HTTP 요청의 독특한 특징을 살펴보자.
HTTP 요청이란?
HTTP 요청은 클라이언트(브라우저, 앱 등)가 서버에 특정 작업을 요청하기 위해 보내는 메시지다. 일반적으로 4가지 주요 메서드가 사용된다.
- GET: 리소스 조회
- POST: 리소스 생성
- PUT: 리소스 전체 업데이트
- DELETE: 리소스 삭제
HTTP 요청은 단순히 데이터를 요청하거나 전송하는 데 사용되며, 특정 형식이나 구조에 제한이 없다. 예를 들어, HTML 문서를 요청하거나 파일을 업로드하는 것도 HTTP 요청이다.
REST API HTTP 요청이란?
REST API는 Representational State Transfer의 약자로, 웹 애플리케이션에서 데이터를 교환하기 위해 설계된 아키텍처 스타일이다. REST API HTTP 요청은 일반 HTTP 요청을 사용하지만, REST 원칙에 맞게 설계된 시스템에서 사용된다.
REST API HTTP 요청의 주요 특징은 다음과 같다:
- 리소스 중심 설계
- REST는 리소스를 고유한 URL로 식별한다.
- 예: /users/123는 ID가 123인 사용자 리소스를 나타낸다.
- HTTP 메서드의 활용
- HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용해 리소스 작업의 의미를 명확히 한다.
- 예: GET /users는 모든 사용자 목록 조회, POST /users는 새로운 사용자 생성.
- 무상태성
- REST API 요청은 각각 독립적이며, 서버는 클라이언트의 이전 요청 상태를 기억하지 않는다. 모든 필요한 정보는 요청에 포함되어야 한다.
- JSON 또는 XML 기반 데이터
- REST API는 응답 데이터를 주로 JSON이나 XML 형식으로 반환한다. 이는 구조적이고 기계가 읽기 쉬운 데이터를 제공한다.
두 방식의 비교
항목HTTP 요청REST API HTTP 요청
| 목적 | 데이터 요청, 전송, 파일 처리 등 다양한 작업 | 리소스 중심의 데이터 교환 |
| URL 구조 | 임의의 URL 가능 | 리소스를 나타내는 고유한 URL |
| HTTP 메서드 활용 | 자율적 활용 가능 | 메서드에 따라 작업 의미 명확히 정의 |
| 데이터 형식 | 제한 없음 | 주로 JSON 또는 XML |
| 무상태성 | 필요에 따라 상태 유지 가능 | 항상 무상태성 유지 |
결론
HTTP 요청은 일반적인 웹 통신의 기반 기술로 폭넓게 사용된다. 반면, REST API HTTP 요청은 데이터를 리소스 중심으로 교환하기 위해 HTTP의 기능을 체계적으로 활용한 것이다. REST는 설계 철학에 따라 더 구조적이고 예측 가능한 방식으로 데이터를 주고받을 수 있게 한다. 이 차이는 특히 API 설계와 통합 작업에서 REST를 선호하게 만드는 이유다.
** Representational 이란?
1. 표현과 관련된
- 어떤 것을 나타내거나 묘사하는 것을 의미한다.
- 예: 그림, 문학, 또는 예술 작품 등이 현실의 대상을 모방하거나 묘사할 때 사용된다.
예문:
- "The painting is highly representational, depicting a realistic landscape."
(그 그림은 매우 묘사적이며, 현실적인 풍경을 그린다.)
2. 대표하는
- 특정 개념, 아이디어, 사람, 그룹 등을 상징하거나 대표하는 것을 나타낸다.
예문:
- "The flag is representational of the nation's values."
(그 깃발은 국가의 가치를 대표한다.)
3. 컴퓨터와 데이터(context-specific)
- 컴퓨터 과학이나 데이터 관련 문맥에서는 "데이터의 상태나 내용을 나타내는" 의미로 쓰인다.
REST의 "Representational State Transfer"에서 "representational"은 리소스(resource)의 상태를 JSON, XML, HTML 등 다양한 표현 형식(representation)으로 나타내는 것을 의미한다.
예문:
- "In RESTful systems, a resource is accessed through its representational form."
(RESTful 시스템에서 리소스는 표현 형식을 통해 접근된다.)
어원
- 라틴어 representare에서 유래, "다시 나타내다" 또는 "눈앞에 보여주다"라는 뜻에서 파생.
비슷한 단어
- Descriptive (묘사하는)
- Symbolic (상징적인)
- Illustrative (설명적인)
간단 요약:
"Representational"은 무언가를 묘사하거나 대표하거나 상징하는 것을 뜻하는 형용사이다. REST 같은 기술 문맥에서는 데이터나 리소스를 특정 형식으로 표현한다는 의미로 사용된다.
'코딩' 카테고리의 다른 글
| HTTP Request 객체란? (1) | 2024.11.30 |
|---|---|
| 의학 API 란? (4) | 2024.11.30 |
| API 란? (1) | 2024.11.30 |
| 디자인 도구, Digital Design Tools (0) | 2024.11.28 |
| Python Django 커리큘럼 (2) (1) | 2024.11.28 |