CS/네트워크

HTTP에 대하여(2) - HTTP의 특징

전태경 2023. 1. 28. 22:41

저번 포스팅에서는 HTTP란 무엇인가에 대해 간략하게 정리를 해보았다.

https://eeasyy.tistory.com/41

 

HTTP에 대하여(1) - HTTP의 정의

컴퓨터를 사용하는 사람이라면..(요즘은 컴퓨터를 대부분 사용하겠지만) http 에 대해서는 들어보거나 봤을것이다. 물론 일반인들은 http가 정확히 뭔지는 모를것이다.(개발자들도 제대로 알까..)

eeasyy.tistory.com

 

이번에는 HTTP라는 녀석을 왜 사용하는지에 대해 한번 알아보려고 한다.

사실 HTTP 프로토콜을 사용하는 목적은 간단하다.

"... 통신하려고 ... "

단순히 통신하려고 HTTP를 써야할거는 아닐거다.

그럼 많은 통신 프로토콜중에 HTTP를 쓰는 특징에 대해 알아보자.

HTTP의 가장 큰 특징으로는 비연결성&무상태 이라고 한다.

이 말은,  클라이언트가 요청한 데이터만 내려주고 만다는 뜻.

사람과 사람의 관계에서도 그 사람을 기억해주고 신경써주는게 아닌, 필요한말과 대화만 하는 것과 같다.

이러한 사람들은 사람으로부터 오는 스트레스, 감정낭비도 없듯이 

서버 또한 수많은 클라이언트로부터 오는 부하와 스트레스를 최소화 시킬 수 있는 특징이 있다.

이러한 이유로 많은양의 클라이언트의 요청들이 있는 서비스에서 HTTP를 사용하는걸 볼 수 있다.

 

여기서 궁금한 점이 

그러면 HTTP는 비연결성이니 연결을 안하는데 어떻게 통신을 할 수 있는건가? 라는 의문을 품을 수 있다.

사실 아예 연결을 안하는게 아니다.

TCP단에서 서버와 클라이언트는 3-way Handshake 라는 과정을 통해 서로 연결하는 과정이 있다.

연결 메커니즘을 간략히 표현하자면 아래와 같다.

 

1. 데이터가 필요한데 연결해도 되니? 2. 응, 연결해도돼!  3. 알겠어!

 

위의 과정을 통해 연결을 한 뒤, 서버는 클라이언트가 요청한 데이터를 내려주고 연결을 끊게 된다.

정리하자면, 연결 -> 요청 -> 응답 -> 연결 해제 라는 하나의 트렌젝션이 있는것이다. 

 

오늘은 HTTP 프로토콜의 특징을 간략하게 정리해보았다. 

위 특징을 보면 HTTP의 허점이 보이긴한다. 

필요한 정보를 내려주는건 좋은데 매번 요청이 들어오는 클라이언트를 새로운 사람처럼 대해야 하는데

단골손님은 그래도 기억해줘야하는게 아닌가.. 

그래서 클라이언트의 상태를 기억 못하는 HTTP의 단점을 보완하기 위해 등장한 개념들이 있다.

다음에는 상태기억을 위한 방법들이 어떤 것들이 있는지 나열해보고 개념을 정리해보려고 한다.

 

그럼 끝.