Hyper Text Transfer Protocol
HTTP는 클라이언트와 서버 간에 데이터를 주고받을 때 사용되는 통신 규약이다.
HTTP 메서드란 클라이언트가 서버에게 특정 리소스에 대한 원하는 동작을 요청하는 방법을 정의한 것이다. 즉, 서버가 수행해야 할 동작을 지정하여 요청을 보내는 방법이다.
클라이언트가 원하는 동작을 나타내는 메서드를 선택하여 서버에게 요청을 전송하고, 서버는 해당 동작을 수행한 후 클라이언트에게 응답을 보내는 웹 통신의 핵심적인 역할을 수행한다.
HTTP 메서드는 총 9가지가 있으며, 이 중 주로 사용되는 메서드는 5가지이다.
-
주요 메소드
- GET: 리소스 조회
- POST: 요청 데이터 처리, 주로 등록에 사용
- PUT: 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성
- PATCH: 리소스 일부 변경
- DELETE: 리소스 삭제
-
기타 메소드
- HEAD: GET과 유사하지만, 메시지 부분(body)을 제외하고 상태 줄과 헤더만 반환
- OPTIONS: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명
- TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행
- CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정
리소스 조회
- 리소스를 조회할 때 사용한다.
- 서버에 전달하고 싶은 데이터는 쿼리 파라미터, 쿼리 스트링 등을 통해서 전달한다.
GET /members/100?username=yoonkyoung&height=200
요청 데이터 처리
- 서버에 데이터 처리를 요청할 때 사용한다. (데이터 신규 등록, 특정 비즈니스 로직 수행 등)
- 메시지 바디를 통해 서버로 요청 데이터 전달하면 서버는 요청 데이터를 처리한다.
- 신규 리소스 등록 요청 처리 시 서버는 응답에 Location 헤더를 포함한다.
리소스 대체
-
요청 메시지에 리소스가 있으면 대체하고, 없으면 새로 생성한다.
- 동일 리소스가 있는 경우 (PUT 요청 → 리소스 대체)
- 동일 리소스가 없는 경우 (PUT 요청 → 리소스 생성)
-
요청 시 메시지 바디에 대체할 데이터를 담아서 요청한다.
-
요청 URI에 리소스의 위치를 명확히 지정한다. (클라이언트가 리소스 식별 ← POST와 차이점)
POST /members: 멤버 새로 추가 PUT /members/100: 100번째 멤버 수정
리소스 일부 변경
리소스 삭제