네트워크+HTTP

HTTP의 특징

류창 2022. 1. 13. 21:31
반응형

 

 

HTTP의 대표적인 특징들의대해 포스팅을 해보려한다.

 

 

위키피디아:

HTTP는 클라이언트 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.

 

 

 

이 HTTP는 다음과 같은 특징을 갖는다.

 

• 클라이언트 서버 구조
• 무상태 프로토콜(스테이스리스), 비연결성
• HTTP 메시지
• 단순함, 확장 가능

 

 

 

 

 

1. 클라이언트 서버 구조

 

 

• Request Response 구조
• 클라이언트는 서버에 요청을 보내고, 응답을 대기
• 서버가 요청에 대한 결과를 만들어서 응답

 

 

 

 

 

 

 

 

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

 

 

무상태 프로토콜은  서버가 데이터를 기억하지않는 구조다.

 

상태 유지 프로토콜은 서버가 데이터를 계속 기억해야하는 구조다.

 

 

 

상태 유지 프로토콜은 서버가 데이터를 계속 기억해야하기 때문에 

 

클라이언트A의 용무가 끝날때까지 서버 1은 계속 연결되어야하는 상태여야만한다.

이는, 굉장히 비효율적인 자원활용이다.

 

클라이언트A가 요청을 다시줄때까지 마냥 기다리는것보다, 연결을끊어놓고 다른 클라이언트의 요청을 받으러가는것이

효율적이다.

 

 

여기서 탄생하는게 무상태 프로토콜이다.

 

클라이언트 A의 요청을 서버가 기억하지않고, 클라이언트가 기억해뒀다가 다른 서버에 요청을 전달하는것이다.

 

Stateless(무상태) 의 한계

모든 것을 무상태로 설계 할 수 있는 경우도 있고 없는 경우도 있다.
• 무상태
• 예) 로그인이 필요 없는 단순한 서비스 소개 화면
• 상태 유지
• 예) 로그인
• 로그인한 사용자의 경우 로그인 했다는 상태를 서버에 유지
• 일반적으로 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지
• 상태 유지는 최소한만 사용

 

 

 

비연결성 모델

 

 

하나의 서버가 클라이언트들과의 연결을 계속유지하는것은 서버 자원이 계속 소모가된다.

 

그래서  서버가 응답하면 매번 연결을끊어주는 비 연결성 모델이 탄생한다.

 

 

 

하지만 이런 비연결성 모델도 한계가 존재한다.

 

 

TCP/IP는 처음 연결을할때 3 way-handshake과정을 거쳐야한다.  

https://taehoung0102.tistory.com/149

 

네트워크 : TCP에 대하여

참조: https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC# 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설..

taehoung0102.tistory.com

클라이언트가 한번에 많은 요청을보내면, 서버는 많은 3 way-handshake를 수행해야한다.

 

이 단점을 극복하기위해  HTTP의 지속 연결이 탄생한다.

 

 

지속연결 (Persistent Connection)

 

 

지속연결을 하기 전의 비연결성 모델은 이렇게 연결/종료를 반복하는 한계가있었다.

 

 

그래서 서버가 어느정도까지는 연결을 유지하게만드는 지속연결을 도입했다.

 

보통은 60초 정도만 연결을 유지시키고, 60초가지나면 연결을 끊어버린다.

연결 시간은 물론 설정이 가능하다. 

 

 

 

지속연결을 사용했을때의 모습이다.  클라이언트와 서버가 일정시간동안 연결이 되어있으니,

 

불필요한 3 way-handshake가 일어나지않는 모습이다.

 

 

 

 

 

반응형

'네트워크+HTTP' 카테고리의 다른 글

HTTP 표현 헤더  (0) 2022.03.09
HTTP 상태코드  (0) 2022.03.09
HTTP 메소드  (0) 2022.01.16
네트워크 : TCP에 대하여  (0) 2022.01.09
네트워크 : IP에 관하여  (0) 2022.01.09