학습 목표
- GET 과 POST 가 데이터를 어디에 싣는지 안다
- 언제 GET 을 쓰고 언제 POST 를 쓰는지 판단할 수 있다
- F12 로 두 메서드의 요청을 구분할 수 있다
1. 두 메서드의 핵심 차이
한 줄 비유: GET 은 엽서(겉에 글씨가 보임), POST 는 봉투(안에 넣어 봉인).
| 항목 | GET | POST |
| 데이터 위치 | URL 의 ? 뒤 | 메시지 바디 |
| 길이 제한 | 있음 (~2KB) | 사실상 없음 |
| 즐겨찾기·공유 | 가능 (URL 복사) | 불가 |
| 새로고침 | 그냥 다시 요청 | "재제출 하시겠습니까?" |
| 민감 데이터 | ❌ URL 노출 | ✅ 바디 숨김 |
| 기본 용도 | 조회 | 제출/생성 |
2. 두 메시지의 모습
GET
GET /search?q=spring HTTP/1.1
Host: example.com
(바디 없음)
POST
POST /search HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
q=spring
3. 어느 것을 쓸까
- GET: 검색, 게시판 목록·상세, 공유 가능한 링크
- POST: 회원가입, 로그인, 게시글 작성, 댓글
금기: 비밀번호·주민번호·카드번호는 절대 GET 으로 보내지 않습니다. URL 은 브라우저 기록·서버 로그·검색 엔진 등 여러 곳에 흔적이 남습니다.
4. F12 로 구별
- F12 → Network 탭의 Method 열을 본다
- POST 항목을 클릭하면 Payload 탭에 바디 데이터가 보인다
- GET 은 Request URL 안에 데이터가 그대로 박혀 있다
5. Before / After
전 차시 끝
메서드 이름은 알지만 둘이 어떻게 다른지 모름.
이번 차시 끝
데이터가 URL 인지 바디인지 안다. 회원가입을 GET 으로 보내면 안 되는 이유를 설명할 수 있다.
학습 확인 체크리스트
- GET 과 POST 의 데이터 위치 차이를 한 문장으로 말할 수 있다
- F12 Network 탭에서 Method 열로 두 메서드를 구별할 수 있다
- POST 의 Payload / GET 의 Request URL 을 손가락으로 짚을 수 있다
- 비밀번호를 GET 으로 보내면 안 되는 이유를 설명할 수 있다