HTTP 메서드란? GET·POST·PUT·PATCH·DELETE 차이 쉽게 이해하기
HTTP 메서드는 서버에 어떤 작업을 원하는지 알려 주는 요청 방식입니다. GET·POST·PUT·PATCH·DELETE, 멱등성·캐시·SEO·HTTPS와의 관계까지 초보 기준으로 정리합니다.
웹은 서버에 「이 주소를 열어주세요」만 말하지 않습니다. 정보를 보여 달라고 할 때도 있고, 새로 만들거나 고치거나 지워 달라고 할 때도 있습니다. 이때 어떤 업무인지를 알려 주는 방식이 HTTP 메서드입니다. 대표적으로 GET·POST·PUT·PATCH·DELETE가 있습니다.
쉽게 말하면 — HTTP 메서드는 서버에 보내는 요청서의 「업무 종류」입니다.
은행 창구에 비유하면
같은 창구라도 「잔액 확인」「계좌 개설」「주소 변경」「해지」는 다른 업무입니다. 웹도 서버라는 창구에 요청을 보내지만, 원하는 일을 구분해 줘야 합니다. 그 구분표가 HTTP 메서드입니다.
GET — 보여주세요
정보를 조회할 때 가장 많이 씁니다. 회사소개 페이지를 열거나 GET /products/100처럼 상품·게시글을 보는 요청이 대표적입니다. 주소창에 URL을 입력해 페이지를 여는 것도 보통 GET입니다.
검색어처럼 값을 URL 쿼리(?q=…)에 넣는 경우도 많습니다. 그래서 비밀번호를 GET으로내면 방문 기록·로그·공유 링크에 남을 수 있어 위험합니다.
GET으로 삭제·결제를 하면 안 됩니다. 브라우저나 검색엔진이 링크만 방문해도 데이터가 바뀔 수 있기 때문입니다. GET = 조회라는 역할을 지키는 것이 중요합니다.
POST — 처리해 주세요
서버에 데이터를 보내 생성하거나 특정 작업을 요청할 때 많이 씁니다. 회원가입(POST /users), 글쓰기, 문의 폼, 로그인, 결제, 파일 업로드 등이 해당합니다.
「POST = 무조건 생성」은 아닙니다. 서버에 내용을 넘겨 처리를 맡기는 요청에 폭넓게 쓰입니다. 성공 시 새 자원이 만들어지면 201 Created를 볼 수 있고, 오래 걸리는 작업은 202 Accepted로 먼저 접수만 알릴 수도 있습니다.
PUT · PATCH — 어떻게 고칠까
PUT은 기존 내용을 통째로 새 버전으로 교체하는 느낌에 가깝습니다. 신청서를 다시 제출하는 것과 비슷합니다.
PATCH는 필요한 부분만 고칩니다. 전화번호만 보내는 식입니다.
- PUT — 전체 갱신
- PATCH — 부분 수정
실제 API는 설계에 따라 둘을 다르게 쓸 수 있으니, 외부 연동 시에는 해당 문서를 확인하세요. 기본 개념만 이렇게 기억하면 됩니다.
DELETE — 삭제해 주세요
DELETE /posts/15처럼 자원을 지워 달라는 의도입니다. 다만 서버가 DB에서 완전히 지울 수도 있고, 「삭제됨」만 표시해 화면에서 가리는 소프트 삭제일 수도 있습니다.
같은 주소, 다른 메서드
/posts/10 하나만 봐도 「10번 글」 정도만 알 수 있습니다. 메서드를 붙이면 의미가 갈립니다.
- GET — 조회
- PUT / PATCH — 전체·일부 수정
- DELETE — 삭제
- POST /posts — 새 글 작성(보통 목록 URL에 생성)
쇼핑몰에서도 같습니다. GET은 상품 보기, POST는 등록, PUT·PATCH는 정보·가격 수정, DELETE는 삭제입니다.
메서드와 상태 코드는 다른 축
메서드는 「무엇을 해 달라」이고, 상태 코드는 「그 결과가 어땠는지」입니다.
POST ≠ 암호화 · HTTPS가 필요
POST는 보내는 방식일 뿐, 자동으로 암호화되지 않습니다. 로그인·주문·개인정보는 HTTPS(SSL)로 안전하게 전달해야 합니다.
안전한 요청 · 멱등성 · 새로고침
GET처럼 데이터를 바꾸지 않는 용도의 메서드를 「안전하다」고 말합니다. 상품 페이지를 새로고침해도 상품이 늘어나면 안 됩니다.
멱등성은 같은 요청을 여러 번 보내도 최종 결과가 한 번 보낸 것과 같다는 성질입니다. DELETE나 같은 내용의 PUT은 여러 번 보내도 「이미 삭제됨」「이미 그 값」인 경우가 많습니다. 반면 POST로 주문을 여러 번내면 주문이 여러 개 생길 수 있어, 결제·주문 API는 중복 방지가 중요합니다.
주문 직후 새로고침 시 「양식을 다시 제출할까요?」가 뜨는 이유도 POST를 다시 보내려 하기 때문입니다.
SEO · 캐시와의 관계
검색엔진이 공개 글을 수집할 때는 보통 GET으로 URL에 접근합니다. 로그인 후 POST로만 볼 수 있는 내용은 공개 색인에 불리할 수 있습니다. GET 결과는 CDN·브라우저가 캐시하기 쉬운 편이고, POST는 매번 결과가 달라질 수 있어 캐시가 까다롭습니다.
한눈에 정리
- GET — 보여주세요(조회)
- POST — 처리하거나 만들어 주세요
- PUT — 통째로 바꿔주세요
- PATCH — 이 부분만 고쳐주세요
- DELETE — 삭제해 주세요
자주 묻는 질문
일반 이용자도 외워야 하나요?
전부 외울 필요는 없습니다. 다만 「POST 실패」「GET으로 가져온다」「PATCH로 수정」 같은 말을 들으면 소통이 훨씬 쉬워집니다. API 연동 문서에서는 메서드가 핵심입니다.
주소창 입력은 GET인가요?
대개 그렇습니다. POST·DELETE를 주소창에 직접 넣는 방식은 일반적이지 않습니다.
정리
HTTP 메서드는 서버에 원하는 업무의 종류를 알려 주는 요청 방식입니다. 메서드와 URL을 함께 보면 요청의 뜻이 분명해지고, 상태 코드와 짝을 이루면 「요청 → 결과」 대화가 완성됩니다.
브라우저가 요청을 보낼 때는 메서드와 주소만이 아닙니다. 원하는 데이터 형식, 어느 사이트에서 왔는지, 어떤 브라우저인지, 로그인 인증이 있는지 같은 추가 정보도 함께 갈 수 있습니다. 그 칸을 HTTP 헤더(Header)라고 합니다. 자세한 설명은 HTTP 헤더란?을 참고하세요.