티스토리 뷰

WEB/HTTP

[HTTP] HTTP의 특징

MAENCO 2021. 7. 28. 00:30
반응형

HTTP가 우리가 인터넷상에서 소통 규칙인 것은 알았다.

 

그러면 HTTP 가지고 있는 기능과 특징은 무엇일까

간단하게 살펴보자

 

특징부터 알아보자면

 클라이언트 서버 구조

 Stateful / Stateless

 비연결성

 HTTP 메시지

등이 있겠다

 

클라이언트 서버 구조

우리가 유튜브에서 영상을 클릭하여 보려 한다.

클릭했더니 영상의 페이지로 들어가지게 되고 영상은 재생된다.

이것은 내가 영상을 재생시킨 것일까?

아니다.

 

나는 유튜브라는 서버에 내가 보고 싶은 영상을 클릭하여

이 영상을 볼 수 있는 웹 페이지로 들어갈 수 있도록

서버에 "요청" 한 것이다.

그리고 서버는 그에 따른 "응답"으로 페이지를 보여주고 영상을 재생시켜주었다.

클라이언트 서버 구조

이것이 바로 클라이언트 서버 구조이다.

 

Stateful / Stateless

이 둘을 핵심은 아주 간단하다.

상태를 "유지" 하거나

그렇지 않거나.

요청 예시

상황을 가정해보자

클라이언트가 요청을 하였다.

중계서버는 서버 1에서 우선 요청을 한다.

(만약 서버에 문제가 생긴다면 서버 2에 요청을 한다)

 

[Stateful]

상태가 "유지" 되기 때문에

각 요청에 따라 해당 서버로 연결이 유지되어야 할 것이다.

그래서 클라이언트는 이전의 작업을 재수행 할 필요 없이

마음껏 즐기면서 사용을 한다.

근데 서버 1에서 문제가 생겼다면

서버 2로 넘어갈 때 모든 상태를 다시 받아야 한다.

 

 

[Stateless]

상태가 유지가 되지 않기 때문에

서버 1 , 서버 2 혹은 서버 9999가 되어도 똑같다.

항상 처음인 것이다.

 

각각의 장단점이 있을 것이다.

상태를 유지함으로써 클라이언트에게

더욱 나은 서비스를 제공할 수도 있고

 

상태를 유지하지 않음으로써 비교적 용이하게

서버를 증설한다던지

 

비연결성

허나 HTTP는 기본적으로 비연결성을 가지고 있다.

즉 Stateless 라는 것이다.

 

만약 HTTP가 계속 연결이라는 상태를 유지하고 있으려면

아마 인터넷을 사용하는 인구만큼 서버가 있어야 할 것이다.

 

비연결성 방식을 사용하여

클라이언트가 요청 시에만 응답하여

서버의 사용량을 줄이고

더 효율적으로 많은 사람에게 서비스를 제공할 수 있다.

 

하지만 비연결성도 문제점이 있다.

만약 비연결성이 오히려 서버의 효율성을 떨어트린다면?

 

실제로 클라이언트가 서버에 요청을 하면

HTML은 물론 JS , CSS , 데이터와 같은 요청들을 각기 다른 요청과 응답으로 처리해야 할 것이다

이렇게 되면 각기 요청하고 응답하는 시간이 길어져 결국에는 효율이 떨어진다.

 

이러한 점을

HTTP 지속 연결 (Persistent Connetions)이 해결해준다

정말 간단한 것인데

각기 다른 요청을 하나의 요청으로 합쳐 버리는 것이다.

이런 식으로 각기 다른 요청 및 응답에서 발생하는 연결/종료 시간을

하나의 실행으로 묶어버리는 것이다.

 

 

더보기

개인 학습을 위해 작성 되는 글 입니다.

제가 잘못 알고 있는 점에 대한 지적 / 더 나은 방향에 대한 댓글을 환영합니다.

 

 

 

 

반응형

'WEB > HTTP' 카테고리의 다른 글

[HTTP] 쿠키와 세션 그리고 캐시(1)  (0) 2021.08.01
[HTTP] Header(헤더)  (0) 2021.08.01
[HTTP] API 그리고 REST API  (0) 2021.07.30
[HTTP] HTTP 메서드  (0) 2021.07.28
[HTTP] 인터넷 네트워크  (0) 2021.07.27
댓글