모든 것이 HTTP

조 은길·2022년 3월 9일
0

HTTP 웹 기본 지식

목록 보기
6/32
post-thumbnail

이번 TIL은 인프런의 "모든 개발자를 위한 HTTP 웹 기본 지식"을 학습하고, 정리한 내용입니다.
만약, 제 글의 내용을 퍼갈 시에는 " 모든 개발자를 위한 HTTP 웹 기본 지식 "도 출처에 첨부하시기 바랍니다.

HTTP??


=> 하이퍼 텍스트(문서간의 링크)를 전송할 수 있는 프로토콜!!
=> 처음 시작은 하이퍼 텍스트만을 위해 만들었지만, 지금은 모든 것이 HTTP로 전송된다.


=> 실무에서 일하다 보면, 서버 간의 통신을 할 때, TCP 프로토콜을 직접 이용해서 통신하는 경우는 거의 없다.
대부분 다 HTTP 프로토콜로 연결한다. 물론, TCP 프로토콜 위에 HTTP 프로토콜이 있기는 하다. (프로토콜 계층 참고)
=> 어쩄든, TCP 프로토콜을 직접 연결해서 사용하는 경우는 게임 서버나 매우 특수한 경우에 한정된다.
=> 최근 모바일 게임 같은 경우는 HTTP로 통신 하는 구조로 개발도 많이 되고 있는 상황이다.

HTTP 역사


=> 이 중에서 가장 중요한 HTTP 버전은 1.1이다.
=> 왜냐면, 지금 우리가 가장 많이 사용하고, 대부분의 기능들이 들어있다.
=> HTTP2 나 3 버전은 거의 성능 개선에 초점이 맞춰져 있다.
=> RFC는 HTTP 1.1 버전을 개정한 것이다. 이 중에서 지금은 대부분 RFC2616(1999)을 기준으로 설명이 되있는 문서나 책들이 많다. 왜냐면, 그 다음 버전이 2014년에 나왔는데, 이런 분야는 업데이트가 되게 늦다.
=> 현재, 우리들 기준에서는 REC7230을 보는게 맞다. 이것도 30~35로 버전이 쪼개진다.
=> 강의에서는 대부분 1.1 버전을 기준으로 정리한다.

기반 프로토콜

TCP는 내부에 데이터도 많고 3 way handshaking도 시간이 좀 걸리기 때문에, 속도가 굉장히 빠른 메커니즘은 아니다.
그래서, 이것을 UDP 프로토콜 위에 어플리케이션 상태에서 성능을 최적화하도록 새로 설계해서 나온게 바로 HTTP3이다!!

그러나, 본질은 HTTP 1.1만 배워 놓으면, 2와 3은 성능 개선만 한 것이라 크게 상관은 없다!!
어디까지나 본질은 1.1

개발자 도구에서 네트워크를 확인해보면, 프로토콜에서 해당 웹싸이트가 어떤 프로토콜을 사용하고 있는지 알 수있다.
과거에는 1.1도 좀 보였는데, 요즘은 업데이트가 됐는지 네이버에서는 2와 3버전만 사용하는 것을 확인할 수 있다.

구글 같은 경우는 3버전만 사용된다.

확실히, 지금은 HTTP 2와 3이 급속도로 퍼지고 있다.

그러나, 우리 입장에서 중요한 것은 1.1의 스펙을 잘 이해하는 것이다!!

HTTP 특징

특징 1. 클라이언트 서버 구조

HTTP는 클라이언트가 HTTP 메세지를 통해서, 서버에 요청을 보낸다. 그리고 클라이언트는 서버의 응답이 올 때까지 무작정 기다린다. 서버가 요청이 된 결과를 만들어서 응답이 오면, 클라이언트는 응답 결과를 열어서 동작하게 된다.

어찌보면, 꽤 당연한 구조인데, 이렇게 분리를 하는 게 굉장히 중요하다.

과거에는 클라이언트와 서버가 분리되있지 않았다.

지금은 분리가 되서, 비즈니스 로직과 데이터는 전부 서버 쪽으로 밀어놓는다.

그리고 클라이언트는 UI를 그리고 사용성에 집중한다.

이렇게 했을 때의 장점은 각각 독립적으로 진화할 수있다.

예를 들어,

회사가 잘 되서, 트래픽이 100배 증가했다면, 클라이언트는 손 댈 필요없고, 서버의 아키텍쳐를 어떤 식으로 손 볼지, 벡엔드 기술을 어떻게 대용량 트래픽으로 더 고도화시킬지 그것만 고민하면 된다.

즉, 클라이언트는 터치할 필요가 없기 때문에, 각각의 역할에 맞게 독립적으로 진화할 수있다.


다음 시간부터는 나머지 특징들에 대해서 세부적으로 알아보자!!

profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글