Cute Happy Ghost
본문 바로가기
server·network

HTTP의 특징

by JENN_tech7 2022. 2. 22.
728x90
SMALL

HTTP의 특징

 

1. 클라이언트 서버 구조

  • 클라이언트가 요청을 보내고 클라이언트는 무작정 기다린다. 서버가 응답결과를 만들어서 보내면 그 때 동작을 한다
  • 분리를 하는것이 중요한 이유: 클라이언트는 사용성, ui에 집중을 하고 서버에서는 비즈니스로직, 데이터 등에 집중하여 각각 독립적으로 진화를 할 수 있음.

2.무상태 프로토콜(stateless) 지향

  • stateful(상태유지)란? 서버가 클라이언트의 상태를 보존하는것 
    stateless란? 서버가 클라이언트의 상태를 보존하지 않는 것.
    예를 들면 고객(클라이언트)이 질문을 할때마다 점원(서버)이 바뀌는 느낌. 어떤물건을, 몇개 사고싶은지 등에 대해 기억하지않고 진행됨. 그러니까 고객은 모든 상태를 더해서 점원에게 모든 것을 말해줌. 따라서 점원은 말을 듣고 상태를 다 알 수 있음
  • 무상태로 설계를 하면 확장성이 커지며 응답서버를 쉽게 바꿀 수 있기때문에 무한한 서버 증설이 가능함.
  • 한계 : 모든 것을 무상태로 설계할 수 있는 경우도 있고 없는 경우도 있다, 데이터를 많이 담고있음.

 

3. 비연결성(connectionless)

  • 연결성은 클라이언트 1,2,3...연결을 유지하고 따라서 서버자원이 소모가 됨. 놀고있어도 서버를 써야함.
    비연결성은 요청하고 응답하면 연결끊음.
  • 1시간동안 수천명이 서비스를 사용해도 다 연결되어있지않고 실제 동시에 처리하는 요청은 수십개 이하임
  • 장점 : 최소한의 자원을 유지할 수 있음 -> 효율적으로 사용 가능
  • 단점 : TCP/IP 연결을 새로 맺어야하기때문에 3way handshake 시간이 추가됨. -> 할때마다 수많은 자원이 다운로드되서 비효율적임. 현재는 지속연결로 문제해결
    • 지속연결 : 연결 -> 요청/html응답, 요청/자바스크립트 응답, 요청/이미지 응답 -> 종료

 

 

 

728x90
LIST

댓글