1. HTTP의 정의
HTTP (HyperText Transfer Protocol) 은 클라이언트(브라우저, 모바일 앱 등) 와 서버(웹 서버, API 서버 등) 간에 데이터를 주고받기 위한 애플리케이션 계층 프로토콜입니다.
웹 페이지 로드, API 호출, 이미지·동영상 다운로드 등 거의 모든 웹 통신에서 사용됩니다.
주요 특징
- 무상태성 (Stateless): 요청 간 상태를 저장하지 않음. → 각 요청은 독립적으로 처리.
- 확장성 (Extensibility): REST API, GraphQL 등 다양한 아키텍처의 기반으로 사용.
- 표준화 (Standardization): 전 세계적으로 통용되는 표준 프로토콜.
2. HTTP 요청 구조
HTTP 요청은 다음과 같은 요소로 구성됩니다.
GET /users?page=1 HTTP/1.1 Host: example.com User-Agent: Chrome/140.0 Content-Type: application/json { "name": "Alice" }
- 메서드(Method): 요청의 의도 (예: 조회, 생성, 수정, 삭제).
- URL (Request Target): 요청 대상 리소스의 위치.
- 헤더(Header): 인증 정보, 데이터 형식, 캐싱 정책 등 부가 메타데이터.
- 본문(Body): 요청 시 전송되는 실제 데이터 (주로 POST/PUT/PATCH에서 사용).
3. HTTP 주요 메서드
1) GET
- 리소스 조회 요청
- URL에 Query String(?key=value)으로 데이터 전달
- 본문(Body) 미사용
GET /users/1 HTTP/1.1
2) POST
- 새로운 리소스 생성
- 요청 본문에 JSON, XML, Form 데이터 포함
POST /users HTTP/1.1 Content-Type: application/json { "name": "Alice", "email": "alice@example.com" }
3) PUT
- 리소스 전체 수정 (덮어쓰기)
- 존재하지 않으면 새로 생성하기도 함
PUT /users/1 HTTP/1.1 Content-Type: application/json { "name": "Alice Kim", "email": "alice@example.com" }
4) PATCH
- 리소스 부분 수정
- 필요한 필드만 변경
PATCH /users/1 HTTP/1.1 Content-Type: application/json { "email": "newalice@example.com" }
5) DELETE
- 리소스 삭제
DELETE /users/1 HTTP/1.1
6) 기타 메서드
- HEAD: GET과 동일하지만 응답 본문 제외. 리소스 존재 여부/메타데이터 확인 시 사용.
- OPTIONS: 서버가 지원하는 메서드 조회 (CORS Preflight 요청에 사용).
- TRACE: 요청을 그대로 반환 (디버깅 목적, 보안상 거의 사용하지 않음).
4. 상태 코드 (Status Code)
HTTP 응답은 항상 상태 코드를 포함합니다.
이는 클라이언트가 요청 처리 결과를 명확히 해석할 수 있도록 합니다.
범위의미
| 2xx (성공) | 요청이 정상 처리됨 |
| 3xx (리다이렉션) | 리소스 위치 변경 또는 다른 URI로 이동 필요 |
| 4xx (클라이언트 오류) | 잘못된 요청 (예: 파라미터 오류, 인증 실패) |
| 5xx (서버 오류) | 서버 내부 처리 실패 |
주요 상태 코드
- 200 OK → 성공
- 201 Created → 리소스 생성 성공
- 400 Bad Request → 잘못된 요청
- 401 Unauthorized → 인증 실패
- 404 Not Found → 리소스 없음
- 500 Internal Server Error → 서버 내부 오류
5. 정리
- HTTP는 웹 통신의 핵심 프로토콜로, 요청/응답 구조 기반으로 동작한다.
- 메서드(Method) 는 요청의 의도를 표현:
- GET: 조회
- POST: 생성
- PUT: 전체 수정
- PATCH: 부분 수정
- DELETE: 삭제
- HEAD, OPTIONS 등은 특수 목적
- 응답은 반드시 상태 코드(Status Code) 와 함께 전달되며, REST API 설계의 핵심 기반을 이룬다.
'네트워크' 카테고리의 다른 글
| 사용자가 웹사이트에 처음 접근했을 때 벌어지는 일 (0) | 2025.09.24 |
|---|