본 글은 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하고 공부한 내용을 정리하기 위해 작성되었습니다.
GET: 특정 리소스를 조회
GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com
- query(쿼리 파라미터, 쿼리 스트링)를 통해 서버에 데이터를 전달한다.
POST: 요청한 데이터 등록하거나 처리
(주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용)POST /members HTTP/1.1 Content-Type: application/json { "username": "Jane", "age": 26 }
- 메시지 바디를 통해 서버로 요청 데이터 전달하면, 서버는 (약속한 대로) 요청 데이터를 처리한 뒤 응답을 보내준다.
(리소스 URI에 POST 요청이 오면 요청 데이터를 어떻게 처리할지 리소스마다 따로 정해야 한다.)HTTP/1.1 201 Created Content-Type: application/json Content-Length: 34 Location: /members/100 { "username": "Jane, "age": 26 }
PUT: 리소스가 존재하면 기존 리소스를 완전히 대체하고, 해당 리소스가 없으면 새로 생성한다.
PUT /members/100 HTTP/1.1 Content-Type: application/json { "username": "Jane", "age": 26 }
- POST와 다르게 PUT은 클라이언트가 리소스의 위치를 알고 URI를 지정한다.
PATCH: 리소스를 부분적으로 변경한다.
PATCH /members/100 HTTP/1.1 Content-Type: application/json { "age": 50 }
- PATCH가 지원되지 않는 서버의 경우에는 POST를 사용하면 된다.
DELETE: 특정 리소스를 삭제한다.
DELETE /members/100 HTTP/1.1 Host: localhost:8080
HEAD: GET과 동일하지만 메시지 부분(Body)을 제외하고, 상태 줄과 헤더만 반환한다.
Source