개발 공부/서버

[서버 기초] GET과 POST 비교, 도대체 뭐가 다른 거야?

악마의 개발자 2025. 4. 28. 20:00
반응형

GET과 POST 비교


💡 "둘 다 요청인데, 뭐가 다른데?"

처음 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… 도대체 이 숫자들은 뭐야?
  • 실무에서 가장 많이 쓰는 상태 코드만 뽑아서 알려드릴게요!
반응형