개발 공부/서버
[서버 기초] GET과 POST 비교, 도대체 뭐가 다른 거야?
악마의 개발자
2025. 4. 28. 20:00
반응형
💡 "둘 다 요청인데, 뭐가 다른데?"
처음 API 공부할 때
이런 질문 다들 해보셨을 거예요.
“GET도 요청이고, POST도 요청인데…
그냥 아무거나 써도 되는 거 아냐?”
근데 실무에서는 꼭 구분해서 써야 하는 이유가 있어요!
오늘은 GET과 POST의 진짜 차이, 완전 쉽게 알려드릴게요. 😊
🌐 GET이란?
GET은
"서버에 데이터를 달라고 요청할 때 쓰는 메서드"예요.
📦 특징:
- 조회(Read) 용
- 주소(URL)에 데이터가 포함됨
- 브라우저에 캐싱 가능
- 북마크 가능
예시:
GET /users?id=1
→ id가 1인 사용자 정보를 조회해줘!
✍️ POST란?
POST는
"서버에 새로운 데이터를 보낼 때(생성, 등록) 쓰는 메서드"입니다.
📦 특징:
- 등록(Create), 전송 용
- 데이터가 **Body(본문)**에 담겨 감
- 주소창에 안 보임
- 큰 데이터 전송에 적합
예시:
POST /users
Body: { "name": "John", "age": 30 }
→ 새로운 사용자 등록해줘!
🆚 GET과 POST 비교표
항목 | GET | POST |
목적 | 데이터 조회 | 데이터 생성/등록 |
데이터 위치 | URL (쿼리스트링) | HTTP Body |
보안 | 주소창에 보임 (노출 위험) | 상대적으로 안전 (Body에 숨김) |
데이터 크기 | 제한적 (URL 길이 제한) | 상대적으로 제한 없음 |
캐싱 | 가능 | 기본적으로 안 됨 |
예시 | 게시판 목록 보기 | 게시글 등록하기 |
❌ 헷갈리기 쉬운 실전 예시
상황 | GET? POST? |
상품 목록 보기 | GET |
상품 상세 정보 보기 | GET |
신규 상품 등록 | POST |
회원가입 | POST |
로그인 요청 | POST (ID, PW 전송 → 보안상 Body 사용) |
💡 왜 GET으로 로그인 요청하면 안 될까?
GET /login?id=user&pw=1234
→ ID, 비밀번호가 주소창에 다 노출됨! ❌
→ 히스토리, 캐시, 로그에도 남을 수 있음 😱
✅ 그래서 로그인, 회원가입, 결제 요청 등은
POST로 보내는 게 안전합니다.
🧠 정리 한마디!
메서드 | 언제 쓰나요? |
GET | "그 정보 좀 보여줘!" → 조회(Read) |
POST | "새로 만들거나 보낼게!" → 생성(Create), 전송 |
"조회는 GET, 등록/전송은 POST!"
"보안 민감한 데이터는 절대 GET으로 보내지 마세요!"
📌 다음 예고: "HTTP 상태 코드 200, 404, 500… 헷갈리지 않게 정리!"
- 200, 404, 500… 도대체 이 숫자들은 뭐야?
- 실무에서 가장 많이 쓰는 상태 코드만 뽑아서 알려드릴게요!
반응형