[HTTP] HTTP의 특징

Enochkon·2022년 9월 20일
0

네트워크

목록 보기
3/9

HTTP의 특징

클라이언트 서버 구조

http의 가장 중요하고 단순한 특징

http는 클라이언트와 서버 구조로 되어있다. 이말인 즉슨

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

그럼 클라이언트와 서버를 나누는 것이 왜 중요하느냐 하면은 분리함으로써 각각의 부분을 특화 시킬 수 있다

  • 클라이언트 : ui/ux, 사용성 등등
    (어떻게 하면 사용자에게 편의를 제공할 수 있는가? 등 좀더 사용자에게 집중)
  • 서버 : 데이터관련, 비즈니스 로직 등등
    (어떻게 하면 데이터 처리를 더 빨리할 수 있는가? 등 좀더 개발 자체에 집중)

클라이언트와 서버 각각 자신의 역할에만 집중할 수 있다.

무상태 프로토콜

무상태(stateless)란

"서버가 클라이언트의 상태를 보존하지 않는다는 것"이다.

  • 장점으로는 서버의 확장성이 높다.
  • 그러나 단점으로는 서버가 상태를 보존하지 않으므로 클라이언트에서 필요한 모든 정보를 알려줘야한다. (보내야할 데이터가 많음)

http의 경우에는 클라이언트가 연결에 필요한 모든 정보를 가지고 서버와 통신한다.
1. 그래서 하나의 서버가 오류가 날 경우, 바로바로 다른 서버로 대체해서 연결할 수 있고,
2. 크기에 따라 가변적으로 쉽게 서버를 더 증설할 수 있다.

하지만 항상 stateless로는 설계할 수 없다

로그인 같이 상태를 유지해야 할 경우에는 stateless만 사용할 수 없다.
-> 보통 이럴때에는 쿠키나 세션등을 이용해서 유지한다, 상태 유지는 최소한으로 사용하는게 좋다.

비연결성

http는 비연결성을 가진다.

즉 요청과 응답을 받을때에만 클라이언트와 서버가 연결되고 평소에는 연결을 끊어 놓는다.

이러한 방식은 자원을 효율적으로 관리할 수 있으나 (항상 연결을 하는거에 비해 자원을 덜 소모하므로) 만약 짧은 시간에 반복적으로 계속 요청이 발생한다면, 요청을 할때마다 연결을 해야하므로 비효율적이 되어버린다.

--> 이것을 해결하기 위해 일정시간 동안 연결을 유지시키는 지속 연결(persistent connections)을 사용한다.

0개의 댓글