작성
·
509
3
답변 1
11
안녕하세요, Hyunsang Han 님. 공식 서포터즈 codesweaver 입니다.
.
답변.
웹의 통신 규격인HTTP는 여러가지의 버전이 있습니다. (0.9, 1.1, 2, 3) 이 중 대부분을 차지하는 규격은 HTTP/1.1 입니다. 이 규격은 TCP를 기반으로 작동하는 것을 전제로 하고 있습니다. HTTP/2도 TCP를 기반으로 하며 통신 속도 향상을 위한 멀티플렉싱 등의 기술에 중점을 두고 있습니다. HTTP/3는 UDP 기반의 QUIC 를 사용한 기술이 도입되었습니다. 그러나 HTTP/3는 이직 보편화된 단계는 아니며 구글의 크롬 브라우저에서만 도입, 사용하고 있는 단계입니다.
.
하나의 페이지(웹사이트의 페이지)는 여러개의 파일들의 모음입니다(이미지, 스크립트 파일, CSS파일 등). 따라서 한 페이지를 요청하게되면 그에 파생되는 요청이 수십개, 많게는 수백개까지 발생하게 됩니다. 이러한 요청들을 효율적으로 처리하고자 하는것이 HTTP/2, HTTP/3의 주요한 목표입니다. 하나의 사이트를 불러오기 위해 브라우저는 TCP, UDP등의 모든 통신을 동시에 활용합니다. (물론 서버가 UDP를 지원한다는 전제가 있어야 합니다)
.
UDP는 영한님이 강의에서 설명하신것처럼 핸드셰이크 과정이나 데이터의 순서등을 보장하지 않습니다. 따라서 클라이언트가 이를 알아서 해결해야 합니다. 이 부분이 애플리케이션의 추가 작업이 필요한 부분입니다. 보통 '웹 개발'영역에서 애플리케이션은 브라우저를 말합니다. 브라우저에서 TCP, UDP에 대한 처리를 담당하므로 웹 개발자가 이를 구분하여 작업해야 하는 경우는 없습니다.
.
웹사이트 프로토콜 확인하기
크롬 브라우저의 개발자도구를 켠 상태로 '네트워크'탭을 누르신 후, 여러가지 홈페이지를 돌아다니다 보면 각 파일들이 어떤 프로토콜로 요청, 응답되었는지 확인하실 수 있습니다. (프로토콜 항목은 기본값이 안보임 상태일 수 있는데, 네트워크 탭의 제목 탭에서 마우스 우클릭 후 프로토콜 항목을 체크해주세요) http/1.1, h2(http/2) 등의 여러가지 프로토콜로 데이터르를 응답받는 것을 확인하실 수 있습니다.
.
감사합니다.