[Network] HTTP 메서드

devjieun·2024년 4월 24일

🌐WEB

목록 보기
10/12
post-thumbnail

HTTP 메서드란?


HTTP 메서드는 HTTP 요청이 쿼리된 리소스에 서버에 기대하는 작업을 나타낸다. 즉, 클라이언트가 수행하고자 하는 동작을 정의한다. HTTP 메서드의 종류는 총 9가지가 있다. 그중 주로 쓰이는 메서드는 아래의 5가지가 있다.

HTTP 주요 메서드


  • GET: 리소스 조회 (Read)
  • POST: 요청 데이터 처리, 주로 등록에 사용 (Create)
  • PUT: 리소스 대체, 해당 리소스가 없으면 생성 (Update)
  • PATCH: 리소스 부분 변경 (Update)
  • DELETE: 리소스 삭제 (Delete)

1. GET


  • 리소스 조회
  • 데이터를 읽거나 검색할 때 사용
  • 특정한 리소스 가져오도록 요청(데이터를 가져올 때만 사용)
  • 응답으로 정보를 기대
  • Read
  • 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)을 통해 전달
  • 조회하는 용도로 사용하기 때문에 데이터를 담는 Body를 일반적으로 사용하지 않는다.

요청 메시지 전달

GET /members/100 HTTP/1.1
Host: localhost:8080

응답 데이터

HTTP/1.1 200 OK
Content-Type: application.json
Content-Length: 34

{
	"username": "young",
    "age": 20
}

2. POST


  • 메시지 바디를 통해 서버로 요청 데이터 전달
  • 클라이언트가 웹 서버에 정보를 제출
    • 요청 본문 유형은 Content-Type 헤더
  • 서버는 요청 데이터를 처리
    • 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행
    • 서버에 변경사항을 만든다.
  • Create

언제 사용 ?

  • 신규 리소스 생성(등록)
  • 요청 데이터 처리(단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야 하는 경우)
  • 다른 메서드로 처리하기 애매한 경우(JSON으로 조회 데이터를 넘겨야 하는데, GET 메서드를 사용하기 어려운 경우)
  • 양식 정보 등의 제출된 사용자 이름 및 비밀번호
  • 회원 가입, 주문, 게시판 글쓰기, 댓글 달기 등

메시지 전달

POST /members HTTP/1.1
Content-Type: application.json

{
	"username": "young",
    "age": 20
}

신규 리소스 생성 후, 응답 데이터

HTTP/1.1 201 Created
Content-Type: application.json
Content-Length: 34
Location: /members/100

{
	"username": "young",
    "age": 20
}

3. PUT


  • 리소스를 대체(수정)
    • 리소스가 있으면 대체
    • 리소스가 없으면 생성
    • 리소스를 완전히 대체(덮어버림)
  • Update
  • 클라이언트가 리소스 위치를 알고 URI 지정 (POST와 차이점)

요청

POST /members/100 HTTP/1.1
Content-Type: application.json

{
	"username": "old",
    "age": 50
}

응답

POST /members/100 HTTP/1.1
Content-Type: application.json

{
    "age": 50
}

4. PATCH


  • 리소스 부분 변경 (PUT과 차이점)
  • Update
PATCH /members/100 HTTP/1.1
Content-Type: application.json

{
    "age": 50
}

5. DELETE

  • 요청된 리소스 삭제
  • Delete
DELETE /members/100 HTTP/1.1
Host: localhost:8080



기타 메서드

  • HEAD: GET과 동일하지만 응답 본문을 포함하지 않는다.
  • OPTION: 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)
  • CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정 (거의 사용하지 않음)
  • TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 (거의 사용하지 않음)



참고

모든 개발자를 위한 HTTP 웹 기본 지식(인프런 김영한님 강의
HTTP 요청 메서드 (MDN)

profile
Front-End Developer👩🏻‍💻 미래 준비생 🌱

0개의 댓글