HTTP란?
HTTP (HyperText Transfer Protocol)는 웹 상에서 데이터를 주고받기 위한 통신 규약입니다.
- HyperText: 웹 페이지에서 다른 페이지로 이동할 수 있도록 연결된 텍스트를 의미합니다.
- Transfer: 데이터를 전송하는 역할을 합니다.
- Protocol: 데이터를 주고받기 위한 클라이언트와 서버 간의 약속입니다.
HTTP의 동작 원리
HTTP는 클라이언트-서버 모델을 기반으로 동작합니다.
- 클라이언트: 요청(Request)을 보내는 주체 (예: 웹 브라우저, 모바일 앱).
- 서버: 요청에 대한 응답(Response)을 보내는 주체 (예: 웹 서버, API 서버).
요청-응답의 흐름
HTTP의 동작 원리는 다음과 같습니다.
- 사용자가 브라우저에서 URL을 입력하거나 클릭합니다.
- 브라우저는 HTTP를 사용해 서버에 요청(Request)을 보냅니다.
- 서버는 요청을 처리한 후 결과를 응답(Response)으로 클라이언트에 전달합니다.
- 브라우저는 응답을 받아 화면에 표시합니다.
HTTP의 특징
무상태성 (Stateless)
- HTTP는 이전 요청과 현재 요청의 상태를 유지하지 않습니다.
- 각 요청은 독립적으로 처리되며, 서버는 이전 요청의 상태를 기억하지 않습니다.
- 상태를 유지해야 할 경우 세션, 쿠키, 토큰 등을 사용합니다.
텍스트 기반 프로토콜
- HTTP 메시지는 사람이 읽을 수 있는 형태의 텍스트로 구성됩니다.
- 요청과 응답 메시지에는 메서드, 상태 코드, 헤더, 본문 등의 정보가 포함됩니다.
간단한 예시:
HTTP 요청(Request):
GET / HTTP/1.1
Host: developer.mozilla.org
Accept-Language: fr
HTTP 응답(Response):
HTTP/1.1 200 OK
date: Tue, 18 Jun 2024 10:03:55 GMT
cache-control: public, max-age=3600
content-type: text/html
<html>
<body>Hello, World!</body>
</html>
확장성
- HTTP는 다양한 데이터 포맷을 전송할 수 있습니다.
- HTML, JSON, XML, 이미지, 비디오 등 다양한 형식의 데이터를 다룰 수 있습니다.
- HTTP는 지속적으로 발전하고 있으며, HTTP/1.1, HTTP/2, HTTP/3 등의 버전으로 성능이 개선되고 있습니다.
HTTP의 역할
HTTP는 웹의 근간이 되는 기술로 다음과 같은 역할을 합니다.
- 웹 페이지 전송
- HTML, CSS, JavaScript 파일을 서버에서 클라이언트로 전송합니다.
- API 통신
- JSON, XML 등의 데이터를 주고받습니다.
- 예: RESTful API를 활용한 데이터 통신.
- 멀티미디어 콘텐츠 전송
- 이미지, 영상, 파일 다운로드와 같은 다양한 멀티미디어 데이터를 전송합니다.
마무리
이번 글에서는 HTTP의 정의, 동작 원리, 특징과 역할에 대해 간단히 알아보았습니다.
HTTP는 웹의 근본적인 기술이기 때문에 이를 이해하면 웹 개발과 네트워크를 더 잘 이해할 수 있을 것 같습니다.
참고자료