HTTP 메서드 종류
주요 메서드
- GET : 리소스 조회
- POST : 요청 데이터 처리, 주로 등록에 사용
- PUT : 리소스를 대체, 해당 리소스가 없을 시 생성
- PATCH : 리소스 부분 변경
- DELETE : 리소스 삭제
기타 메서드
- HEAD : GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 변경
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션을 설명
- CONNECT : 대상 자원으로 식별되는 서버에 대한 터널 설정
- TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트 수행
GET
GET /search?q=spring&hl=ko HTTP/1.1
Host: www.google.com
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 쿼리 파라미터를 통해 전달
- 메시지 바디를 사용해서 데이터 전달이 가능하지만, 미 지원이 많아 권장 X
POST
POST /members HTTP/1.1
Content-Type: application/json
{
"userId":"be",
"name":"Lee"
}
- 요청 데이터 처리
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
- 표준 스펙 : POST 메서드는 대상 리소스가 리소스의 고유한 의미 체계에 따라 요청에 포함된 표현을 처리하도록 요청
- POST 사용 기능 ex)
- HTML 양식에 입력된 필드와 같은 데이터 블록을 데이터 처리 프로세스에 제공
- 서버가 아직 식별하지 않은 새 리소스 생성
- 기존 자원에 데이터 추가
PUT
PUT /members/100 HTTP/1.1
Content-Type: application/json
{
"userId":"be",
"name":"Lee"
}
- 리소스를 대체
- 리소스 이미 존재 시 대체
- 리소스 없을 시 생성
- 클라이언트가 리소스를 식별
- 클라이언트가 리소스 위치를 미리 알고 URI를 지정 (POST와의 차이점)
HTTP 메서드의 속성
- 안전 (Safe Methods)
- 멱등 (Idempotent Methods)
- 캐시 가능 (Cacheable Methods)