HTTP 통신의 구조: Request와 Response

moonazn·2025년 8월 6일
0

cs

목록 보기
28/31

🕊️ HTTP (HyperText Transfer Protocol)

: 웹에서 데이터를 주고받기 위한 프로토콜

사용자가 웹페이지를 요청 ➡️ 브라우저(클라이언트)와 웹서버 간에 요청(Request)응답(Response)이 오가는 방식

TCP 위에서 동작

  • HTTP는 TCP 기반의 응용 계층 프로토콜이다.
  • 신뢰성 있는 통신을 보장하기 위해 TCP(3-way handshake) 위에서 동작한다.

HTTP는 웹 브라우저와 서버 간의 대화법이다. 💬

1️⃣ HTTP Request 구조

🪼 기본 구조

<메서드> <경로> <프로토콜 버전>
헤더1: 값
헤더2: 값

<바디>
  • 메서드(Method): 요청의 목적을 나타낸다.
    • GET, POST, PUT, DELETE 등
  • 경로(Path): 요청 대상의 자원 위치를 나타낸다.
  • 헤더(Header): 요청 관련 메타 데이터를 담는다.
    • Content-Type, Authorization 등
  • 바디(Body): 클라이언트가 서버에 전송할 실제 데이터를 담는다.
    • POST나 PUT 등에서 사용

🪼 주요 HTTP 메서드

메서드용도 예시
GET데이터 조회
POST데이터 생성/요청 전송
PUT데이터 수정
DELETE데이터 삭제

2️⃣ HTTP Response 구조

🪼 기본 구조

<프로토콜 버전> <상태 코드> <상태 메시지>
헤더1: 값
헤더2: 값

<바디>
  • 상태 코드(Status Code): 요청에 대한 결과 상태를 나타낸다.
  • 헤더(Header): 응답 관련 정보를 담는다.
    • 콘텐츠 타입, 길이 등
  • 바디(Body): 서버가 클라이언트에게 보내는 실제 응답 데이터를 담는다.

🪼 주요 상태 코드

코드의미
200OK – 정상 처리 완료
201Created – 생성 완료
400Bad Request – 잘못된 요청
401Unauthorized – 인증 실패
403Forbidden – 접근 금지
404Not Found – 자원 없음
500Internal Server Error – 서버 오류

3️⃣ 실제 JSON 기반 요청/응답 예시

📥 로그인 요청 (POST)

Request
POST /login HTTP/1.1
Content-Type: application/json

{
  "id": "S018"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json

{
  "group": 3,
  "message": "Login successful"
}

📥 상품 목록 요청 (GET)

Request
GET /catalog HTTP/1.1
Accept: application/json
Response
HTTP/1.1 200 OK
Content-Type: application/json

{
  "products": [
    { "id": "P01", "name": "텀블러", "stock": 12 },
    { "id": "P02", "name": "에코백", "stock": 8 },
    ...
  ]
}
profile
개발 공뷰

0개의 댓글