[CHAPTER 0] Part 7. HTTP란 무엇인가
브라우저와 서버가 데이터를 주고받기 위해 사용하는 통신 규약인 HTTP의 개념을 정리합니다. 서버 성능을 높여주는 핵심 특징인 무상태성(Stateless)과 비연결성(Connectionless)을 라라벨 환경 기준으로 알아봅니다.
[CHAPTER 0] Part 7. HTTP란 무엇인가
1. 정의
HTTP (HyperText Transfer Protocol)는 클라이언트(웹 브라우저)와 서버가 인터넷 상에서 데이터를 안전하고 정확하게 주고받기 위해 정해놓은 '공통의 대화 규칙(통신 규약)'입니다. 우리가 주소창에 항상 입력하는 http:// 가 바로 이 규칙을 사용해 통신하겠다는 선언입니다.
2. 필요한 이유
AD
제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다
한국인과 미국인이 대화하려면 '영어'라는 공통 규칙이 필요하듯, 윈도우의 크롬 브라우저와 Railway에 설치된 리눅스 서버가 소통하려면 서로 완벽하게 이해할 수 있는 언어가 필요합니다. 앞서 Part 5와 6에서 배운 Request(요청)와 Response(응답) 편지의 구조 전체가 바로 이 HTTP 규칙을 그대로 따른 결과물입니다. 이 규칙의 특징을 이해해야 '로그인이 풀리는 현상' 같은 웹의 고질적인 문제를 근본적으로 이해할 수 있습니다.
3. 핵심 개념 (HTTP의 2가지 치명적 특징)
HTTP는 수만 명의 방문자를 감당하기 위해 아주 특이하고 이기적인(?) 2가지 성격을 가지고 있습니다.
- 비연결성 (Connectionless): 브라우저가 요청을 보내고 서버가 데이터를 응답하고 나면, 서버는 곧바로 브라우저와의 연결(전화)을 툭 끊어버립니다.
- 무상태성 (Stateless / 기억상실): 전화를 매번 끊기 때문에, 서버는 방금 전에 나랑 대화했던 브라우저가 누구인지 기억(상태)을 완전히 지워버립니다. 매번 새로운 요청이 올 때마다 마치 처음 보는 사람처럼 대합니다.
4. 주변 기초 개념
- Protocol (프로토콜): 컴퓨터 기기들끼리 통신하기 위해 만든 '약속' 또는 '규격'을 뜻하는 일반 명사입니다. 파일 전송에는 FTP, 이메일 전송에는 SMTP라는 프로토콜을 사용합니다.
- HyperText: 클릭하면 다른 문서로 이동할 수 있는 텍스트, 즉 HTML을 뜻합니다. 초기 HTTP는 이 HTML 파일만 주고받았지만, 현대에는 이미지, 동영상, JSON 데이터 등 웹의 모든 것을 HTTP로 주고받습니다.
- HTTPS: HTTP의 보안(Security) 버전입니다. 일반 HTTP는 해커가 중간에서 편지를 훔쳐볼 수 있기 때문에, 편지 내용을 암호화하는 규칙이 추가된 것입니다. (Part 8에서 다룹니다.)
5. 실제 흐름 (ZenoBlog에서의 Stateless 극복기)
AD
제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다

애드픽 쇼핑메이트 회원가입
쇼핑정보로 재테크하는 꿀팁! 애드픽 쇼핑메이트
서버가 심각한 '기억상실증(Stateless)'을 앓고 있다면, 내가 ZenoBlog 관리자 페이지에 한 번 로그인한 뒤 글쓰기, 수정, 삭제 메뉴를 돌아다닐 때 서버는 내가 '관리자'라는 걸 어떻게 계속 알 수 있을까요?
[해결책: 요청할 때마다 신분증 같이 내밀기]
- 내가 관리자 아이디/비번을 서버(라라벨)에 보냅니다.
- 라라벨은 DB를 확인한 후, 응답 편지에
zeno_session=abc123def라는 출입증(Cookie)을 구워줍니다. 그리고 매몰차게 연결을 끊습니다. - 이후 내가 새 글 쓰기 페이지(
/admin/posts/create) 버튼을 누르면, 내 브라우저가 알아서 아까 받은 출입증을 Request 헤더에 끼워 넣어서 다시 서버로 보냅니다. - 라라벨 서버는 나를 처음 보는 사람 취급하지만, 편지 봉투(헤더)에 붙은 출입증 번호를 보고 "아, 이 번호는 아까 로그인 통과한 Zeno 관리자구나!" 하고 화면을 열어줍니다.
6. 예시 (왜 이런 불편한 규칙을 만들었을까?)
'유명 맛집의 요리사'에 비유해 볼 수 있습니다.
- 상태 유지(Stateful): 요리사(서버)가 손님(브라우저) 한 명을 전담 마크하며 밥을 다 먹을 때까지 옆에 붙어 있습니다. 손님은 편하지만, 다른 1,000명의 대기 손님은 밥을 먹을 수 없습니다.
- HTTP 방식 (Stateless): 손님이 주문(Request)하면 요리사가 음식(Response)을 주고 바로 뒤돌아서서 다음 손님의 주문을 받습니다. 손님이 냅킨이 더 필요하면 "저 아까 그 스테이크 먹던 사람인데요, 냅킨 주세요"라고 다시 설명해야 합니다.
즉, 한정된 자원(Railway의 저렴한 서버 비용)으로 수만 명의 접속자를 동시에 처리하고 서버가 터지는 것을 막기 위해 고안된 가장 효율적이고 완벽한 통신 규칙입니다.
7. 주의점
- 상태 유지가 필요 없는 작업(예: 공개된 블로그 글 읽기)은 HTTP의 특징 덕분에 매우 빠르고 효율적입니다.
- 하지만 상태 유지가 필수적인 작업(로그인, 쇼핑몰 장바구니 등)은 개발자가 직접 쿠키(Cookie)나 세션(Session)을 이용해 '기억'을 유지시키는 코드를 짜야 합니다. (ZenoBlog에서는 라라벨이 Auth 시스템을 통해 이 번거로운 작업을 알아서 다 해줍니다.)
8. 요약
HTTP는 웹에서 클라이언트와 서버가 데이터를 주고받기 위한 통신 약속입니다. 응답을 마치면 즉시 연결을 끊고 상대방을 잊어버리는 비연결성과 무상태성(Stateless)이라는 강력한 특징 덕분에 서버 자원을 극도로 아낄 수 있습니다. 단, 이 때문에 로그인 상태를 유지하려면 쿠키와 세션이라는 보조 기술이 반드시 필요하게 됩니다.
핵심 용어 정리
AD
제휴 광고 · 일부 링크는 수수료를 받을 수 있습니다
- HTTP = 웹 브라우저와 서버가 서로 데이터를 대화하기 위해 만들어진 인터넷 표준 약속
- 무상태성 (Stateless) = 서버가 클라이언트의 이전 상태(로그인 등)를 전혀 기억하지 못하는 HTTP의 성질
- 비연결성 (Connectionless) = 요청과 응답을 한 번 주고받으면 서버 자원 절약을 위해 즉시 통신 연결을 끊어버리는 성질
- 프로토콜 (Protocol) = 컴퓨터 시스템 간에 데이터를 교환하기 위해 사전에 합의된 규칙이나 방법
AD









