HTTP Method에 대해

wujin·2024년 5월 19일
post-thumbnail

HTTP Method란?

HTTP Method는 웹 서버와 클라이언트 간의 통신에서 사용되는 명령어로, 특정 작업을 요청하기 위해 사용된다.

아래와 같이 총 9가지의 Method가 존재한다.

주요 메서드

  • 컨텐츠 기반의 직접적인 액션을 취하는 역할
  • GET, POST, PUT, PATCH, DELETE

기타 메서드

  • 환경적인 요소를 확인하거나, 문제를 진단하는 역할
  • HEAD, OPTIONS, TRACE, CONNECT

HTTP Method 종류

1. GET Method

  • 서버로부터 리소스 조회
  • URL에 쿼리 문자열(query string)을 통해 데이터를 전달
  • 예시: /api/users?name=John&age=30에 대한 GET 요청
GET /api/users?name=John&age=30

2. POST Method

  • 서버에 데이터를 제출하여 새로운 리소스를 생성
  • 요청 본문(body)에 데이터를 포함하여 서버에 전송
POST /api/users
Content-Type: application/json

{
  "name": "Alice",
  "email": "alice@example.com",
  "age": 25
}

3. PUT Method

  • 서버에 데이터를 보내 지정된 리소스를 대체
  • 요청 본문(body)에 리소스의 전체 표현을 포함하여 서버 전송
  • 예시: ID123인 사용자를 업데이트하는 PUT 요청
PUT /api/users/123
Content-Type: application/json

{
  "name": "Bob",
  "email": "bob@example.com",
  "age": 35
}

4. PATCH Method

  • 리소스의 부분적인 업데이트 수행
  • 요청 본문(body)에 리소스의 일부 변경 사항만 포함하여 서버에 전송
  • 예시: ID123인 사용자의 이메일을 업데이트하는 PATCH 요청
PATCH /api/users/123
Content-Type: application/json

{
  "email": "bob.new@example.com"
}

5. DELETE Method

  • 서버에서 지정된 리소스 삭제
  • 요청 본문(body)을 사용하지 않고, 삭제할 리소스를 URL에 포함하여 전달
  • 예시: ID123인 사용자를 삭제하는 DELETE 요청
DELETE /api/users/123

6. HEAD Method

  • 클라이언트가 요청한 URI의 컨텐츠가 웹 서버에 존재하는지 확인할 때 사용
  • GET 메서드와 유사하지만, 응답 본문(body)을 제외한 헤더 정보만 요청

7. OPTIONS Method

  • 서버에서 지원하는 HTTP Method를 확인할 때 사용
  • 서버가 지원하는 HTTP 요청 방식을 응답 헤더에 포함하여 클라이언트에게 응답
  • 보안 정책에서 허용된 메서드 및 권한을 확인할 때 유용하며, Cross-Origin Resource Sharing(CORS)와 관련하여 웹 애플리케이션 간의 통신을 지원하기 위해 주로 사용

8. TRACE Method

  • 서버로 가는 네크워크 경로를 체크할 때 사용
  • 서버와 클라이언트 사이에 중간 서버가 존재할 경우 확인 가능
  1. 클라이언트가 TRACE로 웹 서버에 요청
  2. 중간 서버가 요청을 받고 그대로 웹 서버로 전달
    • 클라이언트의 요청 메시지에 Via를 추가하여 전달
    • `Via``는 중간 서버의 정보를 포함
  3. 서버는 Via가 포함된 클라이언트의 요청 메시지를 받음
  4. 요청 메시지 전체를 응답 데이터에 포함하여 클라이언트에게 전달
  5. 클라이언트가 웹 서버로부터 전달된 데이터를 받음
    • 데이터에 포함된 Via 정보를 통해 경로상에 중간 서버가 존재함을 확인

9. CONNECT Method

  • 일반적인 HTTP 요청은 프록시 서버를 거쳐가기 때문에 클라이언트-서버 간의 직접 통신은 이루어지지 않는다. 하지만 CONNECT Method를 사용하면 클라이언트가 프록시 서버에게 특정한 호스트와 포트로의 TCP 연결을 설정하도록 요청한다. 그러면 프록시 서버는 클라이언트와 목적지 서버 간에 직접적인 터널링을 설정하여 데이터를 전달하게 된다.
  • 보안을 강화하기 위해 일반적으로 프록시 서버와 클라이언트 간의 터널링은 SSL/TLS 프로토콜을 사용하여 암호화된다. 이를 통해 클라이언트와 서버 간의 통신이 안전하게 이루어지게 된다.
  • 클라이언트가 HTTPS 사이트에 안전하게 연결하기 위해 프록시 서버를 통해 터널링을 설정
  • 보안 정책을 적용하거나 인증을 수행하는 프록시 서버를 설정할 때 사용

0개의 댓글