티스토리 뷰
목차
1. HTTP란 무엇인가?
: HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받는 애플리케이션 계층의 통신 규약이다. HTML, CSS, JS, 이미지, JSON 등 모든 웹 자원을 클라이언트와 서버 간에 전달할 때 사용된다.
- 비연결성(Connectionless) : 요청-응답이 끝나면 연결을 끊음
- 무상태성(Stateless) : 이전 요청 상태를 기억하지 않음
- 텍스트 기반 프로토콜 : 사람이 읽을 수 있는 방식
2. HTTP는 OSI 7계층에서 어디에 해당할까?
- OSI 7계층 관점에서는 HTTP는 애플리케이션 계층에 위치
- OSI 7계층에 대한 내용은 아래 링크 참고 바람
네트워크 기본 개념 및 OSI 7 Layer 완전 정복
오늘은 네트워크의 기본 개념과 OSI 7계층을 살펴보고, HTTP 요청과 응답이 OSI 7계층을 통해 어떻게 처리되는지까지 자세히 알아보려고 한다. 1. 네트워크란 무엇인가?: 네트워크란 장치들이 서로
glog-07.tistory.com
3. HTTP의 구조
:요청과 응답
📤 클라이언트 -> 서버 : HTTP 요청 (Request)
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
- 요청 라인 : 요청 방식(GET/POST), 경로, HTTP 버전
- 헤더 : 클라이언트 정보, 요청 메타데이터
- 본문(Body) : POST나 PUT일 때 데이터 포함
📤 서버 -> 클라이언트 : HTTP 응답 (Response)
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1256
<html>...</html>
- 상태 라인 : HTTP 버전, 상태 코드, 상태 메시지
- 헤더 : 서버 정보, 콘첸츠 형식, 캐시 등
- 본문(Body) : 실제 콘텐츠(HTML, JSON 등)
4. HTTP와 TCP의 관계
: HTTP는 TCP 위에서 동작한다. 즉, HTTP는 전송 계층(Transport Layer)에서 TCP의 도움을 받아 신뢰성 있는 통신을 수행한다.
🌊 흐름 예시 (클라이언트 기준)
- 브라우저가 HTTP 요청을 만든다.
- OS는 요청을 TCP 세그먼트로 감싼다.
- TCP는 서버와 3-Way Handshake를 통해 연결
- IP 패킷으로 캡슐화 되어 네트워크 전송
- 서버가 응답 후 연결 종료 (4-Way Handshake)
5. HTTP 상태 코드
| 코드 | 의미 | 설명 |
| 1xx | Informational | 처리 중 |
| 2xx | Success | 요청 성공 |
| 3xx | Redirection | 리다이렉션 필요 |
| 4xx | Client Error | 요청 오류(예 : 404) |
| 5xx | Server Error | 서버 내부 오류 (예 : 500) |
실무에서 많이 보는 코드 : 200, 201, 301, 302, 400, 401, 403, 404, 500
6. HTTP의 요청/응답 헤더
: 헤더는 브라우저와 서버가 서로의 상태와 한경을 주고받는 중요한 요소이다.
✅ 요청 헤더 예시
| 헤더 | 설명 |
| Host | 요청 대상 도메인 |
| User-Agent | 브라우저 정보 |
| Accpet | 응답 받을 콘텐츠 타입 |
| Cookie | 클라이언트의 저장 쿠키 |
✅ 응답 헤더 예시
| 헤더 | 설명 |
| Content-Type | 콘텐츠 형식 (예 : text/html) |
| Content-Length | 본문 길이 |
| Set-Cookie | 클라이언트에 쿠키 저장 요청 |
| Cache-Control | 캐시 정책 |
7.실제 요청의 흐름을 OSI 7계층과 함께 살펴보자
✅ 예시 : 브라우저에서 https://www.exaple.com 요청
- Application (HTTP) : 요청 생성
- Transport (TCP) : 3-Way handshake로 연결, 데이터 세그먼트화
- Network (IP) : 서버 IP 주소로 라우팅
- Data Link/Physical : 실제 패킷 전송
- 서버 도착 후 역순으로 응답 전송
8. HTTP/1.1 vs HTTP/2 vs HTTP/3 간략 비교
| 버전 | 특징 |
| HTTP/1.1 | 순차적 요청 처리, 연결 재사용 지원 |
| HTTP/2 | 멀티플렉싱(병렬 처리), 헤더 압축 |
| HTTP/3 | TCP 대신 QUIC(UPD 기반) 사용 -> 더 빠르고 안정적인 전송 가능 |
9. HTTPS는 어떻게 동작할까?
- HTTP + SSL/TLS
- 실제 요청/응답은 암호화된 TCP 위에서 수행됨
- TCP 연결 -> TLS 핸드셰이크 -> 암호화된 HTTP 통신
✅ 정리
- HTTP는 애플리케이션 계층에서 동작하며, TCP 위에서 신뢰성 있는 통신을 수행함
- 요청/응답은 텍스트 기반이며, 헤더와 바디로 구성됨
- OSI 7계층에서 보면 HTTP는 상위 계층에 있지만, TCP/IP와 밀접하게 연결
- HTTP 상태 코드, 헤더의 의미를 명확히 이해하면 디버깅/최적화 시 큰 도움이 됨
🔜 다음 포스팅에서는 "웹에서 사용자 상태를 유지하는 방법" 즉, 쿠키, 세션, JWT 토큰, 인증 방식의 흐름에 대해서 상세히 설명할 예정이다.
'IT > Network' 카테고리의 다른 글
| 🔐 쿠키, 세션, 토큰 인증의 모든 것 - 상태 없는 웹에서 사용자 인증은 어떻게 가능한가? (1) | 2025.04.09 |
|---|---|
| DNS와 도메인의 세계 - 도메인이 어떻게 IP로 바뀌는가? (0) | 2025.04.07 |
| TCP/IP와 네트워크 패킷 흐름 (1) | 2025.04.04 |
| REST, RESTful API (0) | 2025.03.17 |