요청(Request)과 응답(Response)

Kkd·2024년 12월 6일
0

매일메일 개념정리

목록 보기
19/93

웹의 요청(Request)응답(Response)은 클라이언트(예: 브라우저)와 서버 간의 데이터를 주고받는 기본적인 메커니즘입니다. 이 과정을 통해 웹 애플리케이션은 데이터를 교환하고 사용자에게 콘텐츠를 제공합니다.


1. 요청(Request)

개념

  • 클라이언트가 서버에 무언가를 요청하는 행위입니다.
  • 브라우저, 모바일 앱, API 클라이언트 등에서 생성됩니다.

구성 요소

  1. 요청 메서드 (HTTP Method):

    • 서버에서 수행하려는 작업을 정의합니다.
    • 주요 메서드:
      • GET: 데이터를 조회합니다.
      • POST: 데이터를 생성하거나 서버에 전송합니다.
      • PUT: 데이터를 업데이트합니다.
      • DELETE: 데이터를 삭제합니다.
  2. URL:

    • 서버 리소스의 위치를 나타냅니다. (예: https://example.com/users)
  3. HTTP 헤더:

    • 요청에 대한 추가 정보를 담습니다.
    • 예: Content-Type, Authorization
  4. 쿼리 파라미터:

    • URL에 포함된 키-값 쌍으로 데이터를 전달합니다.
    • 예: /search?query=apple&sort=asc
  5. 본문(Body):

    • 주로 POSTPUT 요청에서 데이터를 전송할 때 사용합니다.
    • 형식: JSON, XML, Form Data 등.

2. 응답(Response)

개념

  • 서버가 클라이언트의 요청에 대한 결과를 반환하는 행위입니다.

구성 요소

  1. 상태 코드 (HTTP Status Code):

    • 요청 처리 결과를 숫자로 나타냅니다.
    • 주요 상태 코드:
      • 200: 요청 성공
      • 201: 리소스 생성 성공
      • 400: 잘못된 요청 (클라이언트 오류)
      • 401: 인증 실패
      • 404: 리소스를 찾을 수 없음
      • 500: 서버 내부 오류
  2. HTTP 헤더:

    • 응답에 대한 메타데이터를 포함합니다.
    • 예: Content-Type, Cache-Control
  3. 본문(Body):

    • 응답 데이터가 포함됩니다.
    • HTML, JSON, XML 등 다양한 형식으로 제공됩니다.

3. 요청과 응답 과정

단계별 과정

  1. 클라이언트 요청 생성:

    • 사용자가 브라우저에서 URL을 입력하거나 버튼을 클릭하면 요청이 생성됩니다.
  2. DNS 조회:

    • 도메인 이름(예: example.com)을 IP 주소로 변환하여 서버 위치를 확인합니다.
  3. TCP/IP 연결:

    • 클라이언트와 서버 간에 TCP 연결을 생성합니다.
  4. HTTP 요청 전송:

    • 클라이언트가 요청 메서드, URL, 헤더, 본문을 포함한 HTTP 요청을 서버로 보냅니다.
  5. 서버 처리:

    • 서버는 요청을 받아 해당 작업(데이터 조회, 생성, 업데이트 등)을 수행합니다.
  6. 응답 생성:

    • 요청 처리 결과를 상태 코드, 헤더, 본문과 함께 HTTP 응답으로 생성합니다.
  7. 클라이언트 응답 수신:

    • 브라우저가 응답을 받아 사용자에게 결과를 렌더링합니다.
  8. TCP 연결 종료:

    • 작업이 완료되면 연결이 종료됩니다.

4. 요청과 응답의 주요 예시

GET 요청

GET /api/products HTTP/1.1
Host: example.com
Accept: application/json

응답:

HTTP/1.1 200 OK
Content-Type: application/json

[
    { "id": 1, "name": "Laptop", "price": 1000 },
    { "id": 2, "name": "Mouse", "price": 50 }
]

POST 요청

POST /api/products HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "name": "Keyboard",
    "price": 120
}

응답:

HTTP/1.1 201 Created
Content-Type: application/json

{
    "id": 3,
    "name": "Keyboard",
    "price": 120
}

5. 클라이언트와 서버 간 통신의 흐름

  1. 클라이언트 이벤트 발생: 사용자 요청 → 브라우저에서 HTTP 요청 전송
  2. 네트워크 통신: 클라이언트와 서버 간 데이터 전송
  3. 서버 처리: 요청에 따라 데이터베이스 작업, 비즈니스 로직 실행
  4. 응답 반환: 처리 결과를 클라이언트에 반환
  5. 결과 렌더링: 응답 데이터를 바탕으로 사용자 화면 업데이트

이 과정을 통해 웹 애플리케이션은 데이터를 동적으로 처리하며 사용자와 상호작용합니다.

추가 학습 자료

profile
🌱

0개의 댓글