HTTP(HyperText Transfer Protocol)는 월드 와이드 웹(WWW)에서 하이퍼텍스트 문서를 전송하기 위한 표준 프로토콜이다.
현대의 HTTP 프로토콜은 단순히 하이퍼텍스트(HTML) 문서를 전송하는 데 그치지 않고 JSON(JavaScript Object Notation), XML(eXtensible Markup Language), HTML, 파일 전송 등의 데이터 전송에 활용되고 있다.
클라이언트(웹 브라우저)와 서버 간의 통신을 담당하며 OSI 7 계층 중 응용 계층에 속한다.
하이퍼텍스트란?
하이퍼텍스트는 문서 내에서 다른 텍스트나 리소스로의 참조(링크)를 포함하는 텍스트를 의미한다.
HTTP 특징
클라이언트-서버 모델
- 클라이언트가 요청을 보내면 서버가 응답을 반환하는 구조다.
무상태성(Stateless)
- 각 요청 간에 상태 정보를 유지하지 않습니다. 즉, 이전 요청의 정보를 다음 요청에서 활용하지 않는다.
텍스트 기반 프로토콜
- 사람이 읽을 수 있는 형식으로 메시지가 교환된다.
HTTP 메시지 구조
HTTP 메시지는 요청과 응답 두 가지로 나뉜다.
요청 메시지
- Start line: POST / HTTP/1.1. 예: HTTP 메서드, URI, 그리고 HTTP 버전을 나타냄.
- Headers: 요청과 관련된 부가 정보를 제공. 예: Host, User-Agent, Content-Type, Content-Length.
- Empty line: 헤더와 본문을 구분.
- Body: 요청 본문 데이터.
응답 메시지
- Status line: HTTP/1.1 403 Forbidden. 예: HTTP 버전, 상태 코드, 상태 메시지를 포함.
- Headers: 응답과 관련된 부가 정보를 제공. 예: Server, Content-Type, Content-Length.
- Empty line: 헤더와 본문을 구분.
- Body: HTML 문서와 같은 응답 데이터.
무상태성(Stateless)
HTTP는 무상태성을 가지므로 각 요청은 독립적으로 처리된다. 이는 서버가 이전 요청의 상태를 기억하지 않는다는 뜻이다.
이러한 특징은 서버 확장성과 단순성을 높여주지만 상태 유지를 위해서는 쿠키, 세션, 토큰 등의 추가적인 방법이 필요하다.
'Dev > Network' 카테고리의 다른 글
『Network』 HTTP Only 쿠키 (0) | 2024.12.01 |
---|---|
『Network』 쿠키, 세션 (1) | 2024.11.29 |
『Network』 www.google.com을 주소 창에 쳤을 때 일어나는 과정 (0) | 2024.11.27 |
『Network』 한 번에 끝내는 DNS (1) | 2024.11.26 |
『Network』 User Mode와 Kernel Mode (0) | 2024.11.23 |