HTTP(HyperText Transfer Protocol, 하이퍼텍스트 전송 프로토콜)는 웹에서 클라이언트(브라우저 등)와 서버가 통신할 때 사용하는 프로토콜입니다.
여기서 말하는 프로토콜이란?
프로토콜(Protocol)**이란 컴퓨터나 네트워크 장비들이 데이터를 주고받을 때 따르는 약속이나 규칙의 집합입니다.
사람끼리 대화할 때 언어(예: 한국어, 영어)를 사용하듯,
컴퓨터끼리 정해진 방식으로 소통해야 이해할 수 있습니다.
이 정해진 통신 방식이 바로 프로토콜입니다.
프로토콜의 역할은 아래와 같습니다.
프로토콜의 역할
- 어떤 데이터를 주고받을지 정함
- 데이터 형식과 구조를 정의함
- 오류가 발생했을 때 처리 방식 규정
- 보안, 인증 등의 절차 포함 가능
HTTP의 주요 특징
- 무상태(stateless)
- HTTP는 요청 간에 상태를 저장하지 않습니다.
- 예: 로그인 후 페이지를 이동해도 이전 요청의 정보는 유지되지 않음 → 이를 보완하기 위해 쿠키, 세션 등을 사용함.
- 클라이언트-서버 구조
- 클라이언트(브라우저)는 요청을 보내고, 서버는 요청에 대한 응답을 보냄.
- 텍스트 기반 프로토콜
- 요청과 응답이 사람이 읽을 수 있는 텍스트 형식으로 이루어짐.
- 비연결성(Connectionless)
- 요청과 응답이 끝나면 연결을 끊음. HTTP/1.1부터는 Keep-Alive를 통해 연결을 유지할 수도 있음.
HTTP 요청 구조
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
- 요청 라인: 메서드(GET, POST 등), 경로, 버전
- 헤더: 클라이언트 정보, 요청 세부 사항
- 본문(body): (POST 등에서) 서버로 전송할 데이터
HTTP 응답 구조
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>...</html>
- 상태 라인: 버전, 상태 코드(200, 404 등), 설명
- 헤더: 응답 세부 정보
- 본문(body): 실제 리소스 데이터
주요 HTTP 메서드
| 메서드 | 설명 |
| GET | 리소스 요청 (조회) |
| POST | 데이터 전송 (등록) |
| PUT | 전체 수정 |
| PATCH | 일부 수정 |
| DELETE | 리소스 삭제 |
HTTP 상태 코드 예시
| 코드 | 의미 |
| 200 | 성공 (OK) |
| 301 | 영구 이동 (리디렉션) |
| 400 | 잘못된 요청 (Bad Request) |
| 401 | 인증 필요 (Unauthorized) |
| 403 | 접근 금지 (Forbidden) |
| 404 | 존재하지 않음 (Not Found) |
| 500 | 서버 오류 (Internal Server Error) |
'웹' 카테고리의 다른 글
| 스프링 프레임워크(Spring Framework)란? (5) | 2025.05.20 |
|---|---|
| WAS에 대하여 (2) | 2025.05.19 |
| 클라이언트-서버 구조에 대하여 (5) | 2025.05.15 |
| MVC패턴 (0) | 2025.05.13 |