[TIL] HTTP 메서드 정리 23.08.22

이상훈·2023년 8월 23일
0

[내일배움캠프]

목록 보기
56/68

HTTP Method 종류

HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청과 응답데이터를 전송하는 방식을 말한다.

주요 메서드
- GET : 리소스 조회
서버에 전달하고 싶은 데이터는 query를 통해서 전달함. 메시지 바디를 사용하여 데이터를 전달할 수는 있지만, 지원하지 않는 곳이 많아 권장하지 않음.
POST도 조회가 가능하지만, GET 메서드는 캐싱이 가능하기에 유리
- POST : 요청 데이터 처리, 주로 등록에 사용
메시지 바디를 통해 서버로 요청 데이터를 전달하면 서버는 요청 데이터를 처리하여 업데이트. 만일 데이터를 GET하는데 있어, JSON으로 조회데이터를 넘겨야 하는 애매한 경우 POST를 사용
- PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없다면 생성
- PATCH : 리소스 부분 변경 (PUT = 전체, PATCH = 일부)
PATCH를 지원하지 않는 서버에서는 POST로 대체 가능
- DELETE : 리소스 삭제
상태코드는 대부분 200을 사용하고 상황에 따라 204를 사용

기타 메서드
- HEAD : GET과 동일하지만 메세지 부분(body)를 제외하고 상태 줄과 헤더만 반환
응답의 상태 코드만 확인할때와 같이 Resource를 받지 않고 오직 찾기만 원할때 사용 (일종의 검사 용도)
서버의 응답 헤더를 봄으로써 Resource가 수정 되었는지 확인 가능
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명 (주로 CORS에서 사용)
서버의 지원 가능한 HTTP 메서드와 출처를 응답 받아 CORS 정책Visit Website을 검사하기 위한 요청
- CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
서버에 도달 했을 때의 최종 패킷의 요청 패킷 내용을 응답 받을 수 있다.
요청의 최종 수신자는 반드시 송신자에게 200(OK) 응답의 내용(Body)로 수신한 메세지를 반송해야 한다.
최초 Client의 요청에는 Body가 포함될수 없다.


HTTP 메서드의 속성

  • 안전
    -> 계속해서 메서드를 호출해도 리소스를 변경하지 않는다는 의미. (GET)
  • 멱등
    -> 메서드를 계속 호출해도 결과가 똑같다는 의미, GET·PUT·DELETE는 멱등하다고 볼 수 있지만 POST나 PATCH는 볼 수 없음
  • 캐시가능
    -> 데이터를 효율적으로 가져올 수 있다는 의미. GET, HEAD, POST, PATCH가 캐시가 가능하지만 실제로는 GET과 HEAD만 주로 캐싱이 쓰임

참고

profile
코린이

0개의 댓글