1. HTTP의 정의
- 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜
- HTML과 같은 리소스들을 전송하기 위해 사용
2. HTTP의 특징
(1) 무상태 (Stateless)
- 클라이언트와 서버 사이에 상태를 유지 하지 않는다.
예를들어 상태를 유지하지 않으면 로그인 후 페이지 이동을 하면 다시 로그인 페이지가 뜬다.
- 서버 확장성이 높다 (스케일 아웃)
- 클라이언트가 추가 데이터 전송을 해야해서 메모리 차지가 많다.
(2) 비연결성 (Connectionless)
- 클라이언트가 서버에 요청을 하고 응답을 받으면 바로 TCP/IP가 연결을 끊는다.
- 빠르게 응답을 제공 할 수 있기 때문에 연결을 계속 유지 하지 않는다 ( 지속연결 특징 )
- 요청과 응답이 한 번 이루어지면 연결을 바로 종료하기 때문에 TCP 3 Way Handshake를 매번 해야 한다.
- 서버 자원을 효율적으로 사용할 수 있다는 장점이 있다.
(3) 지속 연결
- 응답을 기다리지 않고 바로 다음 리퀘스트를 보내는 파이프라이닝이 가능하다.
- 요청과 응답이 한 번 이루어지면 바로 연결을 종료한다.
(4) 클라이언트 - 서버 구조
- 클라이언트가 요청하면 서버가 응답하는 구조
- 클라이언트가 HTTP 메세지를 만들어 보내면 서버에서 요청에 댛나 응답이 올 때까지 기다리고 서버는 요청에 대한 결과를 만들어 응답한다.
※ 클라이언트와 서버를 분리하는 이유
각자의 역할에 집중 할 수 있기 때문
클라이언트에서는 복잡한 비즈니스 로직이나 데이터를 다룰 필요 없이 UI 그리기에 집중을 하고 서버에서는 복잡한 비즈니스 로직이나 데이터를 다루는 데에만 집중하면 된다.
3. HTTP의 상태 코드
- 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능을 하며 100 ~ 500번대 숫자로 이루어져있다.
5. HTTP 메서드
- 서버가 수행해야 할 동작을 나타낸다.
- 총 9개의 메서드가 있으나 주로 사용하는 메서드는 5가지이다.
6. HTTP 메시지의 구조
- 전체적인 구조는 시작라인, 헤더, 공백라인, 바디로 나뉘고 요청인 지 응답인 지에 따라 차이가 있다.
'스터디 > 사내스터디' 카테고리의 다른 글
WEB 서버 와 WAS 서버 (0) | 2024.02.14 |
---|---|
서버OS의 종류, 물리서버, 클라우드 서버의 특징 및 차이점 (0) | 2024.01.11 |