클라이언트가 웹 서버에게 사용자 요청의 목적이나 종류를 알리는 수단이다.
GET은 보통 리소스를 조회할 때 사용, 서버에 전달하고 싶은 데이터를 query를 통해서 전달한다.
메시지 바디를 사용해서 데이터를 전달할 수는 있지만, 지원하지 않는 곳이 많아서 권장하지 않는다.
=> 리소스 조회용도, 데이터를 query를 통해서 전달, 바디에 데이터를 담지 않는 것을 권장
POST는 데이터 요청을 처리하고, 메시지를 바디를 통해 서버로 데이터를 전달. 주로 신규 리소스를 등록하거나 프로세서 처리에 사용.
=> 바디를 통해 서버로 데이터 전달, 신규 리소스 등록, 프로세서 처리에 사용
PUT은 리소스가 있으면 대체하고, 리소스가 없으면 생성한다.
=> 즉 데이터를 덮어쓴다.
PATCH는 PUT과 마찬가지로 리소스를 수정할 때 사용하지만, PATCH는 리소스를 일부분만 변경할 수 있다.
=> 리소스의 일부분만 수정
DELETE는 리소스를 제거할 때 사용
=> 리소스 제거
계속해서 메소드를 호출해도 리소스를 변경하지 않는다. 주요 메소드 중에는 GET 메소드가 안전하다고 볼 수 있다.
메소드를 계속 호출해도 결과가 똑같다는 뜻. GET, PUT, DELETE는 멱등하다고 볼 수 있지만, POST나 PATCH는 멱등하다고 볼 수 없다.
캐시 가능하다 = 캐싱을 해서 데이터를 효율적으로 가져올 수 있다.
GET, HEAD, POST, PATCH가 캐시가 가능하지만, 실제로는 GET과 HEAD만 주로 캐싱이 쓰인다.
요청(클라이언트가 보낼때)에 Body가 있음: POST, PUT, PATCH
응답에 Body가 있음: GET, POST, PUT, DELETE, PATCH

HEAD: GET과 동일하지만, 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
OPTIONS: 대상 리소스에 대한 통신 가능 옵션을 설명
CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정
TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
sadfsad