FireDrago

[HTTP] HTTP 메서드 본문

네트워크

[HTTP] HTTP 메서드

화이용 2024. 1. 17. 09:09

HTTP 메서드

 

HTTP는 메서드를 정의하여 리소스에 수행하기 원하는 행동을 나타낸다.

클라이언트가 서버에 원하는 행동을 나타내는 것이다.

 

 GET : 리소스를 조회할때 사용하는 메서드 

 POST : 정보를 등록하거나, 프로세스를 변경 할때 사용하는 메서드

 PUT : 리소스를 수정할때 사용하는 메서드 (덮어쓰기)

 PATCH : 역시 리소스를 수정할때 사용하지만, (부분수정) 

 DELETE : 리소스를 삭제할때 사용하는 메서드

 

 

GET

 

 - GET 메서드는 정보를 조회할때만 사용한다. 

 - 서버에 전달해야할 데이터가 있다면 HTTP 바디가 아니라 '쿼리 스트링'을 사용하여 전달한다.

GET 방식으로 쿼리스트링에 담아서 보내는 요청메시지

 

<정적 데이터 조회>

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

 

 

<동적 데이터 조회>

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

 

 

<안전, 멱등, 캐시가능>

- 안전 : 리소스를 변경하지 않는다는 것을 의미 GET 은 데이터 조회만 하므로 '안전'하다.

- 멱등 : 반복해서 실행해도 같은 결과가 나타난다는 것을 의미한다. GET은 '멱등'의 성질을 가진다.

- 캐시가능 : 반복되는 결과를 브라우저에 미리 저장하는 것 , GET은 캐시도 가능하다.

 

  안전 멱등 캐시가능
GET O O O

 

 

POST

 

- POST 메서드는 '메시지 바디'를 통해 서버에 요청 데이터를 보내고, 서버는 그 요청 데이터를 처리한다.

메시지 바디에 json 형식의 데이터를 전송하는 POST 요청 메시지

 

<HTML 폼으로 데이터 전송>

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

HTML 폼으로 텍스트 정보 전송
텍스트와 파일을 함께 전송할때는 enctype="multipart/form-data" 사용

 

<안전, 멱등, 캐시가능>

- 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