HTTP 웹 기본 지식 (통신 방식)

한꼬북·2022년 3월 7일
0

HTTP

목록 보기
3/10
post-thumbnail

클라이언트, 서버 구조

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

무상태 프로토콜 (Stateless)

  • 서버가 클라이언트의 상태를 보존하지 않음

  • 장점 :
    서버의 확장성이 높음, 각 요청에 다른 서버들이 호출되어도 장애가 발생하지 않음,
    응답 서버를 쉽게 바꿀 수 있음,

  • 단점 : 클라이언트가 서버에 요청할 때 보내야 할 데이터들이 많아짐

  • 실무적 한계 : 로그인 같은 경우 상태를 서버에 유지해야하기 때문에 모든 것에 무상태를 사용할 수는 없음 -> 따라서 최소한으로 상태유지를 사용해야함

상태유지 프로토콜 (Stateful)

  • 서버가 클라이언트가 전송해준 데이터를 보존함

  • 장점 : 클라이언트가 서버에 요청을 보낼 때 이전에 보냈던 데이터들을 추가로 전송하지 않아도 됨

  • 단점 :
    트래픽이 늘어서 서버를 추가했을 경우 요청받은 서버가 다를 경우 장애 발생 ->
    이전되는 서버에 클라이언트에 정보를 넘겨줘야함,
    클라이언트의 정보를 저장해놔야 하기 때문에 지속적으로 서버의 자원을 소모함

비 연결성(Connectionless)

  • 클라이언트 요청에 대한 응답을 한 뒤 클라이언트와 연결을 유지하지 않고 끊음

  • HTTP 기본이 연결을 유지하지 않는 모델이기 때문에 서버의 자원을 효율적으로 사용할 수 있음

  • 한계 :
    TCP/IP 연결을 매번 새로 맺어야 함 (3 way handshake)
    HTML뿐만 아니라 이미지, javascript 등 많은 자원들이 다운로드 됨

  • 극복 :
    HTTP 지속 연결(Persistent Connections)로 해결
    HTTP/2, HTTP/3에서 더 많은 최적화

profile
오히려 좋아, 자 가보자고!

0개의 댓글