본문 바로가기
부트캠프교육중/HTTP, 네트워크

HTTP의 특징

by 뭉지야 2023. 3. 9.
728x90

# HTTP의 역사

 

# HTTP특징

- 클라이언트 서버 구조

- 무상태 프로토콜(Stateless), 비연결성(Connectionless)

- HTTP 메세지

- 단순함, 확장 가능


1. 클라이언트 서버 구조

-클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 보내는 클라이언트 서버구조이다.

 

2. 무상태 프로토콜 (Stateless)

- 서버가 클라이언트의 상태를 보존하지 않음.

-장점: 서버 확장성 높음(스케일 아웃)(수평확장유리)무한한 서버 증설 가능.

-단점: 클라이언트가 추가 데이터 전송

-상태유지(stateful) : 중간에 다른 점원으로 바뀌면 안됨. 항상 같은 서버가 유지되어야한다. 서버에 장애생기면 처음부터 다시 서버에 요청해야한다.

-무상태 프로토콜이라면 클라이언트가 요청할때 이미 필요한 데이터를 다 담아서 보내기 때문에 아무 서버나 호출해도된다. 장애가 생기더라도 다른 서버에서 응답을 전달하면 되기 때문에 클라이언트는 다시 요청할 필요가 없다.

-한계: 로그인이 필요없는 단순한 서비스 소개 화면 같은 경우엔 무상태로 설계할수있지만, 로그인이 필요한 서비스라면 유저의 상태를 유지해야 되기 때문에 브라우저 쿠키, 서버 세션, 토큰 등을 이용해 상태를 유지한다.

 

3. 비연결성

- HTTP는 기본이 연결을 유지하지 않는 모델.

-일반적으로 초 단위 이하의 빠른 속도로 응답.

-1시간동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우작음

-트래픽이 많지 않고, 빠른 응답을 제공할수있는 경우, 비연결성의 특징은 효율적으로 작동한다.

하지만 트래픽이 많고, 큰 규모의 서비스를 운영할때에는 비연결성은 한계를 보인다.

-비연결성을 가지는 HTTP는 실제로 요청을 주고받을때만 연결을 유지하고 응답을 주고 나면 TCP/IP연결을 끊는다. 이를 통해 최소한의 자원으로 서버 유지를 가능하게 한다.

-TCP/IP의 경우 기본적으로 연결을 유지한다. 연결을 유지하는 모델에서는 클라이언트가 요청을 보내지 않더라도 계속 연결을 유지해야한다. 이러한 경우 연결을 유지하는 서버의 자원이 계속 소모된다.

-한계

  • TCP/IP 연결을 새로 맺어야함 - 3 way handshake 시간 추가
  • 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, CSS, 추가 이미지 등 수 많은 자원이 함께 다운로드
  • 지금은 HTTP 지속연결로 문제 해결
728x90

'부트캠프교육중 > HTTP, 네트워크' 카테고리의 다른 글

Cookie  (0) 2023.03.09
TCP/IP 4계층 모델  (0) 2023.03.09
OSI 7계층 모델  (0) 2023.03.09
TCP, UDP  (0) 2023.03.08
IP, IP Packet  (0) 2023.03.07