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

jkky98·2024년 7월 5일
0

HTTP

목록 보기
4/8
post-thumbnail

데이터 전송

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

  • Query Parameter를 통한 데이터 전송

    • 주로 GET 메서드에서 사용되는 방식이다.
    • URL에 쿼리 파라미터를 포함하여 데이터를 전송하며, 주로 정렬, 필터링 등의 작업에 활용된다.
    • 예: /members?sort=asc&filter=active.
  • Message Body를 통한 데이터 전송

    • POST, PUT, PATCH 메서드에서 사용되는 방식이다.
    • 메시지 바디에 데이터를 담아 전송하며, 회원가입, 주문, 리소스 등록 및 변경 등 다양한 작업에 활용된다.
    • 예: { "username": "user1", "password": "pass1" }.

이 두 가지 방식은 각각의 메서드와 작업 유형에 따라 적합하게 선택되어 사용된다.

정적 데이터 조회

데이터 조회의 경우 HTTP Method는 GET을 사용한다.
정적 데이터란 이미지, 정적 텍스트 문서와 같이 변경되지 않는 리소스를 의미하며, 일반적으로 쿼리 파라미터 없이 단순히 리소스 경로를 통해 조회할 수 있다.
예: /images/logo.png 또는 /docs/manual.pdf.
정적 데이터 조회는 서버에 부담을 최소화하며, 캐싱을 통해 성능을 더욱 최적화할 수 있다.

동적 데이터 조회

GET Method와 쿼리 파라미터를 함께 사용하여 동적 데이터를 조회한다.
동적 데이터 조회는 조회 조건을 제한하거나 필터링하고, 결과를 정렬하는 등의 작업에 주로 활용된다.
예: /members?status=active&sort=asc
이 방식은 클라이언트가 원하는 조건에 맞는 데이터를 서버에서 효율적으로 조회할 수 있도록 한다.

HTML Form

HTML의 <form> 태그를 사용하면 서버로 데이터를 전송할 수 있으며, action 속성으로 지정된 리소스에 데이터를 보낸다.(예: action="/submit"은 데이터를 서버의 /submit 경로로 보냄)
또한, method="post"를 지정하면 HTTP POST 요청으로 데이터를 전송할 수 있다.


서버로 데이터 전송 방식

HTML 폼 요소에서 데이터를 서버로 전송할 때, 각 입력 요소의 데이터는 HTTP 메시지 바디name=value 형식으로 전달된다.

  • name: 입력 요소의 이름을 나타내며, 서버에서 데이터를 식별하는 데 사용된다.
  • value: 사용자가 입력한 실제 값이다.

예를 들어, 폼에서 다음과 같은 데이터가 전송될 수 있다:
name=John&age=25&email=john@example.com


폼 태그의 기본 요소

HTML 폼에서 사용되는 주요 태그는 다음과 같다:

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

GET 요청 처리

만약 GET 요청을 사용한다면, 폼 데이터는 URI의 쿼리 파라미터에 포함되어 요청 메시지가 구성된다.
예:
GET /search?query=hello&filter=recent
이를 통해 데이터를 URI에 포함하여 서버로 전송할 수 있다.


HTML 폼은 클라이언트와 서버 간 데이터 전송의 기본 구조를 제공하며, 백엔드로 전달되는 최종 데이터는 name=value&name1=value1 형태로 직렬화된다.

multipart/form-data

multipart/form-data는 일반적인 텍스트 데이터가 아닌 파일을 서버로 전송할 때 사용된다.
일반적으로 <input type="file"> 요소를 사용하여 파일을 업로드할 때,
action, method 외에 enctype="multipart/form-data"를 지정해야 한다.
이렇게 하면 요청 메시지는 Form과는 다른 방식으로 multipart 문법에 따라 구성된다.
요청의 message body에는 각 파일과 입력 데이터가 multipart 형식으로 구분되어 포함된다.

  • 참고로, HTML Form 전송GETPOST만을 지원한다.

HTTP API 데이터 전송

HTTP API에서는 데이터를 전송할 때 주로 JSON(JavaScript Object Notation) 형식을 사용한다.
현대 웹 애플리케이션에서는 JSON이 데이터 직렬화 및 전송에 있어 사실상 표준으로 자리 잡았다.

반면, 일반적인 HTTP 전송에서는 HTML Form 데이터를 URL 인코딩된 형식(application/x-www-form-urlencoded)으로 전송하는 경우가 일반적이다.
예:

  • HTTP API: {"name": "John", "age": 25}
  • HTML Form 데이터: name=John&age=25

API (Application Programming Interface)

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


API의 주요 역할

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

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

  3. 표준화된 프로토콜 사용
    API는 HTTP와 같은 표준 프로토콜을 사용하며, 이를 통해 다양한 플랫폼프로그래밍 언어에서 API를 쉽게 활용할 수 있다.

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

profile
자바집사의 거북이 수련법

0개의 댓글