티스토리 뷰
HTTP 비연결성
연결을 유지하지 않는 모델은 서버와 클라이언트간 연결하고 요청과 응답이 오면 연결을 바로 끊음으로서 최소한의 자원이 유지된다.
- HTTP는 기본이 연결을 유지하지 않는 모델이다.
- 일반적으로 초 단위의 이하의 빠른 속도로 응답한다.
- 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음
- 예) 웹 브라우저에서 계속 연속해서 검색 버튼을 누르지는 않는다.
- 비연결성은 서버 자원을 매우 효율적으로 사용할 수 있다.
비연결성 단점
- TCP/IP 연결을 새로 맺어야 하게 되어 3 way handshake 시간이 추가된다.
- 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립트, css, 추가 이미지 등 등 수 많은 자원이 함께 다운로드되는데 자원을 받을 때마다 연결 > 연결끊기 > 연결 을 반복하면 이 또한 시간이 지연된다.
- 현재는 HTTP 지속 연결(Persistent Connections)로 문제를 해결됐으며 HTTP/2, HTTP/3에서 더 많은 최적화가 되었다.
HTTP 지속 연결(Persistent Connections)
연결과 종료의 반복으로 비효율적이게 되는데 HTTP 지속연결을 통해 보통 HTTP 1개를 받을 때까지 연결을 유지시킨다. HTTP/2, HTTP/3에서 최적화가 더 많이 되었는데 특히 HTTP/3에서는 UDP프로토콜을 통해 연결 속도 자체도 줄여졌다.
Stateless 를 기억하기
서버 개발자들이 어려워하는 업무는 같은 시간에 딱 맞추어 발생하는 대용량 트래픽이다. 이런 경우에 최대한 무상태로 설계하는 것이 중요하다. 보통 이벤트 설계할 때 첫 페이지는 로그인도 필요없는 아무 상태도 없는 정적 Html을 두어 시간을 버는 식을 기본으로 한다.
eg. 선착순 이벤트, 명절 KTX 예약, 학과 수업 등록
eg. 저녁 6:00 선착순 1000명 치킨 할인 이벤트 -> 수만명 동시 요청
Notes
얼마전에 네고왕에서 마녀공장 세일을 해 평소 애정하던 브랜드라 구매하려고 들어갔는데 서버가 터져서 며칠을 못들어갔다. 개발공부를 하니 서버 개발자분이 고생하실 것이 훤히 보여서 너무 안쓰럽고 감정이입이 되서 무서웠다... 아무튼 서버 개발자는 아니지만 나도 겪게 될 수 있는 일이기에 잘 기억해두는 것이 좋겠다.
Reference
강의 | [인프런] 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한
출처: https://algoroot.tistory.com/108 [Algoroot's space:티스토리]
'Network' 카테고리의 다른 글
[네트워크] 모든 것은 HTTP기반으로 이루어져 있다. (HTTP 정의, 역사, 프로토콜 버전) (0) | 2022.07.05 |
---|---|
[네트워크] 웹 브라우저 요청 흐름 (0) | 2022.07.04 |
[네트워크] URI, URL, URN 개념 및 URL 분석하기 (0) | 2022.06.30 |
[인터넷 네트워크] PORT, DNS (0) | 2022.06.27 |
[인터넷 네트워크] 인터넷통신, IP, TCP, UDP (0) | 2022.06.20 |
- Total
- Today
- Yesterday
- 백준
- 네트워크
- 프로그래머스 자바스크립트
- html
- 모두를 위한 컴퓨터 과학
- cs50
- 클로저
- javascript
- reactquery
- GIT
- 알고리즘자바스크립트
- 프로그래머스
- 항해99
- 자바스크립트 클로저
- 타입스크립트
- 실전프로젝트
- 자바스크립트알고리즘
- 모두를위한컴퓨터과학
- github
- 자바스크립트 비동기 처리
- network
- 리액트네이티브
- 프로그래머스 베스트앨범 자바스크립트
- React
- python
- React Query
- 무한스크롤
- 리액트
- css
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |