HTTP
HTTP 메서드
RubyRabbit
2022. 7. 30. 15:06
HTTP 메서드
- 클라이언트가 서버에게 요청시 서버에게 무엇을 해야하는지 알려주는 정보
HTTP 메서드의 종류
- GET
- 서버의 리소스를 조회
- 서버에 전달하고 싶은 데이터가 있을 경우 쿼리 파라미터를 통해서 전달
- POST
- 서버에 처리해야 할 데이터를 전송.
- 데이터는 HTTP 메시지 바디를 통해 전달
- 일반적으로 데이터를 저장, 등록할 때 사용
- PUT
- 서버에 있는 리소스를 새로운 데이터로 대체
- 파일 시스템에서 파일을 새로운 파일로 덮어쓰기와 같은 개념
- PATCH
- 서버에 있는 리소스를 전송한 데이터를 통해 수정
- 파일 시스템에서 파일을 열어 수정한 것과 같은 개념
- DELETE
- 서버에 있는 리소스를 삭제
HTTP 메소드의 안정성 / 멱등 / 캐시가능여부
- 안정성
- 서버에게 리소스를 요청시 서버에 어떠한 작용도 없다는 것을 의미함
- 요청시 리소스 및 관련 데이터를 조회하는 GET, HEAD, OPTIONS, TRACE 메소드의 경우 안전한 메소드에 속함
- 요청이 리소스를 등록, 수정, 삭제 등 변경을 요청하는 POST, PUT, DELETE, PATCH 메소드의 경우 안전하지 않음
- 서버에게 리소스를 요청시 서버에 어떠한 작용도 없다는 것을 의미함
- 멱등
- 서버에게 같은 내용의 요청을 여러번 하더라도 결과가 동일한 경우 (서버에서 단일 클라이언트의 요청만 처리할 경우)
- GET의 경우 몇 번을 요청하더라도 같은 결과가 조회됨
- POST의 경우 요청 수에 따라 결과가 달라질 수 있음 (ex - 게시판에 게시글을 등록 시. 같은 내용으로 여러번 등록시 처음 등록된 글과 마지막에 등록된 글은 내용만 동일한, 다른 게시글 번호를 가진 다른 리소스)
- PUT의 경우 요청 수에 상관없이 같은 내용으로 요청한다면 최종적으로 그 내용으로 리소스가 대체됨
- DELETE의 경우 요청 수에 상관없이 해당 리소스가 삭제된 상태가 됨
- 캐시 가능
- 응답 결과 리소스를 캐시, 저장할 수 있는 경우