HTTP
HTTP는 클라이언트가 자원에 대한 요청을 보내고 서버가 상태·헤더·본문으로 응답하는 무상태 응용 계층 프로토콜이다.
1. 개요
HTTP(Hypertext Transfer Protocol)는 웹의 클라이언트와 서버가 자원을 요청하고 응답하는 의미 체계다. 대상 자원은 문서에 한정되지 않고 이미지, 파일, API 결과 등 무엇이든 될 수 있다.[1]
2. 핵심 구성
| 구분 | 설명 |
|---|---|
| 메서드 | GET·HEAD·POST·PUT·DELETE 등 요청 목적 표현 |
| 상태 코드 | 2xx 성공, 3xx 이동, 4xx 요청 문제, 5xx 서버 문제 |
| 필드 | 콘텐츠 형식·캐시·인증 등 부가 정보를 이름과 값으로 전달 |
| 본문 | 필요할 때 표현 데이터나 오류 설명을 운반 |
3. 작동 원리
클라이언트는 메서드와 대상, 필드, 선택적 본문을 보낸다. 서버는 자원의 현재 상태와 요청 의미를 바탕으로 응답한다. HTTP는 각 요청을 독립적으로 이해하는 무상태 프로토콜이지만 쿠키·인증 토큰·서버 세션을 결합하면 로그인 같은 연속 상태를 구현할 수 있다.
4. 형성과 표준
HTTP/0.9의 단순한 문서 전송에서 HTTP/1.0과 1.1의 필드·캐시·연결 관리가 발전했다. HTTP/2는 한 연결에서 여러 스트림을 다루고, HTTP/3는 QUIC 위에서 전송한다. 버전이 달라도 메서드와 상태 코드 등 공통 의미는 RFC 9110이 정의한다.[2]
5. 활용과 주의점
GET처럼 안전하다고 정의된 메서드에 데이터 변경 부작용을 넣지 않는 것이 좋다. 캐시·재시도·리디렉션은 메서드 의미와 상태 코드에 영향을 받는다. 민감한 통신은 평문 HTTP가 아니라 HTTPS를 사용하며 URL에 비밀정보를 넣지 않는다.