HTTP Method
HTTP 메서드란 클라이언트와 서버 사이의 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 말한다.
요청을 보낼 때, HTTP 메서드로 서버가 수행해야 할 동작을 지정하는 방법이다.
HTTP는 아래와 같은 Method 들을 사용해서 요청한다.
안전 (Safe) : 호출해도 리소스를 변경하지 않는다.
CRUD : Create, Read, Update, Delete
멱등성 : 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고,
서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말한다.
이외에도 아래와 같은 메서드들이 존재하지만, 위의 5개의 메서드를 주로 사용한다.
- HEAD : GET과 동일하지만, 헤더 데이터만 반환한다.
- OPTIONS : 대상 리소스에 대한 통신 가능 옵션을 설명
- TRACE : 요청메시지 반환
- CONNECT : 프록시 동작의 터널 접속으로 요청
GET
- 리소스 조회
- 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)를 통해서 전달
- 메시지 바디를 사용해서 데이터를 전달할 수 있지만, 지원하지 않는 곳이 많아서 권장하지 않음
클라이언트가 서버에 서버에 요청 → 서버에서 데이터(HTML, JSON 등) 생성 → 클라이언트에 데이터 전달
GET 방식은 원하는 정보를 query파라미터 방식으로 요청해야 하기 때문에 중요한 정보인 경우 보안상의 문제가 있다.
이 때는, POST 방식을 사용하여 해결한다. POST 방식은 데이터를 message-body에 포함하여 전달한다.
POST
- 메시지 바디를 통해 서버로 요청 데이터 전달
- 서버가 요청 데이터를 처리
- 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행
- 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용
클라이언트가 서버에 메시지 전달 → 서버 - 신규 리소스 생성 → 응답
(example)
- 메시지를 서버 에 저장, 게시
- 서버가 갖고있지 않은 새 리소스 생성
- 기존 자원에 데이터 추가
PUT
- 리소스를 대체(수정)
- 있으면 대체 / 없으면 생성
- 클라이언트가 리소스를 식별(지정)
(주의) 리소스를 완전히 대체한다.
//기존 데이터
{
"userName": "hyun",
"age":20
}
//PUT
{
"age":50
}
//결과 (userName 필드는 삭제됨)
{
"age":50
}
PATCH
- 리소스 부분 변경
//기존 데이터
{
"userName": "hyun",
"age":20
}
//PATCH
{
"age":50
}
//결과 (age 필드만 변경됨)
{
"userName": "hyun",
"age":50;
}
DELETE
- 리소스 제거(삭제)
(ex) DELETE /members/100 HTTP/1.1 → members/100 삭제
반응형
'컴퓨터 공학 > Web & Network' 카테고리의 다른 글
[Web/HTTP] Web의 3요소와 HTTP 프로토콜, 특징 (0) | 2023.07.19 |
---|---|
[Web] 쿠키(Cookie)와 세션(Session) (0) | 2023.07.18 |
[Web/HTTP] HTTP 상태 코드(Status Code) (0) | 2023.07.18 |
[Web/HTTP] HTTP 메시지(요청, 응답) 구조 (0) | 2023.07.17 |
[Web] URI, URL / URI 설계 원칙 RFC-3986 (0) | 2023.07.07 |