HTTP Method

0

Web

목록 보기
2/3
post-thumbnail

이번 포스트에서는 HTTP 메서드에 대해 알아보겠습니다.

HTTP란?

  먼저, HTTP란 무엇인지 알아야 합니다. HTTP는 Hypertext Transfer Protocol의 약자로, 웹상에서 클라이언트와 서버가 통신(데이터를 주고 받는 행위)하기 위해 사용하는 일종의 규약입니다. HTTP는 현재 인터넷에서 가장 널리 사용되는 프로토콜 중 하나이며, 요청(request)와 응답(response)을 이용하여 데이터를 주고 받습니다. 클라이언트는 요청을 보내고, 서버는 이에 응답하며 통신이 이루어 집니다.

HTTP 요청

   HTTP 요청은 일반적으로 URL을 통해 지정된 리소스에 대한 액션(조회, 추가, 수정, 삭제 등)과 데이터를 포함합니다. 예를 들어, 브라우저에서 웹 페이지를 요청하는 경우 GET 메서드를 사용하고, 서버에 데이터를 전송하는 경우 POST 메서드를 사용합니다.

HTTP 응답

   HTTP 응답은 요청에 대한 결과를 나타내며, 상태 코드(status code), 헤더, 본문 등의 정보를 포함합니다. 상태 코드는 요청의 성공 또는 실패를 나타내며, 200 OK, 404 Not Found, 500 Internal Server Error 등이 있습니다.

HTTP 기본 메서드

   HTTP 메서드는 클라이언트가 서버에 요청을 보내는 방식을 의미합니다. 아래 기본적인 4개의 메서드들의 특징과, fetch함수를 통해 각 메서드를 이용해 서버에 요청을 보내는 예시까지 하나씩 알아보겠습니다.

GET

  • 서버에 리소스를 요청하는 메서드
  • 서버의 데이터를 변경하지 않음
  • 쿼리(쿼리 파라미터, 쿼리 스트링)를 통해 서버에 데이터를 전달
    fetch('https://example.com/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error(error));

POST

  • 새로운 리소스를 생성하거나 기존 리소스를 수정하는 메서드
  • 서버의 데이터를 변경함
  • 요청 바디(request body)를 통해 서버로 요청 데이터를 전달, 이를 서버가 처리하여 새로운 리소스를 생성하거나 기존 리소스를 수정
    const postData = { name: 'John Doe', email: 'johndoe@example.com' };
    
    fetch('https://example.com/data', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(postData),
    })
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error(error));

PUT

  • 새로운 리소스를 생성하거나 기존 리소스를 수정하는 메서드
  • 서버의 데이터를 변경함
  • 서버에 리소스가 있으면 클라이언트가 보낸 데이터로 대체하고, 없으면 생성한다.
  • POST와 달리 클라이언트가 리소스 위치를 알고 URI를 지정해줘야함.
  • 요청 바디(request body)에 데이터와 함께 해당 리소스의 위치(URI)를 지정하고, 서버는 이 위치에 데이터를 저장하거나 수정한다.
    const putData = { name: 'Jane Doe', email: 'janedoe@example.com' };
    
    fetch('https://example.com/data/123', {
      method: 'PUT',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(putData),
    })
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error(error));

DELETE

  • 지정한 리소스를 삭제하는 메서드
  • 서버의 데이터를 변경함
  • 요청한 리소스를 서버에서 삭제함
    fetch('https://example.com/data/123', {
      method: 'DELETE',
    })
      .then(response => {
        if (response.ok) {
          console.log('Resource deleted successfully.');
        } else {
          console.error('Error deleting resource.');
        }
      })
      .catch(error => console.error(error));

HTTP 기타 메서드

  위에서 알아본 4가지의 기본 메서드 외에도 여러 메서드들이 있습니다. 다만 기본 메서드들에 비해 사용되는 빈도가 현저히 낮습니다. 간단히만 알아보겠습니다.

PATCH

  • 기존 리소스의 일부를 수정하는 메서드
  • 서버의 데이터를 변경함
  • PUT요청과 달리 기존 리소스 수정에만 목적이 있는 메서드로, 클라이언트가 보낸 데이터로 완전히 대체하는 것이 아닌 부분 수정만 이루어짐
  • 요청 바디(request body)에 수정할 데이터와 함께 해당 리소스의 위치(URI)를 지정하고, 서버는 이 위치에 해당하는 리소스의 일부를 수정함
  • GET과 동일한 요청을 하지만, 응답 본문이 없이 상태 코드와 헤더 정보만을 반환함.
  • 주로 리소스의 존재 여부를 확인하는 용도로 사용

OPTIONS

  • 서버가 지원하는 메서드 목록과 리소스에 대한 지원 옵션 정보를 반환
  • 주로 클라이언트가 사용 가능한 메서드를 확인하기 위해 사용

CONNECT

  • 프록시 서버를 통해 서버와 연결하는 메서드
  • 주로 HTTPS와 같은 보안 연결을 설정하기 위해 사용

0개의 댓글