20190110

Web Back-End

웹 서버와 성능

  • Bandwidth(대역폭)
    • 얼마나 많은 데이터를 전송할 수 있는지
  • Latency(지연)
    • 얼마나 빨리 데이터를 받을 수 있는지
  • 둘 다 성능에 중요한 요소이나 Latency 가 개발자의 책임일 확률이 높고, 사용자의 경험상 더욱 중요하다

  • 캐시
    • 캐시를 사용하면 성능은 향상되나 실시간성이 떨어질 수 밖에 없다
    • 실시간성의 크리티컬 여부에 따른 expire time을 정헤야 함

HTTP Status 200, 304

  • 304 Not Modified
    • Client가 Server에 변경 여부 Rquest
    • 변경 사항이 없을 시 Server가 304로 응답하고, Body가 비어있다
  • 304를 쓰지 않는 경우
    • 아주 오래 변경되지 않을 데이터일 경우
    • expires 설정을 통해 만료시간을 정하고 Client는 서버에 아예 요청 자체를 하지 않는다 (200 cache)
      • 이 경우 서버가 만료시간 전에 변경되었을 경우 해당 데이터를 변경할 수 있는 방법이 없다
      • 캐시는 uri로 캐시하기 때문에 uri전략을 통해 이 문제를 해결 가능하다
        • ex) Request URL: https://www.coupang.com/resources/20190109193105/np/css/main_new.min.css
      • 날짜 Path를 추가하여 변경되었을 경우 재 다운로드 받도록