모든 개발자를 위한 HTTP 웹 기본 지식 : Make use of http method

jkky98·2024년 7월 5일
0

HTTP

목록 보기
4/7

데이터 전송

클라이언트에서 서버로 데이터를 전송하는 방법은 크게 2가지로 나뉜다.

  • QueryParameter 를 통한 데이터 전송
    주로 GET 메서드에서의 데이터 전송 방식이며 정렬 필터등으로 사용된다.
  • MessageBody를 통한 데이터 전송
    POST, PUT, PATCH에 해당하는 데이터 전송 방식이며 메세지 바디에 들어있는 데이터를 활용하여 다양한 처리를 한다.(ex.회원가입, 주문, 리소스 등록, 변경)

정적 데이터 조회

데이터 조회의 경우 Method는 GET이다. 정적 데이터는 이미지, 정적 텍스트 문서에 해당하며 일반적으로 쿼리 파라미터 없이 리소스 경로를 통해 단순하게 조회가 가능하다.

동적 데이터 조회

GET + 쿼리 파라미터를 사용한다. 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용한다.

HTML Form

HTML의 form 태그를 이용하면 action에 지정한 리소스로 method="post"를 지정하여 POST 요청을 보낼 수 있다.

HTML 폼 요소에서 서버로 데이터를 전송할 때, 각 요소의 데이터는 HTTP POST 요청의 메시지 바디에 name=value 형식으로 전달된다. 여기서 name 속성은 각 입력 요소의 이름을 나타내며, 이는 서버에서 데이터를 식별하는 데 사용된다.

위의 예시에서 input 태그의 name은 메시지바디의 key에 대응되며 value의 경우에는 사용자가 입력한 데이터가 될 것이다.

form태그 안에서 지원되는 기본 태그들은 다음과 같다.(프론트 엔드)

input: 텍스트 입력, 라디오 버튼, 체크박스 등 다양한 입력 유형을 제공합니다.
textarea: 여러 줄의 텍스트 입력을 제공합니다.
select 및 option: 드롭다운 목록을 만들어 선택 옵션을 제공합니다.
button: 폼 전송 버튼이나 일반 버튼을 제공합니다.

결국 백엔드로 전달되는 것은 name=value&name1=value1&.... 이다.

  • GET요청이라면 form안의 데이터를 URI의 쿼리파라미터에 집어넣어서 요청 메세지를 구성하면 된다.

multipart/form-data

multipart/form-data는 일반적인 데이터가 아닌 파일을 통신해야할 때 사용한다. 일반적으로는 input에 파일이 들어올 때 우리는 action, method외에 enctype을 multipart/form-data를 지정해서 요청 메세지를 Form일 때와 다르게 구성한다. 이 경우 요청의 message body에는 multipart에 맞는 문법으로 작성된다.

  • HTML Form 전송은 GET, POST만 지원한다.

HTTP API 데이터 전송

HTTP API에서는 데이터를 전송할 때 주로 JSON(JavaScript Object Notation) 형식을 사용하는 경향이 있다.(요즘은 거의!) 반면에 일반적인 HTTP 전송에서는 HTML 폼 데이터를 URL 인코딩된 형식으로 전송하는 경우가 일반적이다.

API

API(Application Programming Interface)는 소프트웨어 애플리케이션 간의 상호작용을 위한 인터페이스이다. 간단히 말해, API는 서로 다른 소프트웨어 시스템이나 서비스가 서로 통신하고 상호작용할 수 있도록 정의된 규칙의 집합이다.

  • 기능 제공: API(서버)는 특정 서비스나 기능을 다른 애플리케이션(프론트엔드)이 사용할 수 있도록 제공한다. 예를 들어, 지도 서비스의 API는 지리적 위치를 검색하고 지도를 표시하는 기능을 다른 애플리케이션에서 사용할 수 있게 한다.

  • 상호작용 인터페이스: API는 애플리케이션이 데이터를 요청하고 서버로부터 응답을 받는 방법을 정의한다. 이는 데이터를 전송하거나 수정하는 등의 작업을 가능하게 한다.

  • 표준화된 프로토콜 사용: API는 통신을 위해 일반적으로 HTTP와 같은 표준 프로토콜을 사용하며 이는 다양한 플랫폼과 프로그래밍 언어에서 API를 쉽게 사용할 수 있게 한다.

  • 추상화 계층: API는 백엔드 시스템의 복잡성을 숨기고 간단한 인터페이스를 제공함으로써 개발자가 쉽게 기능을 사용할 수 있도록 돕는데 예를 들어, 결제 서비스의 API는 개발자가 실제로 결제를 처리하는 복잡한 과정을 단순한 몇 가지 메서드 호출로 추상화할 수 있다.

profile
펑크레코즈

0개의 댓글