새소식

back

http (2) - HTTP 기본

  • -

HTTP (HyperText Transfer Protocol)

 

1.

- http (1.1): 1997년, 가장 많이 사용되고 중요한 버전

- http (3): 진행중(2023.3기준), tcp대신에 udp사용, 성능 개선

- 크롬 브라우저 실행 후 f12클릭, 예시로 hello 검색 > 우측 개발자 창에서 Network > name 우클릭 하고 protocol 클릭하면

h2/h3-29 등의 정보를 볼수가 있는데, h는 http의 약자 (즉, 이미 구글에서는 http3을 사용하고 있다는 것)

 

2.

- 비즈니스 로직이나 데이터 같은것은 서버에, ui와 사용성을 클라이언트에

>> 이렇게 하면 클라이언트와 서버가 독자적으로 진화 가능하다.

- ex: 회사의 비즈니스가 잘되어 트래픽이 폭주하면 백엔드는 클라이언트 손댈 필요 없이 서버의 아키텍처를 어떻게 할지만 고민하면 됨

 

 

3. 

예제1 (stateful)
예제2, 다른 점원이 되면 데이터가 없어져서 일처리 문제 생김
예제3 (stateless)
예제4, 점원이 다르지만 데이터 유지 가능
최대한 무상태로 설계하고, 어쩔 수 없는 경우에 상태 유지 사용

 

 

4.

클라이언트 1,2,3과 모두 연결된 서버, 클라이언트3이 연결을 보내고 응답을 받는 동안 1,2는 모두 연결 유지중이기에 서버 자원이 소모됨

 

클라이언트 1,2는 연결을 끊어버림
두번째와 관련하여 f12로 개발자 모드 변경해 놓고 구글에 검색을 하면 수많은 요소들이 다운되는것을 알 수 있음

 

동시에 수많은 요청이 오면 비연결성도 소용이 없을 수 있지만, 최대한 stateless하게 설계하는 것이 중요하다 (대응을 위함)

- 방지책으로 첫 페이지는 정적 페이지 설계(ex: 순수 html, 로그인도 필요x), 그 안에서 사람들이 페이지를 보다가 이벤트를 보게하면 조금이나마 동시 요청을 분산시킬 수 있다. >> 무상태로 할 수 있는 것은 최대한 무상태로 설계 하고 어쩔 수 없는 부분만 상태 유지로 설계

 

 

5.

'field name'과 ':'는 붙여서 작성해야 함, 예시의 field name은 Host
message body를 제외한 필요한 메타 데이터가 전부 포함됨

 

 

 

 

 

 

'back' 카테고리의 다른 글

http (5) - 헤더  (0) 2023.03.08
http (4) - 상태 코드  (0) 2023.03.08
http (3) - Http 메서드 / 메서드 활용  (0) 2023.03.08
http (1) - 인터넷 네트워크 / URL / 웹브라우저 요청 흐름  (0) 2023.03.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.