ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 데이터 전송 방식 개요
    인터넷 통신 2024. 10. 9. 21:29
    반응형

     

    HTTP 데이터 전송 방식 개요

     

    HTTP 프로토콜을 이용한 클라이언트와 서버 간의 데이터 전송 방법은 주로 쿼리 파라미터, 메시지 바디, HTML Form을 통한 방식으로 나뉩니다. 이 글에서는 초보자가 쉽게 이해할 수 있도록 이러한 데이터 전송 방식과 관련된 개념들을 설명하고, HTTP API 설계와 다양한 파일 관리 방식에 대해서도 예시를 들어가며 설명하겠습니다.

     


     

    1. 클라이언트에서 서버로 데이터 전송 방법

    • 쿼리 파라미터를 통한 데이터 전송 (GET)
      주로 정렬, 필터, 검색어 등 짧은 데이터를 전송할 때 사용됩니다.
      • 예시: /members?search=kim&sort=asc
    • 메시지 바디를 통한 데이터 전송 (POST, PUT, PATCH)
      큰 데이터를 전송할 때나, 리소스를 생성, 수정할 때 사용합니다.
      • 예시: 회원가입, 상품 주문, 리소스 등록, 리소스 수정

    2. 정적 데이터 vs 동적 데이터 조회

    • 정적 데이터 조회: 이미지, 정적 텍스트 문서 등의 변경되지 않는 데이터.
    • 동적 데이터 조회: 게시판 목록, 검색 결과 등 필터나 정렬이 필요한 데이터.

     

    3. HTML Form을 통한 데이터 전송

    HTML Form은 주로 웹 페이지에서 데이터를 전송할 때 사용되며, GET과 POST 방식만을 지원합니다.

    • 주요 사용 예시: 회원가입, 상품 주문, 데이터 수정

    Form 전송의 Content-Type:

    • application/x-www-form-urlencoded:
      • Form 데이터를 URL 인코딩하여 전송
      • 형식: key=value (예: abc김 → abc%EA%B9)
    • multipart/form-data:
      • 파일 업로드 시 사용되며, 여러 종류의 파일과 Form 데이터를 함께 전송 가능

    4. HTTP API를 통한 데이터 전송 방식

    • 주요 사용처: 서버 간 통신, 앱 클라이언트, 웹 클라이언트(AJAX)를 통한 데이터 전송
    • 주요 기능: 회원가입, 상품 주문, 리소스 생성 및 수정

    HTML Form vs HTTP API

    • HTML Form은 GET, POST만 지원하지만, HTTP API는 다양한 HTTP 메서드를 활용해 데이터를 전송합니다.

    HTTP API 설계 예시

    기능URI메서드

    회원 목록 /members GET
    회원 등록 /members POST
    회원 조회 /members/{id} GET
    회원 수정 /members/{id} PATCH, PUT, POST
    회원 삭제 /members/{id} DELETE

     


    5. POST 기반 리소스 등록

    POST 방식으로 새로운 리소스를 등록할 때 클라이언트는 등록될 리소스의 URI를 알 필요가 없습니다. 서버가 URI를 생성해주기 때문입니다.

    • 예시: /members → POST로 회원 등록

    서버의 응답:

    • 201 Created: 리소스가 성공적으로 생성됨을 알리는 HTTP 상태 코드
    • Location 헤더: 새로 생성된 리소스의 URI를 알려줌 (예: /members/100)

     


    6. 컬렉션, 문서, 스토어, 컨트롤러의 개념

    개념설명예시

    문서 단일 객체나 파일을 가리키는 URI /members/100, /files/star.jpg
    컬렉션 서버가 관리하는 리소스 디렉터리로, URI를 서버가 생성하고 관리 /members
    스토어 클라이언트가 URI를 직접 관리하는 자원 저장소 /files
    컨트롤러 문서나 컬렉션으로 처리하기 어려운 프로세스를 실행 /members/{id}/delete

     

     


    7. 파일 관리 시스템 예시

    파일 관리 시스템에서는 주로 RESTful API를 통해 파일을 업로드, 조회, 삭제할 수 있습니다. 각각의 파일을 리소스로 다루며, 파일을 처리하기 위한 URI와 HTTP 메서드가 정의됩니다.

    기능URI메서드

    파일 목록 조회 /files GET
    파일 조회 /files/{filename} GET
    파일 등록 /files/{filename} PUT
    파일 삭제 /files/{filename} DELETE
    파일 대량 등록 /files POST
    • 파일 목록 조회 (GET /files): 서버에 저장된 파일들의 목록을 가져옵니다.
    • 파일 조회 (GET /files/{filename}): 지정된 파일명을 통해 해당 파일의 내용을 조회합니다.
    • 파일 등록 (PUT /files/{filename}): 파일명을 지정하여 서버에 파일을 업로드하거나 덮어씁니다.
    • 파일 삭제 (DELETE /files/{filename}): 서버에서 지정된 파일명을 가진 파일을 삭제합니다.
    • 파일 대량 등록 (POST /files): 여러 파일을 한 번에 업로드할 때 사용합니다.

    8. HTTP API 스토어와 PUT 기반 리소스 등록

    PUT 방식은 주로 클라이언트가 리소스의 URI를 알고 있을 때 사용됩니다. 클라이언트가 명시적으로 지정한 URI로 리소스를 등록하거나 갱신할 때, 서버가 그 URI에 해당하는 리소스를 관리하게 됩니다.

    PUT 기반 리소스 등록의 특징:

    • 클라이언트가 URI를 직접 관리: 클라이언트가 서버에 등록할 리소스의 URI를 직접 지정합니다.
    • 리소스의 덮어쓰기: 같은 URI에 대해 요청이 여러 번 들어오면 리소스가 덮어쓰기됩니다.

    예시:
    클라이언트가 /files/myfile.txt라는 URI를 알고 있을 경우, PUT 요청을 통해 파일을 업로드하거나 갱신할 수 있습니다.

    http
    PUT /files/myfile.txt

    9. HTML Form과 AJAX를 통한 데이터 전송

    HTML Form은 웹에서 GET과 POST 방식만을 지원합니다. 하지만 AJAX 같은 기술을 활용하면 더 다양한 HTTP 메서드를 사용할 수 있어 RESTful한 API와 결합하기 적합합니다. 다음은 HTML Form 전송과 AJAX의 차이점 및 활용 방법에 대한 설명입니다.

    HTML Form 전송:

    기능URI메서드

    회원 목록 /members GET
    회원 등록 폼 /members/new GET
    회원 등록 /members/new, /members POST
    회원 조회 /members/{id} GET
    회원 수정 폼 /members/{id}/edit GET
    회원 수정 /members/{id}/edit, /members/{id} POST
    회원 삭제 /members/{id}/delete POST

    HTML Form 전송 방식에서는 GET과 POST만 사용 가능하기 때문에, 추가적인 수정, 삭제 작업을 처리할 때는 동사가 포함된 URI를 사용해야 할 경우가 많습니다. 예를 들어, /members/{id}/delete와 같은 URI가 필요하게 됩니다. 이를 컨트롤 URI라고 부릅니다.

    AJAX와 같은 기술을 활용하는 경우:
    AJAX를 통해 클라이언트 측에서 동적으로 요청을 보낼 수 있으며, 다양한 HTTP 메서드(GET, POST, PUT, PATCH, DELETE)를 사용할 수 있습니다. 이를 통해 RESTful API와의 통합이 가능합니다.

     

     


    10. 컬렉션, 문서, 스토어, 컨트롤러 개념

    RESTful한 API에서는 리소스를 다루는 방법을 구체화하기 위해 다양한 개념이 사용됩니다.

    개념설명예시

    문서 (Document) 단일 리소스 (파일 하나, 객체 인스턴스, 데이터베이스 행) /members/100, /files/star.jpg
    컬렉션 (Collection) 서버가 관리하는 리소스들의 디렉토리로, 서버가 URI를 생성하고 관리 /members
    스토어 (Store) 클라이언트가 리소스의 URI를 직접 관리하는 자원 저장소 /files
    컨트롤러 (Controller) 추가적인 처리나 동작이 필요한 경우, 동사를 포함한 URI 사용 /members/{id}/delete
    1. 문서 (Document): 특정 리소스(파일이나 데이터베이스의 개별 행)를 의미하며, 단일 개체에 대한 정보입니다.
      • 예시: /members/100은 특정 회원 100번에 대한 정보를 나타냅니다.
    2. 컬렉션 (Collection): 여러 리소스를 담고 있는 디렉토리 개념으로, 서버가 URI를 생성하고 관리합니다.
      • 예시: /members는 전체 회원 목록을 의미합니다.
    3. 스토어 (Store): 클라이언트가 URI를 알고 있고, 관리하는 자원 저장소입니다. 클라이언트가 파일 등의 리소스를 저장하고 관리할 수 있습니다.
      • 예시: /files는 클라이언트가 저장한 파일들을 관리하는 곳입니다.
    4. 컨트롤러 (Controller): 동사를 포함한 URI를 통해 특정 프로세스를 수행합니다. 주로 리소스를 처리하는 것 외에도 특정 동작을 수행할 때 사용됩니다.
      • 예시: /members/{id}/delete는 특정 회원을 삭제하는 명령을 나타냅니다.

    11. 컨트롤 URI와 HTTP 메서드 사용의 차이

    HTML Form에서 GET과 POST만을 지원하기 때문에, 추가적인 동작(수정, 삭제 등)을 처리하기 위해 동사가 포함된 컨트롤 URI를 사용할 수 있습니다. 반면, HTTP API에서는 PUT, PATCH, DELETE와 같은 다양한 HTTP 메서드를 활용할 수 있습니다.

    접근 방식지원 HTTP 메서드URI 형식

    HTML Form GET, POST /members/{id}/delete (동사 포함)
    HTTP API GET, POST, PUT, DELETE, PATCH /members/{id} (HTTP 메서드로 구분)

    컨트롤 URI는 POST 메서드로만 처리할 수 있는 환경에서 동사(예: delete, edit)를 포함시켜 의미를 명확히 전달하는 방식입니다. 반면, HTTP API는 메서드 자체로 동작을 명시할 수 있기 때문에 더 간결한 URI를 사용할 수 있습니다.

     

    반응형

    '인터넷 통신' 카테고리의 다른 글

    FTP란 무엇일까?  (0) 2025.03.28
    HttpServletRequest는 무엇인가?  (0) 2024.08.15
    HTTP URL 구조와 사용 예시  (0) 2024.07.25

    댓글

Designed by Tistory.