개발공부0w0/CS지식

GET vs POST

jin0w0 2026. 4. 1. 15:43
반응형

2026.04.01 수요일

 

HTTP(HyperText Transfer Protocol) 요청 방식은 2가지가 있습니다. HTTP요청이란, 클라이언트(브라우저, 앱)가 서버에게 데이터나 작업을 요청하는 메시지를 의미합니다. GET방식과 POST방식의 차이를 비교해봅니다.

 

GET vs POST 한눈에 비교

  GET POST
목적 데이터 조회  데이터 생성/변경
데이터 위치 URL (Query String) HTTP Body
예시 /user?id=1 Body: { "id": 1 }
보안 ❌ URL에 노출됨 ⭕ URL에 노출 안됨
캐싱 ⭕ 가능 (브라우저, CDN) ❌ 거의 불가능
재요청 (새로고침) ⭕ 안전 ❌ 재전송 경고 발생
데이터 길이 제한 ❌ 제한 있음 (URL 길이) ⭕ 거의 없음
멱등성 ⭕ 있음 (여러 번 호출해도 동일) ❌ 없음 (중복 생성 가능)
북마크 ⭕ 가능 ❌ 불가능
주 사용 사례 검색, 조회 API 로그인, 회원가입, 데이터 등록

 

1. 목적 차이

GET 방식

- 데이터 조회 (Read)

- 서버 상태를 바꾸지 않는 요청

POST 방식

- 데이터 생성/변경 (Create/Update)

- 서버 상태를 바꾸는 요청

 

2. 데이터 전달 방식

GET 방식

- URL에 붙여서 보냄 (Query String)

/user?id=123&name=kim

POST 방식

- HTTP Body에 담아서 보냄

Body: { "id": 123, "name": "kim" }

 

3. 보안 차이

GET 방식

- 민감정보에 부적합

- URL에  파라미터가 노출됨 (브라우저 주소창, 로그, 히스토리)

POST 방식

- 상대적으로 안전함 (HTTPS가 핵심)

- URL에 파라미터가 노출되지 않음 (HTTP Body)

 

4. 캐싱 & 재요청

GET 방식

- 캐싱 가능 (브라우저, CDN)

- 뒤로가기/새로고침 안전

POST 방식

- 캐싱 거의 안 됨

- 새로고침 시 "재전송 경고" 뜸

 

5. 데이터 길이 제한

GET 방식

- URL 길이 제한 존재 (브라우저별로 상이, 일반적으로 ~2KB 혹은 ~8KB)

POST 방식

- 사실상 제한 없음 (서버 설정에 따라 다름)

 

6. 멱등성

GET 방식

- 멱등 (여러 번 호출해도 결과 동일)

POST 방식

- 멱등 아님 (여러 번 호출하면 데이터 중복 생성 가능)

 

 

 

 

반응형