| 구분 | GET | POST |
| 의미 | 리소스(데이터)를 조회하는 데 사용 | 서버에 데이터를 생성하거나 제출할 때 사용 |
| 데이터 전달 위치 | URL(쿼리 스트링: ?key=value) | HTTP 메시지의 Body 영역 |
| 전송 길이 제한 | 있음 (일반적으로 2000자 미만) | 없음 (서버나 클라이언트 제한에 따라 달라짐) |
| HTTP 상태 코드 | 성공 시 보통 200 OK 반환 | 성공 시 보통 201 Created 반환 |
| 캐싱 여부 | 캐싱 가능 (브라우저, 프록시 등에서) | 캐싱 불가능 |
| 보안성 | URL에 정보 노출 → 보안에 취약 | 메시지 본문에 포함되어 URL에 노출되지 않음 → 상대적으로 안전 |
| 브라우저 기록 | 요청 URL이 기록에 남음 | 요청 내용은 기록되지 않음 |
| 전송 가능한 데이터 | ASCII 문자 기반 (쿼리 파라미터 형식) | 모든 형태의 데이터 (JSON, 파일 등 포함) 전송 가능 |
| 사용 예시 | 게시글 목록 조회, 유저 정보 보기 등 | 회원가입, 글 작성, 파일 업로드 등 |
주의 사항
- GET은 민감한 정보(비밀번호, 카드번호 등)를 전송할 때 사용하면 안 됩니다.
- POST는 데이터가 본문에 포함되므로 보안적으로는 더 적절하지만, HTTPS를 통해 암호화하지 않으면 여전히 위험할 수 있습니다.
'ZeroBase > CS' 카테고리의 다른 글
| 네트워크 장치 (1) | 2025.07.30 |
|---|---|
| HTTP 메서드 PUT, PATCH 차이 (3) | 2025.07.29 |
| 토큰 기반 로그인 방식 (0) | 2025.07.26 |
| 세션기반 인증 방식 (0) | 2025.07.25 |
| 로컬스토리지, 세션스토리지, 쿠키의 공통점과 차이점 (1) | 2025.07.25 |