CS

HTTP 메서드

baek-dev 2024. 12. 28. 16:35

클라이언트(브라우저)가 서버와 통신할때 요청의 목적을 명확히 하기 위해 사용


주요 HTTP 메서드와 목적

메서드 설명 주요 목적
GET 서버에서 데이터를 조회 데이터를 가져올 때 사용
POST 서버에 데이터를 전송 및 생성 데이터를 생성하거나 제출할때 사용
PUT 서버의 데이터를 전체 수정 데이터를 수정하거나 업데이트할때 사용
PATCH 서버의 데이터를 부분 수정 데이터의 일부를 업데이트 할때 사용
DELETE 서버의 데이터를 삭제 데이터를 삭제할때 사용
OPTIONS 서버에서 허용하는 메서드 조회 요청 가능한 메서드 목록 확인
HEAD 요청에 대한 헤더만 반환 응답 데이터 없이 헤더 정보만 확인

1. GET

목적 : 서버에서 데이터를 요청하고 받아오는데 사용

특징 :

  • 데이터를 요청할때 URL에 쿼리 문자열로 전달
  • 요청한 데이터만 서버가 반환하며, 서버 상태를 변경하지 않음
  • 안전성 : 서버의 데이터를 변경하지 않으므로 안전함
  • 캐싱 가능 : URL에 요청 내용이 명시되므로 캐싱이 가능함
GET /users?name=John&page=1 HTTP/1.1
Host: example.com

예시 :

  • 웹페이지 로딩
  • 검색 요청

2. POST

목적 : 서버에 데이터를 전송하거나 새로운 리소스를 생성

특징 :

  • 데이터를 요청 본문(body)에 담아 전송
  • 요청 데이터를 기반으로 서버 상태가 변경될수 있음
  • 일반적으로 데이터베이스에 새로운 데이터를 추가하는데 사용
POST /users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John",
  "age": 30
}

예시 :

  • 회원가입
  • 로그인정보 전송

 

3. PUT

목적 : 서버의 리소스를 전체 수정하거나 새로 생성

특징 : 

  • 요청한 URL에 해당하는 리소스가 없으면 새로 생성
  • 전체 리소스를 대체(기존 데이터는 사라지고 새 데이터로 덮어씀)
PUT /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Updated",
  "age": 31
}

예시 :

  • 기존 사용자 정보를 새 데이터로 대체

 

4. PATCH

목적 : 서버의 리소스를 부분적으로 수정

특징 :

  • PUT은 전체 수정인 반면, PATCH는 필요한 필드만 수정 가능
PATCH /users/1 HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "age": 32
}

예시 :

  • 사용자의 특정 필드만 업데이트 (나이 변경)

 

5. DELETE

목적 : 서버의 데이터를 삭제

특징 : 

  • 삭제 요청을 서버가 받아들여 데이터를 제거
DELETE /users/1 HTTP/1.1
Host: example.com

예시 :

  • 게시물 삭제
  • 사용자 계정 삭제

 

6. OPTIONS

목적 : 서버가 특정 URL에서 지원하는 메서드 확인

특징 :

  • 주로 클라이언트가 서버와의 통신 가능성을 확인할때 사용
  • CORS(Cross-Origin Resource Sharing)에서 많이 활용됨
OPTIONS /users HTTP/1.1
Host: example.com

 

 

7. HEAD

목적 : 응답 데이터 없이 헤더만 요청

특징 : 

  • 서버에 데이터를 요청하지 않고, 리소스의 존재 여부 등을 확인
  • GET요청과 유사하지만, 본문(body)이 없음
HEAD /users/1 HTTP/1.1
Host: example.com

예시 :

  • 파일 다운로드 전에 파일의 크기를 확인

정리

 

1. HTTP 메서드 사용 목적

  • GET: 데이터를 가져오기
  • POST: 데이터를 생성하거나 서버로 전송
  • PUT: 데이터를 전체 수정하거나 새로 생성
  • PATCH: 데이터를 부분 수정
  • DELETE: 데이터를 삭제

 

2. 기타 메서드

  • OPTIONS: 서버가 지원하는 메서드 확인
  • HEAD: 데이터 없이 헤더만 요청

 

3. 선택 기준

  • 데이터를 읽기만 한다면 GET
  • 데이터를 생성하거나 서버 상태를 변경한다면 POST
  • 데이터를 전체 교체하려면 PUT, 일부만 변경하려면 PATCH
  • 데이터를 삭제하려면 DELETE

 

HTTP 메서드는 클라이언트와 서버 간의 통신에서 매우 중요한 역할을 한다. 각 메서드의 목적과 사용 방법을 이해하면 더 효율적인 API를 설계하거나 사용할 수 있다

 

 

 

 

출처 : ChatGPT

'CS' 카테고리의 다른 글

레거시 소스  (0) 2025.01.05
REST API  (1) 2025.01.03
HTTP 상태코드  (0) 2025.01.02
[CS] TDD  (1) 2024.12.13
[CS] 프로세스와 스레드  (0) 2024.12.08