HTTP 메소드에 대해 설명해 주세요.

2024. 9. 2. 09:54코드잇 스프린트/위클리 페이퍼

HTTP 메소드에 대해 설명해 주세요.


1. HTTP

  • HyperText Transfer Protocol
  • HTML같은 하이퍼 미디어 문서 전송을 위한 프로토콜
  • 클라이언트의 요청과 서버의 응답 통신이 이뤄짐

2. HTTP 요청 메소드

  • 클라이언트가 서버에게 요청의 목적이나 종류를 알리는 수단
  • 주어진 자원에 수행할 동작을 명시함
  • 자원을 다루는 기본 메소드와 통신과 관련된 기타 메소드로 나눌 수 있음

3. 메소드 판단 기준

  • 본문 존재 : 요청/응답에 본문이 존재하는가
  • 안전성 : 요청이 서버 상태를 유지시키는가
  • 멱등성 : 단일 요청과 중복 요청의 결과가 동일한가
  • 캐시 가능성 : 응답을 캐싱하여 다음에 재사용이 가능한가
  • HTML 폼 가능 : HTML 폼으로 요청 가능한가

4. 기본 메소드

4-1. GET

  • 데이터를 받기 위해 사용하는 메소드
  • 요청 본문 X, 응답 본문 O
  • 안정성 O, 멱등성 O
  • 캐시 가능성 O, HTML 폼 O

4-2. POST

  • 데이터를 생성/수정(주로 생성)하기 위해 사용하는 메소드
  • 중복 요청이 추가적인 생성을 발생시킴
  • 요청 본문 O, 응답 본문 O
  • 안정성 X, 멱등성 X
  • 캐시 가능성 △, HTML 폼 O

4-3. PUT

  • 데이터를 생성/수정(주로 수정)하기 위해 사용하는 메소드
  • 중복 요청이 서버에 영향을 주지 않음
  • 요청 본문 O, 응답 본문 △
  • 안정성 X, 멱등성 O
  • 캐시 가능성 X, HTML 폼 X

4-4. DELETE

  • 데이터를 지우기 위해 사용하는 메소드
  • 요청 본문 △, 응답 본문 △
  • 안정성 X, 멱등성 O
  • 캐시 가능성 X, HTML 폼 X

4-5. PATCH

  • 데이터를 부분적으로 수정하기 위해 사용하는 메소드
  • 데이터 맥락 안에서 부분을 수정하므로 멱등성을 보장 못함
  • 요청 본문 O, 응답 본문 O
  • 안정성 X, 멱등성 X
  • 캐시 가능성 X, HTML 폼 X

5. 기타 메소드

5-1. HEAD

  • 헤더를 받기 위해 사용하는 메소드
  • 요청 본문 X, 응답 본문 X
  • 안정성 O, 멱등성 O
  • 캐시 가능성 O, HTML 폼 X

5-2. OPTION

  • 통신 옵션을 받기 위해 사용하는 메소드
  • 요청 본문 X, 응답 본문 △
  • 안정성 O, 멱등성 O
  • 캐시 가능성 X, HTML 폼 X

5-3. CONNECT

  • 요청한 리소스에 대해 양방향 연결을 시작하는 메소드
  • 주로 프록시 서버, VPN 등 터널링에 사용
  • 요청 본문 X, 응답 본문 X
  • 안정성 X, 멱등성 X
  • 캐시 가능성 X, HTML 폼 X

5-4. TRACE

  • 요청한 리소스에 대해 루프백 테스트를 수행하는 메소드
  • 해당 요청에 본문이나 개인적이고 민감한 정보를 담으면 안됨
  • 요청 본문 X, 응답 본문 O
  • 안정성 O, 멱등성 O
  • 캐시 가능성 X, HTML 폼 X

6. 참고 자료