FireDrago
[HTTP] HTTP 메서드 본문
HTTP 메서드
HTTP는 메서드를 정의하여 리소스에 수행하기 원하는 행동을 나타낸다.
클라이언트가 서버에 원하는 행동을 나타내는 것이다.
GET : 리소스를 조회할때 사용하는 메서드
POST : 정보를 등록하거나, 프로세스를 변경 할때 사용하는 메서드
PUT : 리소스를 수정할때 사용하는 메서드 (덮어쓰기)
PATCH : 역시 리소스를 수정할때 사용하지만, (부분수정)
DELETE : 리소스를 삭제할때 사용하는 메서드
GET
- GET 메서드는 정보를 조회할때만 사용한다.
- 서버에 전달해야할 데이터가 있다면 HTTP 바디가 아니라 '쿼리 스트링'을 사용하여 전달한다.

<정적 데이터 조회>
- 이미지나 정적 HTML 파일등을 조회할때 GET 메서드를 사용한다.

<동적 데이터 조회>
- 검색이나 정렬조건에 의한 정렬 등 '쿼리 파라미터'를 사용하여 데이터 전달하고 동적 데이터를 조회한다.

<안전, 멱등, 캐시가능>
- 안전 : 리소스를 변경하지 않는다는 것을 의미 GET 은 데이터 조회만 하므로 '안전'하다.
- 멱등 : 반복해서 실행해도 같은 결과가 나타난다는 것을 의미한다. GET은 '멱등'의 성질을 가진다.
- 캐시가능 : 반복되는 결과를 브라우저에 미리 저장하는 것 , GET은 캐시도 가능하다.
| 안전 | 멱등 | 캐시가능 | |
| GET | O | O | O |
POST
- POST 메서드는 '메시지 바디'를 통해 서버에 요청 데이터를 보내고, 서버는 그 요청 데이터를 처리한다.

<HTML 폼으로 데이터 전송>
- HTML 폼으로 정보를 전송할때, POST 메서드를 사용한다.


<안전, 멱등, 캐시가능>
- POST 방식은 반복시행시 프로세스가 달라질 수 있다. 멱등하지 않다.
| 안전 | 멱등 | 캐시가능 | |
| GET | O | O | O |
| POST | X | X | O |
PUT
- 리소스를 대체, 수정할때 PUT 메서드를 사용한다.
- PUT 메서드는 리소스를 클라이언트가 관리한다. ( 리소스 경로를 클라이언트가 알아야한다.)
- PUT 메서드는 수정할때 리소스를 완전히 덮어씌워 버린다.


<안전, 멱등, 캐시가능>
- PUT 은 덮어씌우므로 멱등하다. 매번 같은 결과가 나온다.
| 안전 | 멱등 | 캐시가능 | |
| GET | O | O | O |
| POST | X | X | X |
| PUT | X | O | X |
PATCH
- PATCH 역시 수정 메서드 지만 PUT 과 달리 부분수정이 가능하다.


<안전, 멱등, 캐시가능>
| 안전 | 멱등 | 캐시가능 | |
| GET | O | O | O |
| POST | X | X | X |
| PUT | X | O | X |
| PATCH | X | X | O |
DELETE
- DELETE 메서드는 리소스를 삭제할때 사용한다.
<안전, 멱등, 캐시가능>
| 안전 | 멱등 | 캐시가능 | |
| GET | O | O | O |
| POST | X | X | X |
| PUT | X | O | X |
| PATCH | X | X | O |
| DELETE | X | O | X |
